Arquivos de Configuração

Esta é uma API de cadastro de arquivos de configuração. Estes arquivos são vinculados aos modelos de configuração de roteadores.

Esta API é autenticada usando OAuth2, ver documentação de autenticação

Listar arquivos de configuração

GET /api/v1/cdm/routers/models/model_id/files

API de listagem de arquivos de configuração

Exemplo requisição

GET /api/v1/cdm/routers/models/Az2v9wN7wpZcCSDubwReG/files HTTP/1.1
Host: cdm.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>

Exemplo resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "total": 2,
  "files": [
    {
      "id": "AIOu5fCL63DkVPaTAjxNG",
      "name": "hello.sh",
      "file_path": "/etc/teste/",
      "default": false,
      "reboot": false,
      "executable": true,
      "prov_file": "echo 'Hello World!'",
      "reload_cmd": ""
    },
    {
      "id": "Az2vFaTMM2SDJftZscqN8",
      "name": "logpath.conf",
      "file_path": "/etc/",
      "default": false,
      "reboot": true,
      "executable": false,
      "prov_file": "LOG_LEVEL=high;LOGS_DIR=/var/log/product-logs/",
      "reload_cmd": "systemctl restart fluentd"
    }
  ]
}

Buscar um arquivo de configuração

GET /api/v1/cdm/routers/models/model_id/files/id

API de busca de um arquivo de configuração

Exemplo requisição

GET /api/v1/cdm/routers/models/Az2v9wN7wpZcCSDubwReG/files/AIOu5fCL63DkVPaTAjxNG HTTP/1.1
Host: cdm.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>

Exemplo resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "AIOu5fCL63DkVPaTAjxNG",
  "name": "hello.sh",
  "file_path": "/etc/teste/",
  "default": false,
  "reboot": false,
  "executable": true,
  "prov_file": "echo 'Hello World!'",
  "reload_cmd": ""
}

Criar um arquivo de configuração

POST /api/v1/cdm/routers/models/model_id/files

API de criação de um arquivo de configuração

Exemplo requisição

POST /api/v1/cdm/routers/models/Az2v9wN7wpZcCSDubwReG/files HTTP/1.1
Host: cdm.exemplo.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "name": "new-file",
  "file_path": "/etc/",
  "reboot": true,
  "executable": false,
  "prov_file": "LOG_LEVEL=high;LOGS_DIR=/var/log/product-logs/",
  "reload_cmd": ""
}

Exemplo resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "Az2vFaTMM2SDJftZscqN8",
  "name": "new-file",
  "file_path": "/etc/",
  "default": false,
  "reboot": true,
  "executable": false,
  "prov_file": "LOG_LEVEL=high;LOGS_DIR=/var/log/product-logs/",
  "reload_cmd": ""
}

Atualizar um arquivo de configuração

PUT /api/v1/cdm/routers/models/model_id/files/id

API de atualização de um arquivo de configuração

Exemplo requisição

PUT /api/v1/cdm/routers/models/Az2v9wN7wpZcCSDubwReG/files/Az2vFaTMM2SDJftZscqN8 HTTP/1.1
Host: cdm.exemplo.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "name": "logpath.conf",
  "reload_cmd": "systemctl restart fluentd"
}

Exemplo resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "Az2vFaTMM2SDJftZscqN8",
  "name": "logpath.conf",
  "file_path": "/etc/",
  "default": false,
  "reboot": true,
  "executable": false,
  "prov_file": "LOG_LEVEL=high;LOGS_DIR=/var/log/product-logs/",
  "reload_cmd": "systemctl restart fluentd"
}

Apagar um arquivo de configuração

DELETE /api/v1/cdm/routers/models/model_id/files/id

API de remoção de um arquivo de configuração

Exemplo requisição

DELETE /api/v1/cdm/routers/models/Az2v9wN7wpZcCSDub2wReG/files/Az2vFaTMM2SDJftZscqN8 HTTP/1.1
Host: cdm.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>

Exemplo resposta

HTTP/1.1 200 OK
Content-Type: application/json

Formato dos dados

Parâmetros da url

model_idstring Identificador do modelo de configuração de roteador ao qual o arquivo de configuração pertence
idstring Identificador do arquivo de configuração

Requisição

namestringrequerido único Nome do arquivo de configuração
file_pathstringrequerido único Diretório em que o arquivo de configuração será salvo Quantidade máxima de caracteres: 1000 Deve ser **válido para a regex** a seguir: ```sh r'^\/([a-zA-Z0-9\-_\ .]+\/)*[a-zA-Z0-9\-_\. ]+$' ```
rebootbooleanrequerido Define se o provisionamento do arquivo exige que o roteador seja reiniciado
executableboolean Define se o arquivo é um executável Valor padrão: `False`
prov_filestringrequerido Conteúdo do arquivo de configuração Pode ser um script executável ou variáveis de configuração, por exemplo: ```sh function test() { echo "Hello provisioning!" } test ``` Quantidade máxima de caracteres: 1000000 (1 milhão)
reload_cmdstring Comando de *reload*, se necessário que algum serviço seja recarregado após o provisionamento do arquivo.

Resposta

idstring Identificador do arquivo de configuração
namestring Nome do arquivo de configuração
file_pathstring Diretório em que o arquivo de configuração é salvo
defaultboolean Declara se é um arquivo de configuração padrão do sistema
rebootboolean Declara se o provisionamento do arquivo exige que o roteador seja reiniciado
executableboolean Declara se o arquivo é um executável
prov_filestring Conteúdo do arquivo de configuração
reload_cmdstring Comando de *reload* para ser executado após o provisionamento do arquivo