Classes da Política

Esta é uma API de gerenciamento das classes da política DBC

Listar classes da política

API de listagem de classes da política

GET /api/dbc/policies/policy_id/classes/class_id

Exemplo de requisição

GET /api/dbc/policies/1/classes HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.dbc.get_policy_classes(policy_id=1)
print(response.payload)
const response = sdk.dbc.getPolicyClasses({ policyId: 1 });
console.log(response.payload);

Exemplo de resposta

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

{
  "classes": [
    {
      "id": "default",
      "class_id": null,
      "name": "Default Class",
      "order": 1,
      "priority_type": "pfifo",
      "priority": 1,
      "rate": 30,
      "ceil": 100,
      "created_at": "2017-10-05T12:20:02.932000+00:00",
      "updated_at": "2017-10-05T12:20:02.932000+00:00",
    },
    {
      "id": "1",
      "class_id": 1,
      "name": "Class01",
      "order": 1,
      "priority_type": "sfq",
      "priority": 1,
      "rate": 25,
      "ceil": 75,
      "created_at": "2017-10-05T12:35:10.932000+00:00",
      "updated_at": "2017-10-05T12:35:10.932000+00:00",
    },
  ]
}
[
    Class(
        id="default",
        class_id=None,
        name="Default Class",
        order=1,
        priority_type="pfifo",
        priority=1,
        rate=30,
        ceil=100,
        created_at=DateTime(2017, 10, 5, 12, 20, 2, tzinfo=Timezone('+00:00')),
        updated_at=DateTime(2017, 10, 5, 12, 20, 2, tzinfo=Timezone('+00:00')),
    ),
    Class(
        id="1",
        class_id=1,
        name="Class01",
        order=1,
        priority_type="sfq",
        priority=1,
        rate=25,
        ceil=75,
        created_at=DateTime(2017, 10, 5, 12, 35, 10, tzinfo=Timezone('+00:00')),
        updated_at=DateTime(2017, 10, 5, 12, 35, 10, tzinfo=Timezone('+00:00')),
    )
]
[
  {
    id: "default",
    classId: null,
    name: "Default Class",
    order: 1,
    priorityType: "pfifo",
    priority: 1,
    rate: 30,
    ceil: 100,
    createdAt: "2017-10-05T12:20:02.000Z",
    updatedAt: "2017-10-05T12:20:02.000Z"
  },
  {
    id: "1",
    classId: 1,
    name: "Class01",
    order: 1,
    priorityType: "sfq",
    priority: 1,
    rate: 25,
    ceil: 75,
    createdAt: "2017-10-05T12:35:10.000Z",
    updatedAt: "2017-10-05T12:35:10.000Z"
  }
];

Buscar classe da política

API de busca de classe da política

GET /api/dbc/policies/policy_id/classes/class_id

API de busca de classe padrão da política

GET /api/dbc/policies/policy_id/classes/default

Exemplo de requisição

GET /api/dbc/policies/1/classes/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.dbc.get_policy_class(policy_id=1, class_id="1")
print(response.payload)
const response = sdk.dbc.getPolicyClass({ policyId: 1, classId: "1" });
console.log(response.payload);

Exemplo de resposta

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

{
  "id": "1",
  "class_id": 1,
  "name": "Class01",
  "order": 1,
  "priority_type": "sfq",
  "priority": 1,
  "rate": 25,
  "ceil": 75,
  "rules": [
    {
      "id": 1,
      "type": "packet",
      "addr_type": null,
      "addr": null,
      "port_type": null,
      "port": null,
      "protocol": "tcp",
      "src_addr_type": "network",
      "src_addr": "192.168.1.0/24",
      "dst_addr_type": "network",
      "dst_addr": "172.64.1.0/24",
      "src_port_type": "single",
      "src_port": "8000",
      "dst_port_type": "single",
      "dst_port": "9090",
    },
  ],
  "created_at": "2017-10-05T12:35:10.932000+00:00",
  "updated_at": "2017-10-05T12:35:10.932000+00:00",
}
Class(
    id="1",
    class_id=1,
    name="Class01",
    order=1,
    priority_type="sfq",
    priority=1,
    rate=25,
    ceil=75,
    rules=[
        Rule(
            id=1,
            addr_type=None,
            addr=None,
            port_type=None,
            port=None,
            packet="packet",
            protocol="tcp",
            src_addr_type="network",
            src_addr="192.168.1.0/24",
            dst_addr_type="network",
            dst_addr="172.64.1.0/24",
            src_port_type="single",
            src_port="8000",
            dst_port_type="single",
            dst_port="9090",
        ),
    ]
    created_at=DateTime(2017, 10, 5, 12, 35, 10, tzinfo=Timezone('+00:00')),
    updated_at=DateTime(2017, 10, 5, 12, 35, 10, tzinfo=Timezone('+00:00')),
)
{
  id: "1",
  classId: 1,
  name: "Class01",
  order: 1,
  priorityType: "sfq",
  priority: 1,
  rate: 25,
  ceil: 75,
  rules: [
    {
      id: 1,
      type: "packet",
      addrType: null,
      addr: null,
      portType: null,
      port: null,
      protocol: "tcp",
      srcAddrType: "network",
      srcAddr: "192.168.1.0/24",
      dstAddrType: "network",
      dstAddr: "172.64.1.0/24",
      srcPortType: "single",
      srcPort: "8000",
      dstPortType: "single",
      dstPort: "9090",
    },
  ]
  createdAt: "2017-10-05T12:35:10.000Z",
  updatedAt: "2017-10-05T12:35:10.000Z",
}

Cadastrar classe da política

API de criação de classe da política

POST /api/dbc/policies/policy_id/classes

Exemplo de requisição

POST /api/dbc/policies/1/classes HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "class_id": "2",
  "order": 5,
  "priority_type": "pfifo",
  "priority": 7,
  "rate": 15,
  "ceil": 30,
  "apply": false,
}
from itflex_sdk.dbc.types import CreatePolicyClassRequest

request = CreatePolicyClassRequest(
    policy_id=1,
    class_id="2",
    order=5,
    priority_type="pfifo",
    priority=7,
    rate=15,
    ceil=30,
    apply=False,
)
response = sdk.dbc.create_policy_class(request)
print(response.payload)
const policy_class = sdk.dbc.types.PolicyClass();
policy_class.policy_id = 1;
policy_class.class_id = "2";
policy_class.order = 5;
policy_class.priorityType = "pfifo";
policy_class.priority = 7;
policy_class.rate = 15;
policy_class.ceil = 30;
policy_class.apply = false;

const response = sdk.dbc.createPolicyClass(policy_class);
console.log(response.payload);

Exemplo de resposta

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

{
  "id": "2",
  "class_id": 2,
  "name": "class02",
  "order": 5,
  "priority_type": "pfifo",
  "priority": 7,
  "rate": 15,
  "ceil": 30,
  "created_at": "2017-11-05T08:21:15.932000+00:00",
  "updated_at": "2017-11-05T08:21:15.932000+00:00",
}
Class(
    id="2",
    class_id=2,
    name="Class02",
    order=5,
    priority_type="pfifo",
    priority=7,
    rate=15,
    ceil=30,
    created_at=DateTime(2017, 11, 5, 8, 21, 15, tzinfo=Timezone('+00:00')),
    updated_at=DateTime(2017, 11, 5, 8, 21, 15, tzinfo=Timezone('+00:00')),
)
{
  id: "2",
  classId: 2,
  name: "Class02",
  order: 5,
  priorityType: "pfifo",
  priority: 7,
  rate: 15,
  ceil: 30,
  createdAt: "2017-11-05T08:21:15.000Z",
  updatedAt: "2017-11-05T08:21:15.000Z",
}

Editar classe da política

API de edição de classe da política

PUT /api/dbc/policies/policy_id/classes/class_id

API de edição de classe padrão da política

PUT /api/dbc/policies/policy_id/classes/default

Exemplo de requisição

PUT /api/dbc/policies/1/classes/2 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "order": 3,
  "priority_type": "sfq",
  "priority": 7,
  "rate": 15,
  "ceil": 30,
  "apply": false,
}
from itflex_sdk.dbc.types import UpdatePolicyClassRequest

request = UpdatePolicyClassRequest(
    policy_id=1,
    class_id="2",
    order=3,
    priority_type="sfq",
    priority=7,
    rate=15,
    ceil=30,
    apply=False,
)
response = sdk.dbc.update_policy_class(request)
print(response.payload)
const policy_class = {
  policyId: 1,
  classId: "2",
  order: 3,
  priorityType: "sfq",
  priority: 7,
  rate: 15,
  ceil: 30,
  apply: false,
};
const response = sdk.dbc.updatePolicyClass(policy_class);
console.log(response.payload);

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

{
  "id": "2",
  "class_id": 2,
  "name": "class02",
  "order": 3,
  "priority_type": "sfq",
  "priority": 7,
  "rate": 15,
  "ceil": 30,
  "created_at": "2017-11-05T08:21:15.932000+00:00",
  "updated_at": "2017-11-05T08:30:45.932000+00:00",
}
Class(
    id="2",
    class_id=2,
    name="Class02",
    order=3,
    priority_type="sfq",
    priority=7,
    rate=15,
    ceil=30,
    created_at=DateTime(2017, 11, 5, 8, 21, 15, tzinfo=Timezone('+00:00')),
    updated_at=DateTime(2017, 11, 5, 8, 30, 45, tzinfo=Timezone('+00:00')),
)
{
  id: "2",
  classId: 2,
  name: "Class02",
  order: 3,
  priorityType: "sfq",
  priority: 7,
  rate: 15,
  ceil: 30,
  createdAt: "2017-11-05T08:21:15.000Z",
  updatedAt: "2017-11-05T08:30:45.000Z",
}

Excluir classe da política

API de exclusão de classe da política

DELETE /api/dbc/policies/policy_id/classes/class_id

A Classe padrão da política não pode ser removida

Exemplo de requisição

DELETE /api/dbc/policies/1/classes/2 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.dbc.types import DeletePolicyClassRequest

request = DeletePolicyClassRequest(
    policy_id=1,
    class_id="2"
)
response = sdk.dbc.delete_policy_class(request)
const response = sdk.dbc.deletePolicyClass({ policyId: 1, classId: "2" });

Exemplo de resposta

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

Formato dos dados

Parâmetros da url

Campo Descrição
policy_id int

Idendificador da política

class_id string

Idendificador da classe

Este parâmetro pode receber identificadores numéricos ou default para gerenciar a classe padrão

Requisição

Campo Descrição
class_id int

Identificador da classe.

Não pode haver classes duplicadas dentro de uma política

policy_id int

Identificador da política que contém estas configurações de classe

Este campo não pode ser alterado após criação do item

order intrequerido

Campo de ordenação das classes dentro da política

Este campo deve receber um valor positivo

priority_type stringrequerido

Tipo de controle de prioridade da classe dentro da política

Valores possíveis: sfq, pfifo

priority intrequerido

Prioridade da política

O valor deste campo pode estar entre 0 e 7

rate intrequerido

Percentual de banda garantida pela classe da política

A soma dos campos rate das classes da política não pode ficar acima de 100%

ceil intrequerido

Percentual máximo de uso de banda classe da política

Este campo deve ser maior ou igual ao campo rate

apply bool

Flag que indica se as informações serão provisionadas imediatamente após a criação ou edição

Valor padrão: False

Resposta

Campo Descrição
id string

Identificador da classe da política

class_id string

Identificador da classe

Este campo é retornado como null quando o valor de id for default

name string

Nome da classe vinculado à política da classe

order int

Campo de ordenação das classes dentro da política

priority_type string

Tipo de controle de prioridade da classe dentro da política

priority int

Prioridade da política

rate int

Percentual de banda garantida pela classe da política

ceil int

Percentual máximo de uso de banda classe da política

rule Array<Rule>

Regras da classe

created_at string

Data de criação

Formato: ISO-8601

updated_at string

Data da última edição

Formato: ISO-8601