openapi: 3.0.3
info:
  title: Skynova Admin API
  version: 1.0.0
  description: "# Skynova Admin API\n\nBem-vindo à documentação da **API REST de administração da Skynova**. Por meio dela\nvocê gerencia, de forma programática, todos os recursos do seu ambiente: caixas\npostais, domínios, grupos de e-mail, contas de backup, recursos de Cloud, hospedagem,\nDNS, envios SMTP, clientes e muito mais.\n\n> **Base URL:** `https://api.skymail.net.br`\n>\n> Todas as chamadas descritas nesta documentação são relativas a essa URL. O prefixo\n> de versão `/v1` é obrigatório.\n\n---\n\n## Sobre essa Documentação\n\n- A especificação completa está disponível em **OpenAPI 3.0** — use o botão de\n Importar Documentação para baixar o arquivo `openapi.yaml`/`openapi.json` e importá-lo em\n  ferramentas como Postman, Insomnia, Swagger Editor ou geradores de SDK.\n- As operações abaixo estão organizadas por grupo de recurso (caixas postais,\n  domínios, backup, cloud, etc.). Cada operação traz parâmetros, corpo de requisição,\n  exemplos de resposta e um exemplo `cURL` pronto para uso.\n\n---\n\nVisite a documentação em [Skynova Admin API](https://api.skymail.net.br/doc.html)\n\n---\n\n## Limites de uso (Rate Limit)\n\nA API permite **120 requisições a cada 60 segundos**. Toda resposta traz os seguintes\ncabeçalhos de controle:\n\n| Cabeçalho | Descrição | Exemplo |\n| --- | --- | --- |\n| `X-RateLimit-Limit` | Limite de requisições no período | `120` |\n| `X-RateLimit-Remaining` | Requisições restantes no período atual | `55` |\n| `X-RateLimit-Reset` | Momento em que o limite é renovado (Unix timestamp) | `1584419200` |\n\nAo exceder o limite, a API responde com **HTTP 429 (Too Many Requests)** em\n`application/json`:\n\n```json\n{\n    \"success\": false,\n    \"message\": \"You exceeded the rate limit of api. You have 120 requests per 60 seconds. Please wait until 2020-03-17 01:32:42 to request me again. See X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset properties on header response to control it\"\n}\n```\n\n---\n\n## Formatos e padrões\n\nTodas as respostas são retornadas em **JSON**. As requisições com corpo usam, por\npadrão, `application/x-www-form-urlencoded` (como nos exemplos `curl --data` desta\ndocumentação).\n\n### Envelope de resposta\n\n| Situação | Formato |\n| --- | --- |\n| Sucesso (200) | `{ \"success\": true, \"message\": \"...\" }` |\n| Criação (201) | `{ \"success\": true, \"data\": { ... }, \"message\": \"...\" }` |\n| Erro de validação (400) | `{ \"success\": false, \"errors\": [{ \"campo\": \"mensagem\" }], \"message\": \"...\" }` |\n| Demais erros (403/404/409) | `{ \"success\": false, \"message\": \"...\" }` |\n\n### Códigos de status HTTP\n\n| Código | Significado |\n| --- | --- |\n| `200` | Requisição efetuada com sucesso |\n| `201` | Recurso criado com sucesso (apenas em `POST`) |\n| `400` | Erro de validação / formato inválido de campo |\n| `403` | You are not allowed to perform this operation para a operação |\n| `404` | Item não encontrado |\n| `409` | Item já existe (apenas em `POST`) |\n| `429` | Rate limit excedido |\n\n### Listas e paginação\n\nEndpoints de listagem retornam no máximo **50 itens** por página, acompanhados de um\natributo `total` com a quantidade real de registros existentes. Use os parâmetros de\npaginação (`page`/`perPage`, ou equivalentes documentados em cada endpoint) para\nnavegar pelos resultados.\n\n```json\n{\n    \"success\": true,\n    \"data\": [\n        { \"mail\": \"robertosilva@suaempresa.com.br\", \"displayName\": \"João da Silva\", \"accountType\": \"Skynova 25GB\" }\n    ],\n    \"total\": 1\n}\n```\n\n### Formatos de campos mais comuns\n\n| Formato | Regex de validação | Exemplo |\n| --- | --- | --- |\n| Nome de usuário | `(([a-z0-9]+)\\|(^[\\w\\d]{1}[\\w_\\.\\-\\d]+[\\w\\d]{1}))` | `meu.usuario481` |\n| Domínio | `\\b((?=[a-z0-9-]{1,63}\\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,63}\\b` | `meudominio.com.br` |\n| E-mail | usuário + `@` + domínio | `meuusuario@meudominio.com.br` |\n| Senha | `.{6,}` (mín. 6 caracteres; alguns ambientes exigem 3 tipos de caractere) | — |\n| Telefone | `\\d{2}\\ \\d{4}\\-\\d{4,5}` | `(11) 9999 9999` |\n| String JWT | `^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$` | — |\n\n### Campos multivalorados\n\nAtributos que aceitam múltiplos valores (ex.: `rfc822member`, `mailalternateaddress`)\nseguem o padrão de envio em forma de array de parâmetros:\n\n| Ação | Formato |\n| --- | --- |\n| Inserir um item | `atributo[valor]=true` — ex.: `rfc822member[membro@dominio.com]=true` |\n| Excluir um item | `atributo[valor]=` — ex.: `rfc822member[membro@dominio.com]=` |\n| Limpar o atributo | `atributo=` — ex.: `rfc822member=` |\n\n> Em chamadas de atualização (`PUT`), enviar um atributo com valor **vazio** equivale a\n> **excluir** aquele valor.\n\n### Bloqueio de horários (`logonhours`)\n\nCampo que representa um calendário semanal de acesso. São 7 linhas (domingo a sábado),\ncada uma com 24 caracteres (`0` = bloqueado, `1` = liberado), uma por hora do dia.\nExemplo de liberação em horário comercial nos dias úteis:\n\n```\n000000000000000000000000\n000000000111111111100000\n000000000111111111100000\n000000000111111111100000\n000000000111111111100000\n000000000111111111100000\n000000000000000000000000\n```\n\n"
  contact:
    name: Skynova
    url: https://painel.skymail.net.br/settings#api
servers:
- url: https://api.skymail.net.br
  description: Produção
tags:
- name: Autorização
  description: ''
- name: Backup
  description: Chamadas relacionas à gestão de contas de backup, suas rotinas e relatórios de execuções.
- name: Caixas Postais
  description: Chamadas de administração de informações de Caixas Postais
- name: Caixas Postais - Identidades
  description: Chamadas relacionadas as identidades da Caixa Postal do seu ambiente
- name: Caixas Postais - Restaurar mensagens
  description: Chamadas relacionadas à restauração de mensagens de e-mail a partir de backups de caixas postais.
- name: Caixas Postais - Template
  description: Chamadas relacionadas aos templates de Caixa Postal do seu ambiente
- name: Caixas Postais - Migração
  description: Chamadas relacionadas à migração de caixas postais (rotinas, caxias postias e agendamentos).
- name: Caixas Postais - Bloqueio de Feriado
  description: Gerenciamento de feriados agendados para bloqueio de e-mails da caixa postal
- name: Cloud
  description: Chamadas relacionas à gestão de recursos de Cloud.
- name: Domínios
  description: Chamadas de administração de informações de Domínios
- name: Dns
  description: Chamadas relacionas à gestão de zonas e entradas de DNS
- name: Dns - Templates
  description: Chamadas para gerenciamento de templates de DNS, utilizados para aplicar configurações padronizadas de entradas DNS a novos domínios.
- name: Envios SMTP
  description: Chamadas para administrar recursos e relatórios de Envios SMTP
- name: Grupos de e-mail
  description: Chamadas de administração de Grupos de E-mail
- name: Hospedagem
  description: Chamadas para administração informações de Hospedagem
- name: Clientes
  description: Chamadas administrativas e de configuração do seu ambiente ou dos seus clientes
- name: Clientes - Bloqueio de Feriado
  description: Gerenciamento de feriados agendados para bloqueio de e-mails do cliente
- name: Usuários Administrativos
  description: Chamadas relacionadas à gestão de usuários administrativos da API e do Painel
- name: Dashboard
  description: Informações gerais relevantes ao seu ambiente
- name: Relatórios
  description: Chamadas para geração e consulta de relatórios de mensagens, acessos, logs e financeiro.
- name: Registro de Domínio
  description: Chamadas relacionadas à gestão de informações de Registro de Domínio
- name: WebHooks
  description: ''
- name: Antispam
  description: Chamadas para gerenciamento de configurações de antispam, incluindo pontuação, listas de bloqueio e permissão de remetentes, domínios e IPs.
- name: Antispam - Dashboard
  description: Chamadas para consulta de rankings e métricas de antispam por domínio.
- name: Veeam
  description: Chamadas para consulta de informações de backup Veeam, incluindo agents, servidores de backup, máquinas virtuais, storage e máquinas protegidas.
- name: Templates - Bloqueio de Feriado
  description: Gerenciamento de feriados agendados para bloqueio de e-mails do template
paths:
  /auth/login:
    post:
      tags:
      - Autorização
      summary: Criar Token de Autorização
      description: Esta é uma chamada inicial obrigatória, e deve ser chamada pelo menos uma vez, pois ela gera e recupera uma chave pública que deve ser inserida dentro do Payload data do seu token JWT de todos os cabeçalho de autorização das outras chamadas.
      operationId: post_auth_login
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: O usuário que é utilizado para entrar no painel de controle
                  example: \w+
                password:
                  type: string
                  description: Senha do usuário. Existem restrições quanto a força da senha dependendo da política de cada ambiente.
                  example: .{6,}
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      jti:
                        type: string
                  message:
                    type: string
              example:
                success: true
                data:
                  jti: (string)
                message: Token público de autorização gerado com sucesso
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Ocorreu um erro na validação dos seus dados
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Usuário e senha não compatíveis
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Usuário não tem permissão de executar esta ação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/auth/login'' --data "username=nomedeusuario@dominio.com.br&password=senhadousuario" ''cache-control: no-cache'''
  /backup/client:
    get:
      tags:
      - Backup
      summary: Listar Contas
      description: Esta é a chamada que retorna a lista de contas de backup
      operationId: get_backup_client
      parameters:
      - name: clientId
        in: query
        description: Retorna todas as contas de backup desde cliente
        required: false
        schema:
          type: number
          example: '1'
      - name: search
        in: query
        description: Parte do nome da conta a ser buscada
        required: false
        schema:
          type: string
          example: nome_da_conta
      - name: days
        in: query
        description: Retorna somente as contas criadas dentro desse número de dias
        required: false
        schema:
          type: number
          example: '1'
      - name: login_only
        in: query
        description: Retorna somente os logins das contas.
        required: false
        schema:
          type: number
          example: '1'
      - name: type_only
        in: query
        description: Retorna os logins das contas com seus tipos.
        required: false
        schema:
          type: number
          example: '1'
      - name: sort
        in: query
        description: Define o campo de ordenação do resultado
        required: false
        schema:
          type: string
          enum:
          - registration_time
          - backup_client_id
          example: registration_time
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        QuotaUsed:
                          type: integer
                        LoginName:
                          type: string
                        Owner:
                          type: string
                        ClientType:
                          type: string
                        UserId:
                          type: string
                        ID:
                          type: string
                        clientId:
                          type: integer
                        clientName:
                          type: string
              example:
                success: true
                data:
                - QuotaUsed: 6
                  LoginName: backup_account_1
                  Owner: ''
                  ClientType: OBM
                  UserId: backup_account_1#21533
                  ID: '1554896933312'
                  clientId: 1
                  clientName: Nome do Cliente
                - QuotaUsed: 9
                  LoginName: backup_account_2
                  Owner: ''
                  ClientType: OBM
                  UserId: backup_account_2#21533
                  ID: '1540492413684'
                  clientId: 1
                  clientName: Nome do Cliente
                - QuotaUsed: 18
                  LoginName: backup_account_3
                  Owner: ''
                  ClientType: OBM
                  UserId: backup_account_3#21533
                  ID: '1540406000542'
                  clientId: 1
                  clientName: Nome do Cliente
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/backup/client?clientId=1&search=nome_da_conta&days=3&login_only=1&type_only=1&sort=registration_time'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Backup
      summary: Criar Conta
      description: Esta é a chamada para criação de contas de Backup.
      operationId: post_backup_client
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                clientId:
                  type: number
                  description: ID do cliente proprietário dessa conta de backup
                  example: 1
                backupServerId:
                  type: number
                  description: ID do servidor de backup
                  example: 1
                backupClientId:
                  type: string
                  example: backup@dominio.com.br    Login da conta de backup
                password:
                  type: string
                  example: '#7Kd[2Ek;5Uc    Senha da conta de backup'
                timezone:
                  type: string
                  enum:
                  - '`1001`'
                  - '`1002`'
                  - '`1003`'
                  - '`1004`'
                  - '`1005`'
                  - '`1006`'
                  - '`1008`'
                  - '`1009`'
                  - '`1010`'
                  - '`1011`'
                  - '`1012`'
                  - '`1013`'
                  - '`1014`'
                  - '`1015`'
                  - '`1016`'
                  - '`1018`'
                  - '`1019`'
                  - '`1020`'
                  - '`1021`'
                  - '`1022`'
                  - '`1023`'
                  - '`1024`'
                  - '`1025`'
                  - '`1026`'
                  - '`1028`'
                  - '`1029`'
                  - '`1030`'
                  - '`1031`'
                  - '`1032`'
                  - '`1033`'
                  - '`1034`'
                  - '`1036`'
                  - '`1037`'
                  - '`1038`'
                  - '`1039`'
                  - '`1040`'
                  - '`1041`'
                  - '`1042`'
                  - '`1043`'
                  - '`1044`'
                  - '`1045`'
                  - '`1046`'
                  - '`1047`'
                  - '`1048`'
                  - '`1049`'
                  - '`1050`'
                  - '`1051`'
                  - '`1052`'
                  - '`1053`'
                  - '`1054`'
                  - '`1055`'
                  - '`1056`'
                  - '`1057`'
                  - '`1058`'
                  - '`1059`'
                  - '`1060`'
                  - '`1061`'
                  - '`1062`'
                  - '`1063`'
                  - '`1064`'
                  - '`1065`'
                  - '`1066`'
                  - '`1067`'
                  - '`1068`'
                  - '`1069`'
                  - '`1070`'
                  - '`1071`'
                  - '`1072`'
                  - '`1073`'
                  - '`1074`'
                  - '`1075`'
                  - '`1076`'
                  - '`1077`'
                  - '`1078`'
                  - '`1079`'
                  - '`1080`'
                  - '`1081`'
                  - '`1082`'
                  - '`1083`'
                  - '`1084`'
                  - '`1085`'
                  - '`1086`'
                  - '`1087`'
                  - '`1088`'
                  - '`1089`'
                  - '`1090`'
                  - '`1091`'
                  - '`1092`'
                  - '`1093`'
                  - '`1094`'
                  - '`1095`'
                  - '`1096`'
                  - '`1097`'
                  - '`1098`'
                  - '`1099`'
                  - '`1100`'
                  - '`1101`'
                  - '`1102`'
                  - '`1103`'
                  - '`1104`'
                  - '`1105`'
                  - '`1106`'
                  - '`1107`'
                  - '`1108`'
                  - '`1109`'
                  - '`1110`'
                  - '`1111`'
                  - '`1112`'
                  - '`1113`'
                  - '`1114`'
                  - '`1115`'
                  - '`1116`'
                  - '`1117`'
                  - '`1118`'
                  - '`1119`'
                  - '`1120`'
                  - '`1121`'
                  - '`1122`'
                  - '`1123`'
                  - '`1124`'
                  - '`1125`'
                  - '`1126`'
                  - '`1127`'
                  - '`1128`'
                  - '`1129`'
                  - '`1130`'
                  - '`1131`'
                  - '`1132`'
                  - '`1133`'
                  - '`1134`'
                  - '`1135`'
                  - '`1136`'
                  - '`1137`'
                  - '`1138`'
                  - '`GMT+00:00 (BST)`'
                  - '`GMT+00:00 (GMT)`'
                  - '`GMT+00:00 (IST)`'
                  - '`GMT+00:00 (UTC)`'
                  - '`GMT+00:00 (WEST)`'
                  - '`GMT+00:00 (WET)`'
                  - '`GMT+01:00 (CEST)`'
                  - '`GMT+01:00 (CET)`'
                  - '`GMT+01:00 (WAT)`'
                  - '`GMT+02:00 (CAT)`'
                  - '`GMT+02:00 (EEST)`'
                  - '`GMT+02:00 (EET)`'
                  - '`GMT+02:00 (IDT)`'
                  - '`GMT+02:00 (SAST)`'
                  - '`GMT+03:00 (ADT)`'
                  - '`GMT+03:00 (AST)`'
                  - '`GMT+03:00 (EAT)`'
                  - '`GMT+03:00 (MSD)`'
                  - '`GMT+04:00 (AMST)`'
                  - '`GMT+04:00 (AQTST)`'
                  - '`GMT+04:00 (AZST)`'
                  - '`GMT+04:00 (GEST)`'
                  - '`GMT+04:00 (GST)`'
                  - '`GMT+04:00 (MUT)`'
                  - '`GMT+04:00 (RET)`'
                  - '`GMT+04:00 (SAMST)`'
                  - '`GMT+04:00 (SCT)`'
                  - '`GMT+05:00 (IDT)`'
                  - '`GMT+05:00 (KGST)`'
                  - '`GMT+05:00 (MVT)`'
                  - '`GMT+05:00 (PKT)`'
                  - '`GMT+05:00 (TFT)`'
                  - '`GMT+05:00 (TJT)`'
                  - '`GMT+05:00 (TMT)`'
                  - '`GMT+05:00 (UZT)`'
                  - '`GMT+05:00 (YEKST)`'
                  - '`GMT+06:00 (BDT)`'
                  - '`GMT+06:00 (BTT)`'
                  - '`GMT+06:00 (LKT)`'
                  - '`GMT+06:00 (MAWT)`'
                  - '`GMT+06:00 (NOVST)`'
                  - '`GMT+07:00 (CXT)`'
                  - '`GMT+07:00 (ICT)`'
                  - '`GMT+07:00 (JAVT)`'
                  - '`GMT+07:00 (KRAST)`'
                  - '`GMT+08:00 (BNST)`'
                  - '`GMT+08:00 (BORT)`'
                  - '`GMT+08:00 (CST)`'
                  - '`GMT+08:00 (HKT)`'
                  - '`GMT+08:00 (IRKST)`'
                  - '`GMT+08:00 (JAYT)`'
                  - '`GMT+08:00 (MYT)`'
                  - '`GMT+08:00 (PHT)`'
                  - '`GMT+08:00 (SGT)`'
                  - '`GMT+08:00 (ULAT)`'
                  - '`GMT+08:00 (WST)`'
                  - '`GMT+09:00 (JST)`'
                  - '`GMT+09:00 (KST)`'
                  - '`GMT+09:00 (PWT)`'
                  - '`GMT+09:00 (YAKST)`'
                  - '`GMT+10:00 (ChST)`'
                  - '`GMT+10:00 (DDUT)`'
                  - '`GMT+10:00 (EST)`'
                  - '`GMT+10:00 (PGT)`'
                  - '`GMT+10:00 (TRUST)`'
                  - '`GMT+10:00 (VLAST)`'
                  - '`GMT+11:00 (KOSST)`'
                  - '`GMT+11:00 (MAGST)`'
                  - '`GMT+11:00 (NCT)`'
                  - '`GMT+11:00 (PONT)`'
                  - '`GMT+11:00 (VUT)`'
                  - '`GMT+12:00 (ANAST)`'
                  - '`GMT+12:00 (FJT)`'
                  - '`GMT+12:00 (GILT)`'
                  - '`GMT+12:00 (MHT)`'
                  - '`GMT+12:00 (NRT)`'
                  - '`GMT+12:00 (NZST)`'
                  - '`GMT+12:00 (PETST)`'
                  - '`GMT+12:00 (TVT)`'
                  - '`GMT+12:00 (WAKT)`'
                  - '`GMT+12:00 (WFT)`'
                  - '`GMT-01:00 (EGST)`'
                  - '`GMT-02:00 (FNT)`'
                  - '`GMT-02:00 (GST)`'
                  - '`GMT-03:00 (ART)`'
                  - '`GMT-03:00 (BRT)`'
                  - '`GMT-03:00 (GFT)`'
                  - '`GMT-03:00 (PMDT)`'
                  - '`GMT-03:00 (SRT)`'
                  - '`GMT-03:00 (UYT)`'
                  - '`GMT-03:00 (WGST)`'
                  - '`GMT-04:00 (ADT)`'
                  - '`GMT-04:00 (AMT)`'
                  - '`GMT-04:00 (AST)`'
                  - '`GMT-04:00 (BOT)`'
                  - '`GMT-04:00 (CLT)`'
                  - '`GMT-04:00 (FKT)`'
                  - '`GMT-04:00 (GYT)`'
                  - '`GMT-04:00 (PYT)`'
                  - '`GMT-04:00 (VET)`'
                  - '`GMT-05:00 (ACT)`'
                  - '`GMT-05:00 (CDT)`'
                  - '`GMT-05:00 (COT)`'
                  - '`GMT-05:00 (ECT)`'
                  - '`GMT-05:00 (EDT)`'
                  - '`GMT-05:00 (EST)`'
                  - '`GMT-05:00 (GMT-`'
                  - '`GMT-05:00 (PET)`'
                  - '`GMT-06:00 (CDT)`'
                  - '`GMT-06:00 (CST)`'
                  - '`GMT-06:00 (EAST)`'
                  - '`GMT-06:00 (GALT)`'
                  - '`GMT-07:00 (MDT)`'
                  - '`GMT-07:00 (MST)`'
                  - '`GMT-07:00 (PDT)`'
                  - '`GMT-08:00 (PST)`'
                  - '`GMT-09:00 (AKST)`'
                  - '`GMT-09:00 (GAMT)`'
                  - '`GMT-10:00 (CKT)`'
                  - '`GMT-10:00 (HADT)`'
                  - '`GMT-10:00 (HST)`'
                  - '`GMT-10:00 (THAT)`'
                  - '`GMT-10:00 (TKT)`'
                  - '`GMT-11:00 (NUT)`'
                  - '`GMT-11:00 (SST)`'
                  - '`GMT-11:00 (WST)`'
                  description: Fuso horário da conta de backup
                  example: GMT-03:00 ` (enum[string], required)
                language:
                  type: string
                  enum:
                  - '`ar`'
                  - '`ca`'
                  - '`cs`'
                  - '`da`'
                  - '`de`'
                  - '`el`'
                  - '`en`'
                  - '`es`'
                  - '`eu`'
                  - '`fi`'
                  - '`fr`'
                  - '`iw`'
                  - '`hu`'
                  - '`in`'
                  - '`it`'
                  - '`ja`'
                  - '`ko`'
                  - '`lt`'
                  - '`nl`'
                  - '`no`'
                  - '`pl`'
                  - '`pt_BR`'
                  - '`pt_PT`'
                  - '`ru`'
                  - '`sl`'
                  - '`sv`'
                  - '`th_TH`'
                  - '`tr`'
                  - '`vi`'
                  - '`zh_CN`'
                  - '`zh_TW`'
                  example: pt_BR`    Idioma da conta de backup
                items:
                  type: array
                  items:
                    type: string
                  description: Lista com IDs das contratações e quantidades para relacionar com a conta de backup. É obrigatório quando não são enviados `products[]`
                  example: items[1]=5
                products:
                  type: array
                  items:
                    type: string
                  description: Lista com IDs de produtos e quantidades a serem contratados para o cliente e relacionados com a conta de backup. É obrigatório quando não são enviados `items[]`
                  example: products[110]=5
                confirm_purchase:
                  type: string
                  description: Enviando o valor `true` que confirma a nova contratação de produto (ou incremento de quantidade contratada quando o produto já tiver sido contratado anteriormente)
                  example: 'true'
                payment_info_id:
                  type: number
                  description: ID do ciclo de pagamento que receberá o novo produto contratado. Obrigatório quando há mais de um ciclo de pagamento ativo para o cliente
                  example: 1000
              required:
              - clientId
              - backupServerId
              - backupClientId
              - password
              - language
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  backupClientId:
                    type: string
                  purchaseType:
                    type: string
                  clientType:
                    type: string
                  status:
                    type: string
                  storage:
                    type: integer
                  params:
                    type: object
                    properties:
                      notes:
                        type: string
                      id:
                        type: string
                      statistics:
                        type: object
                        properties:
                          RetentionAreaCompressedSize:
                            type: integer
                          DataAreaUncompressedSize:
                            type: integer
                          RetentionAreaFileCount:
                            type: integer
                          DataAreaFileCount:
                            type: integer
                          RetentionAreaUncompressedSize:
                            type: integer
                          DataAreaCompressedSize:
                            type: integer
                      last_login:
                        type: string
                      client:
                        type: object
                        properties:
                          last_login:
                            type: string
                          version:
                            type: string
                      language:
                        type: string
                      alias:
                        type: string
                      hosts:
                        type: object
                        properties:
                          ? ''
                          : type: string
                      backups:
                        type: array
                        items: {}
                      reseller:
                        type: string
                      directories:
                        type: object
                        properties:
                          top:
                            type: string
                          home:
                            type: string
                      contact:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            email:
                              type: string
                  features:
                    type: object
                    properties:
                      hosts:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      run_direct:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      open_direct_granular:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      office_365:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_mailbox:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mobile:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_domino:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_notes:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      oracle_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      sql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mysql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system_state:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      continuous_data_protection:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      volume_shadow_copy:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      shadow_protect_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      in_file_delta:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_synology:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_qnap:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
              example:
                backupClientId: backup@dominio.com.br
                purchaseType: paid
                clientType: skymail_bp
                status: active
                storage: 53687091200
                params:
                  notes: Usuário criado via API
                  id: '1558720069753'
                  statistics:
                    RetentionAreaCompressedSize: 0
                    DataAreaUncompressedSize: 0
                    RetentionAreaFileCount: 0
                    DataAreaFileCount: 0
                    RetentionAreaUncompressedSize: 0
                    DataAreaCompressedSize: 0
                  last_login: '1970-01-01T00:00:00+00:00'
                  client:
                    last_login: '1969-12-31T23:59:59+00:00'
                    version: ''
                  language: pt_BR
                  alias: Cliente Teste
                  hosts:
                    ? ''
                    : ''
                  backups: []
                  reseller: ''
                  directories:
                    top: /skymail/data/backup_servers/cbs/users
                    home: /skymail/data/backup_servers/cbs/users/backup@dominio.com.br
                  contact:
                  - name: Cliente Teste
                    email: backup@dominio.com.br
                features:
                  hosts:
                    enabled: true
                    quota: 5
                  run_direct:
                    enabled: false
                    quota: 1
                  hyper_v_guestvm:
                    enabled: false
                    quota: 0
                  hyper_v_socket:
                    enabled: false
                    quota: 0
                  vmware_guestvm:
                    enabled: false
                    quota: 0
                  vmware_socket:
                    enabled: false
                    quota: 0
                  open_direct_granular:
                    enabled: false
                    quota: 0
                  office_365:
                    enabled: false
                    quota: 0
                  exchange_mailbox:
                    enabled: false
                    quota: 0
                  mobile:
                    enabled: false
                    quota: 0
                  lotus_domino:
                    enabled: true
                    quota: 1
                  lotus_notes:
                    enabled: true
                    quota: 1
                  oracle_server:
                    enabled: true
                    quota: 1
                  sql_server:
                    enabled: true
                    quota: 1
                  mysql_server:
                    enabled: true
                    quota: 1
                  exchange_server:
                    enabled: true
                    quota: 1
                  windows_system_state:
                    enabled: true
                    quota: 1
                  continuous_data_protection:
                    enabled: true
                    quota: 1
                  windows_system:
                    enabled: true
                    quota: 1
                  volume_shadow_copy:
                    enabled: true
                    quota: 1
                  shadow_protect_system:
                    enabled: true
                    quota: 1
                  in_file_delta:
                    enabled: true
                    quota: 1
                  nas_synology:
                    enabled: false
                    quota: 1
                  nas_qnap:
                    enabled: false
                    quota: 1
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de cpf/cnpj inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/backup/client'' --data="clientId=1&backupServerId=1&items[123999]=5&items[456999]=2&backupClientId=nome_da_conta_de_backup&password=#7Kd[2Ek;5Uc&timezone=GMT-03:00 (BRT)&language=pt_BR" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}:
    get:
      tags:
      - Backup
      summary: Recuperar informações de conta de backup
      description: Esta é a chamada que retorna as informações completas de uma conta de backup selecionada.
      operationId: get_backup_client_backup_client_id
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": {\n        \"backup_client_id\": \"backup@dominio.com.br\",\n        \"client_id\": 1,\n        \"client_name\": \"Nome do Cliente\",\n        \"purchase_type\": \"paid\",\n        \"client_type\": \"skymail_bp\",\n        \"status\": \"active\",\n        \"storage\": 13194139533312,\n        \"params\": {\n            \"notes\": \"\",\n            \"id\": \"1554896933312\",\n            \"statistics\": {\n                \"DataAreaCompressedInGb\": 5613.88,\n                \"DataAreaCompressedInTb\": 5.48,\n                \"DataAreaCompressedSize\": 6027856511046,\n                \"DataAreaFileCount\": 722403,\n                \"DataAreaUncompressedInGb\": 7894.65,\n                \"DataAreaUncompressedInTb\": 7.71,\n                \"DataAreaUncompressedSize\": 8476814309329,\n                \"RetentionAreaCompressedInGb\": 1172.95,\n                \"RetentionAreaCompressedInTb\": 1.15,\n                \"RetentionAreaCompressedSize\": 1259442087836,\n                \"RetentionAreaFileCount\": 89,\n                \"RetentionAreaUncompressedInGb\": 2980.7,\n                \"RetentionAreaUncompressedInTb\": 2.91,\n                \"RetentionAreaUncompressedSize\": 3200502391740,\n                \"StorageInGb\": 12288.0,\n                \"StorageInTb\": 12.0,\n                \"TotalAreaCompressedInGb\": 6786.83,\n                \"TotalAreaCompressedInTb\": 6.63,\n                \"TotalAreaCompressedSize\": 7287298598882,\n                \"TotalAreaUncompressedInGb\": 10875.35,\n                \"TotalAreaUncompressedInTb\": 10.62,\n                \"TotalAreaUncompressedSize\": 11677316701069,\n                \"TotalFileCount\": 722492\n            },\n            \"last_login\": \"2020-02-17T08:00:39+00:00\",\n            \"last_login_time\": 1581926439548,\n            \"registration\": \"2019-04-10T11:48:53+00:00\",\n            \"registration_time\": 1554896933312,\n            \"client\": {\n                \"last_login\": \"2020-02-14T17:42:07+00:00\",\n                \"last_login_time\": 1581702127629,\n                \"version\": \"8.1.1.106\"\n            },\n            \"language\": \"en\",\n            \"timezone\": \"1040\",\n            \"alias\": \"\",\n            \"hosts\": {\n                \"server01\": \"Server01\",\n            },\n            \"backups\": [\n                \"1554904958752\",\n                \"1554905094973\",\n                \"1554905176048\",\n                \"1554905281045\",\n                \"1554905351238\",\n                \"1554905411268\",\n                \"1554906874690\",\n                \"1554907026628\",\n                \"1581600048270\",\n                \"1581601022931\",\n                \"1581601168744\",\n                \"1581601283590\",\n                \"1581601464314\",\n                \"1581601545018\",\n                \"1581601788679\",\n                \"1581601937684\",\n                \"1581602817379\",\n                \"1581602947101\",\n                \"1581603043937\",\n                \"1581606654947\",\n                \"1581606885679\",\n                \"1581701987539\"\n            ],\n            \"reseller\": \"\",\n            \"directories\": {\n                \"top\": \"/skymail/data/backup_servers/cbs/users\",\n                \"home\": \"/skymail/data/backup_servers/cbs/users/backup@dominio.com.br#21533\"\n            },\n            \"contact\": [\n                {\n                    \"name\": \"Backup Contact\",\n                    \"email\": \"it@dominio.com.br\",\n                    \"phone1\": \"\",\n                    \"phone2\": \"\"\n                }\n            ]\n        },\n        \"features\": {\n            \"hosts\": {\n                \"enabled\": true,\n                \"quota\": 6,\n                \"available\": true\n            },\n            \"run_direct\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": false\n            },\n            \"hyper_v_socket\": {\n                \"enabled\": true,\n                \"quota\": 10,\n                \"available\": true\n            },\n            \"hyper_v_guestvm\": {\n                \"enabled\": false,\n                \"quota\": 0,\n                \"available\": true\n            },\n            \"vmware_guestvm\": {\n                \"enabled\": false,\n                \"quota\": 0,\n                \"available\": true\n            },\n            \"vmware_socket\": {\n                \"enabled\": false,\n                \"quota\": 0,\n                \"available\": true\n            },\n            \"open_direct_granular\": {\n                \"enabled\": true,\n                \"quota\": 4,\n                \"available\": true\n            },\n            \"office_365\": {\n                \"enabled\": false,\n                \"quota\": 0,\n                \"available\": true\n            },\n            \"exchange_mailbox\": {\n                \"enabled\": false,\n                \"quota\": 0,\n                \"available\": true\n            },\n            \"mobile\": {\n                \"enabled\": false,\n                \"quota\": 0,\n                \"available\": true\n            },\n            \"lotus_domino\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"lotus_notes\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"oracle_server\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"sql_server\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"mysql_server\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"exchange_server\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"windows_system_state\": {\n                \"enabled\": true,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"continuous_data_protection\": {\n                \"enabled\": true,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"windows_system\": {\n                \"enabled\": true,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"volume_shadow_copy\": {\n                \"enabled\": true,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"shadow_protect_system\": {\n                \"enabled\": true,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"in_file_delta\": {\n                \"enabled\": true,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"nas_synology\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            },\n            \"nas_qnap\": {\n                \"enabled\": false,\n                \"quota\": 1,\n                \"available\": true\n            }\n        }\n    }\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/backup/client/{backup_client_id}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Backup
      summary: Atualizar contratações e dados de conta de backup
      description: Esta é a chamada para atualizar contratações de uma conta de backup, alterando quantidades contratadas das licenças existentes, ou adicionando novas licenças em uma conta.
      operationId: put_backup_client_backup_client_id
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                alias:
                  type: string
                  description: Nome do cliente ou algo que identifique esta conta de backup
                  example: Nome do Cliente
                timezone:
                  type: string
                  enum:
                  - '`1001`'
                  - '`1002`'
                  - '`1003`'
                  - '`1004`'
                  - '`1005`'
                  - '`1006`'
                  - '`1008`'
                  - '`1009`'
                  - '`1010`'
                  - '`1011`'
                  - '`1012`'
                  - '`1013`'
                  - '`1014`'
                  - '`1015`'
                  - '`1016`'
                  - '`1018`'
                  - '`1019`'
                  - '`1020`'
                  - '`1021`'
                  - '`1022`'
                  - '`1023`'
                  - '`1024`'
                  - '`1025`'
                  - '`1026`'
                  - '`1028`'
                  - '`1029`'
                  - '`1030`'
                  - '`1031`'
                  - '`1032`'
                  - '`1033`'
                  - '`1034`'
                  - '`1036`'
                  - '`1037`'
                  - '`1038`'
                  - '`1039`'
                  - '`1040`'
                  - '`1041`'
                  - '`1042`'
                  - '`1043`'
                  - '`1044`'
                  - '`1045`'
                  - '`1046`'
                  - '`1047`'
                  - '`1048`'
                  - '`1049`'
                  - '`1050`'
                  - '`1051`'
                  - '`1052`'
                  - '`1053`'
                  - '`1054`'
                  - '`1055`'
                  - '`1056`'
                  - '`1057`'
                  - '`1058`'
                  - '`1059`'
                  - '`1060`'
                  - '`1061`'
                  - '`1062`'
                  - '`1063`'
                  - '`1064`'
                  - '`1065`'
                  - '`1066`'
                  - '`1067`'
                  - '`1068`'
                  - '`1069`'
                  - '`1070`'
                  - '`1071`'
                  - '`1072`'
                  - '`1073`'
                  - '`1074`'
                  - '`1075`'
                  - '`1076`'
                  - '`1077`'
                  - '`1078`'
                  - '`1079`'
                  - '`1080`'
                  - '`1081`'
                  - '`1082`'
                  - '`1083`'
                  - '`1084`'
                  - '`1085`'
                  - '`1086`'
                  - '`1087`'
                  - '`1088`'
                  - '`1089`'
                  - '`1090`'
                  - '`1091`'
                  - '`1092`'
                  - '`1093`'
                  - '`1094`'
                  - '`1095`'
                  - '`1096`'
                  - '`1097`'
                  - '`1098`'
                  - '`1099`'
                  - '`1100`'
                  - '`1101`'
                  - '`1102`'
                  - '`1103`'
                  - '`1104`'
                  - '`1105`'
                  - '`1106`'
                  - '`1107`'
                  - '`1108`'
                  - '`1109`'
                  - '`1110`'
                  - '`1111`'
                  - '`1112`'
                  - '`1113`'
                  - '`1114`'
                  - '`1115`'
                  - '`1116`'
                  - '`1117`'
                  - '`1118`'
                  - '`1119`'
                  - '`1120`'
                  - '`1121`'
                  - '`1122`'
                  - '`1123`'
                  - '`1124`'
                  - '`1125`'
                  - '`1126`'
                  - '`1127`'
                  - '`1128`'
                  - '`1129`'
                  - '`1130`'
                  - '`1131`'
                  - '`1132`'
                  - '`1133`'
                  - '`1134`'
                  - '`1135`'
                  - '`1136`'
                  - '`1137`'
                  - '`1138`'
                  - '`GMT+00:00 (BST)`'
                  - '`GMT+00:00 (GMT)`'
                  - '`GMT+00:00 (IST)`'
                  - '`GMT+00:00 (UTC)`'
                  - '`GMT+00:00 (WEST)`'
                  - '`GMT+00:00 (WET)`'
                  - '`GMT+01:00 (CEST)`'
                  - '`GMT+01:00 (CET)`'
                  - '`GMT+01:00 (WAT)`'
                  - '`GMT+02:00 (CAT)`'
                  - '`GMT+02:00 (EEST)`'
                  - '`GMT+02:00 (EET)`'
                  - '`GMT+02:00 (IDT)`'
                  - '`GMT+02:00 (SAST)`'
                  - '`GMT+03:00 (ADT)`'
                  - '`GMT+03:00 (AST)`'
                  - '`GMT+03:00 (EAT)`'
                  - '`GMT+03:00 (MSD)`'
                  - '`GMT+04:00 (AMST)`'
                  - '`GMT+04:00 (AQTST)`'
                  - '`GMT+04:00 (AZST)`'
                  - '`GMT+04:00 (GEST)`'
                  - '`GMT+04:00 (GST)`'
                  - '`GMT+04:00 (MUT)`'
                  - '`GMT+04:00 (RET)`'
                  - '`GMT+04:00 (SAMST)`'
                  - '`GMT+04:00 (SCT)`'
                  - '`GMT+05:00 (IDT)`'
                  - '`GMT+05:00 (KGST)`'
                  - '`GMT+05:00 (MVT)`'
                  - '`GMT+05:00 (PKT)`'
                  - '`GMT+05:00 (TFT)`'
                  - '`GMT+05:00 (TJT)`'
                  - '`GMT+05:00 (TMT)`'
                  - '`GMT+05:00 (UZT)`'
                  - '`GMT+05:00 (YEKST)`'
                  - '`GMT+06:00 (BDT)`'
                  - '`GMT+06:00 (BTT)`'
                  - '`GMT+06:00 (LKT)`'
                  - '`GMT+06:00 (MAWT)`'
                  - '`GMT+06:00 (NOVST)`'
                  - '`GMT+07:00 (CXT)`'
                  - '`GMT+07:00 (ICT)`'
                  - '`GMT+07:00 (JAVT)`'
                  - '`GMT+07:00 (KRAST)`'
                  - '`GMT+08:00 (BNST)`'
                  - '`GMT+08:00 (BORT)`'
                  - '`GMT+08:00 (CST)`'
                  - '`GMT+08:00 (HKT)`'
                  - '`GMT+08:00 (IRKST)`'
                  - '`GMT+08:00 (JAYT)`'
                  - '`GMT+08:00 (MYT)`'
                  - '`GMT+08:00 (PHT)`'
                  - '`GMT+08:00 (SGT)`'
                  - '`GMT+08:00 (ULAT)`'
                  - '`GMT+08:00 (WST)`'
                  - '`GMT+09:00 (JST)`'
                  - '`GMT+09:00 (KST)`'
                  - '`GMT+09:00 (PWT)`'
                  - '`GMT+09:00 (YAKST)`'
                  - '`GMT+10:00 (ChST)`'
                  - '`GMT+10:00 (DDUT)`'
                  - '`GMT+10:00 (EST)`'
                  - '`GMT+10:00 (PGT)`'
                  - '`GMT+10:00 (TRUST)`'
                  - '`GMT+10:00 (VLAST)`'
                  - '`GMT+11:00 (KOSST)`'
                  - '`GMT+11:00 (MAGST)`'
                  - '`GMT+11:00 (NCT)`'
                  - '`GMT+11:00 (PONT)`'
                  - '`GMT+11:00 (VUT)`'
                  - '`GMT+12:00 (ANAST)`'
                  - '`GMT+12:00 (FJT)`'
                  - '`GMT+12:00 (GILT)`'
                  - '`GMT+12:00 (MHT)`'
                  - '`GMT+12:00 (NRT)`'
                  - '`GMT+12:00 (NZST)`'
                  - '`GMT+12:00 (PETST)`'
                  - '`GMT+12:00 (TVT)`'
                  - '`GMT+12:00 (WAKT)`'
                  - '`GMT+12:00 (WFT)`'
                  - '`GMT-01:00 (EGST)`'
                  - '`GMT-02:00 (FNT)`'
                  - '`GMT-02:00 (GST)`'
                  - '`GMT-03:00 (ART)`'
                  - '`GMT-03:00 (BRT)`'
                  - '`GMT-03:00 (GFT)`'
                  - '`GMT-03:00 (PMDT)`'
                  - '`GMT-03:00 (SRT)`'
                  - '`GMT-03:00 (UYT)`'
                  - '`GMT-03:00 (WGST)`'
                  - '`GMT-04:00 (ADT)`'
                  - '`GMT-04:00 (AMT)`'
                  - '`GMT-04:00 (AST)`'
                  - '`GMT-04:00 (BOT)`'
                  - '`GMT-04:00 (CLT)`'
                  - '`GMT-04:00 (FKT)`'
                  - '`GMT-04:00 (GYT)`'
                  - '`GMT-04:00 (PYT)`'
                  - '`GMT-04:00 (VET)`'
                  - '`GMT-05:00 (ACT)`'
                  - '`GMT-05:00 (CDT)`'
                  - '`GMT-05:00 (COT)`'
                  - '`GMT-05:00 (ECT)`'
                  - '`GMT-05:00 (EDT)`'
                  - '`GMT-05:00 (EST)`'
                  - '`GMT-05:00 (GMT-`'
                  - '`GMT-05:00 (PET)`'
                  - '`GMT-06:00 (CDT)`'
                  - '`GMT-06:00 (CST)`'
                  - '`GMT-06:00 (EAST)`'
                  - '`GMT-06:00 (GALT)`'
                  - '`GMT-07:00 (MDT)`'
                  - '`GMT-07:00 (MST)`'
                  - '`GMT-07:00 (PDT)`'
                  - '`GMT-08:00 (PST)`'
                  - '`GMT-09:00 (AKST)`'
                  - '`GMT-09:00 (GAMT)`'
                  - '`GMT-10:00 (CKT)`'
                  - '`GMT-10:00 (HADT)`'
                  - '`GMT-10:00 (HST)`'
                  - '`GMT-10:00 (THAT)`'
                  - '`GMT-10:00 (TKT)`'
                  - '`GMT-11:00 (NUT)`'
                  - '`GMT-11:00 (SST)`'
                  - '`GMT-11:00 (WST)`'
                  description: Fuso horário da conta de backup
                  example: GMT-03:00 ` (enum[string], required)
                language:
                  type: string
                  enum:
                  - '`ar`'
                  - '`ca`'
                  - '`cs`'
                  - '`da`'
                  - '`de`'
                  - '`el`'
                  - '`en`'
                  - '`es`'
                  - '`eu`'
                  - '`fi`'
                  - '`fr`'
                  - '`iw`'
                  - '`hu`'
                  - '`in`'
                  - '`it`'
                  - '`ja`'
                  - '`ko`'
                  - '`lt`'
                  - '`nl`'
                  - '`no`'
                  - '`pl`'
                  - '`pt_BR`'
                  - '`pt_PT`'
                  - '`ru`'
                  - '`sl`'
                  - '`sv`'
                  - '`th_TH`'
                  - '`tr`'
                  - '`vi`'
                  - '`zh_CN`'
                  - '`zh_TW`'
                  example: pt_BR`    Idioma da conta de backup
                items:
                  type: array
                  items:
                    type: string
                  description: Lista com IDs das contratações e quantidades para relacionar com a conta de backup. É obrigatório quando não são enviados `products[]`
                  example: items[1]=5
                products:
                  type: array
                  items:
                    type: string
                  description: Lista com IDs de produtos e quantidades a serem contratados para o cliente e relacionados com a conta de backup. É obrigatório quando não são enviados `items[]`
                  example: products[110]=5
                confirm_purchase:
                  type: string
                  description: Enviando o valor `true` que confirma a nova contratação de produto (ou incremento de quantidade contratada quando o produto já tiver sido contratado anteriormente)
                  example: 'true'
                payment_info_id:
                  type: number
                  description: ID do ciclo de pagamento que receberá o novo produto contratado. Obrigatório quando há mais de um ciclo de pagamento ativo para o cliente
                  example: 1000
              required:
              - language
              - items
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  backupClientId:
                    type: string
                  purchaseType:
                    type: string
                  clientType:
                    type: string
                  status:
                    type: string
                  storage:
                    type: integer
                  params:
                    type: object
                    properties:
                      notes:
                        type: string
                      id:
                        type: string
                      statistics:
                        type: object
                        properties:
                          RetentionAreaCompressedSize:
                            type: integer
                          DataAreaUncompressedSize:
                            type: integer
                          RetentionAreaFileCount:
                            type: integer
                          DataAreaFileCount:
                            type: integer
                          RetentionAreaUncompressedSize:
                            type: integer
                          DataAreaCompressedSize:
                            type: integer
                      last_login:
                        type: string
                      client:
                        type: object
                        properties:
                          last_login:
                            type: string
                          version:
                            type: string
                      language:
                        type: string
                      alias:
                        type: string
                      hosts:
                        type: object
                        properties:
                          ? ''
                          : type: string
                      backups:
                        type: array
                        items: {}
                      reseller:
                        type: string
                      directories:
                        type: object
                        properties:
                          top:
                            type: string
                          home:
                            type: string
                      contact:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            email:
                              type: string
                  features:
                    type: object
                    properties:
                      hosts:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      run_direct:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      open_direct_granular:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      office_365:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_mailbox:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mobile:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_domino:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_notes:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      oracle_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      sql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mysql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system_state:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      continuous_data_protection:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      volume_shadow_copy:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      shadow_protect_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      in_file_delta:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_synology:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_qnap:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
              example:
                backupClientId: backup@dominio.com.br
                purchaseType: paid
                clientType: skymail_bp
                status: active
                storage: 53687091200
                params:
                  notes: Usuário criado via API
                  id: '1558720069753'
                  statistics:
                    RetentionAreaCompressedSize: 0
                    DataAreaUncompressedSize: 0
                    RetentionAreaFileCount: 0
                    DataAreaFileCount: 0
                    RetentionAreaUncompressedSize: 0
                    DataAreaCompressedSize: 0
                  last_login: '1970-01-01T00:00:00+00:00'
                  client:
                    last_login: '1969-12-31T23:59:59+00:00'
                    version: ''
                  language: pt_BR
                  alias: Cliente Teste
                  hosts:
                    ? ''
                    : ''
                  backups: []
                  reseller: ''
                  directories:
                    top: /skymail/data/backup_servers/cbs/users
                    home: /skymail/data/backup_servers/cbs/users/backup@dominio.com.br
                  contact:
                  - name: Cliente Teste
                    email: backup@dominio.com.br
                features:
                  hosts:
                    enabled: true
                    quota: 5
                  run_direct:
                    enabled: false
                    quota: 1
                  hyper_v_guestvm:
                    enabled: false
                    quota: 0
                  hyper_v_socket:
                    enabled: false
                    quota: 0
                  vmware_guestvm:
                    enabled: false
                    quota: 0
                  vmware_socket:
                    enabled: false
                    quota: 0
                  open_direct_granular:
                    enabled: false
                    quota: 0
                  office_365:
                    enabled: false
                    quota: 0
                  exchange_mailbox:
                    enabled: false
                    quota: 0
                  mobile:
                    enabled: false
                    quota: 0
                  lotus_domino:
                    enabled: true
                    quota: 1
                  lotus_notes:
                    enabled: true
                    quota: 1
                  oracle_server:
                    enabled: true
                    quota: 1
                  sql_server:
                    enabled: true
                    quota: 1
                  mysql_server:
                    enabled: true
                    quota: 1
                  exchange_server:
                    enabled: true
                    quota: 1
                  windows_system_state:
                    enabled: true
                    quota: 1
                  continuous_data_protection:
                    enabled: true
                    quota: 1
                  windows_system:
                    enabled: true
                    quota: 1
                  volume_shadow_copy:
                    enabled: true
                    quota: 1
                  shadow_protect_system:
                    enabled: true
                    quota: 1
                  in_file_delta:
                    enabled: true
                    quota: 1
                  nas_synology:
                    enabled: false
                    quota: 1
                  nas_qnap:
                    enabled: false
                    quota: 1
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/backup/client/{backup_client_id}'' --data="timezone=GMT-03:00 (BRT)&language=pt_BR&items[123999]=5&items[456999]=2&products[110]=5&products[129]=2" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Backup
      summary: Excluir uma conta de backup
      description: Esta é a chamada que permite excluir definitivamente uma conta de backup. <strong>Esta ação não poderá ser desfeita</strong>
      operationId: delete_backup_client_backup_client_id
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items: {}
              example:
                success: true
                data: []
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/backup/client/{backup_client_id}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}/status:
    put:
      tags:
      - Backup
      summary: Atualizar status de conta de backup
      description: Esta é a chamada que permite alterar o status de uma conta de backup
      operationId: put_backup_client_backup_client_id_status
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                  - '`true`'
                  - '`false`'
                  description: Novo status da conta de backup
                  example: 'false'
              required:
              - status
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  backupClientId:
                    type: string
                  purchaseType:
                    type: string
                  clientType:
                    type: string
                  status:
                    type: string
                  storage:
                    type: integer
                  params:
                    type: object
                    properties:
                      notes:
                        type: string
                      id:
                        type: string
                      statistics:
                        type: object
                        properties:
                          RetentionAreaCompressedSize:
                            type: integer
                          DataAreaUncompressedSize:
                            type: integer
                          RetentionAreaFileCount:
                            type: integer
                          DataAreaFileCount:
                            type: integer
                          RetentionAreaUncompressedSize:
                            type: integer
                          DataAreaCompressedSize:
                            type: integer
                      last_login:
                        type: string
                      client:
                        type: object
                        properties:
                          last_login:
                            type: string
                          version:
                            type: string
                      language:
                        type: string
                      alias:
                        type: string
                      hosts:
                        type: object
                        properties:
                          ? ''
                          : type: string
                      backups:
                        type: array
                        items: {}
                      reseller:
                        type: string
                      directories:
                        type: object
                        properties:
                          top:
                            type: string
                          home:
                            type: string
                      contact:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            email:
                              type: string
                  features:
                    type: object
                    properties:
                      hosts:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      run_direct:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      open_direct_granular:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      office_365:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_mailbox:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mobile:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_domino:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_notes:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      oracle_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      sql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mysql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system_state:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      continuous_data_protection:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      volume_shadow_copy:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      shadow_protect_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      in_file_delta:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_synology:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_qnap:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
              example:
                backupClientId: backup@dominio.com.br
                purchaseType: paid
                clientType: skymail_bp
                status: inactive
                storage: 53687091200
                params:
                  notes: Usuário criado via API
                  id: '1558720069753'
                  statistics:
                    RetentionAreaCompressedSize: 0
                    DataAreaUncompressedSize: 0
                    RetentionAreaFileCount: 0
                    DataAreaFileCount: 0
                    RetentionAreaUncompressedSize: 0
                    DataAreaCompressedSize: 0
                  last_login: '1970-01-01T00:00:00+00:00'
                  client:
                    last_login: '1969-12-31T23:59:59+00:00'
                    version: ''
                  language: pt_BR
                  alias: Cliente Teste
                  hosts:
                    ? ''
                    : ''
                  backups: []
                  reseller: ''
                  directories:
                    top: /skymail/data/backup_servers/cbs/users
                    home: /skymail/data/backup_servers/cbs/users/backup@dominio.com.br
                  contact:
                  - name: Cliente Teste
                    email: backup@dominio.com.br
                features:
                  hosts:
                    enabled: true
                    quota: 5
                  run_direct:
                    enabled: false
                    quota: 1
                  hyper_v_guestvm:
                    enabled: false
                    quota: 0
                  hyper_v_socket:
                    enabled: false
                    quota: 0
                  vmware_guestvm:
                    enabled: false
                    quota: 0
                  vmware_socket:
                    enabled: false
                    quota: 0
                  open_direct_granular:
                    enabled: false
                    quota: 0
                  office_365:
                    enabled: false
                    quota: 0
                  exchange_mailbox:
                    enabled: false
                    quota: 0
                  mobile:
                    enabled: false
                    quota: 0
                  lotus_domino:
                    enabled: true
                    quota: 1
                  lotus_notes:
                    enabled: true
                    quota: 1
                  oracle_server:
                    enabled: true
                    quota: 1
                  sql_server:
                    enabled: true
                    quota: 1
                  mysql_server:
                    enabled: true
                    quota: 1
                  exchange_server:
                    enabled: true
                    quota: 1
                  windows_system_state:
                    enabled: true
                    quota: 1
                  continuous_data_protection:
                    enabled: true
                    quota: 1
                  windows_system:
                    enabled: true
                    quota: 1
                  volume_shadow_copy:
                    enabled: true
                    quota: 1
                  shadow_protect_system:
                    enabled: true
                    quota: 1
                  in_file_delta:
                    enabled: true
                    quota: 1
                  nas_synology:
                    enabled: false
                    quota: 1
                  nas_qnap:
                    enabled: false
                    quota: 1
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/backup/client/{backup_client_id}/status'' --data="status=false" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}/password:
    put:
      tags:
      - Backup
      summary: Alterar a senha de uma conta de backup
      description: Esta é a chamada que permite alterar a senha de uma conta de backup
      operationId: put_backup_client_backup_client_id_password
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                password:
                  type: string
                  description: Nova senha da conta de backup
                  example: dah4278HSJ@#
              required:
              - password
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  backupClientId:
                    type: string
                  purchaseType:
                    type: string
                  clientType:
                    type: string
                  status:
                    type: string
                  storage:
                    type: integer
                  params:
                    type: object
                    properties:
                      notes:
                        type: string
                      id:
                        type: string
                      statistics:
                        type: object
                        properties:
                          RetentionAreaCompressedSize:
                            type: integer
                          DataAreaUncompressedSize:
                            type: integer
                          RetentionAreaFileCount:
                            type: integer
                          DataAreaFileCount:
                            type: integer
                          RetentionAreaUncompressedSize:
                            type: integer
                          DataAreaCompressedSize:
                            type: integer
                      last_login:
                        type: string
                      client:
                        type: object
                        properties:
                          last_login:
                            type: string
                          version:
                            type: string
                      language:
                        type: string
                      alias:
                        type: string
                      hosts:
                        type: object
                        properties:
                          ? ''
                          : type: string
                      backups:
                        type: array
                        items: {}
                      reseller:
                        type: string
                      directories:
                        type: object
                        properties:
                          top:
                            type: string
                          home:
                            type: string
                      contact:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            email:
                              type: string
                  features:
                    type: object
                    properties:
                      hosts:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      run_direct:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      hyper_v_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_guestvm:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      vmware_socket:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      open_direct_granular:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      office_365:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_mailbox:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mobile:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_domino:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      lotus_notes:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      oracle_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      sql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      mysql_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      exchange_server:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system_state:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      continuous_data_protection:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      windows_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      volume_shadow_copy:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      shadow_protect_system:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      in_file_delta:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_synology:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
                      nas_qnap:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          quota:
                            type: integer
              example:
                backupClientId: backup@dominio.com.br
                purchaseType: paid
                clientType: skymail_bp
                status: active
                storage: 53687091200
                params:
                  notes: Usuário criado via API
                  id: '1558720069753'
                  statistics:
                    RetentionAreaCompressedSize: 0
                    DataAreaUncompressedSize: 0
                    RetentionAreaFileCount: 0
                    DataAreaFileCount: 0
                    RetentionAreaUncompressedSize: 0
                    DataAreaCompressedSize: 0
                  last_login: '1970-01-01T00:00:00+00:00'
                  client:
                    last_login: '1969-12-31T23:59:59+00:00'
                    version: ''
                  language: pt_BR
                  alias: Cliente Teste
                  hosts:
                    ? ''
                    : ''
                  backups: []
                  reseller: ''
                  directories:
                    top: /skymail/data/backup_servers/cbs/users
                    home: /skymail/data/backup_servers/cbs/users/backup@dominio.com.br
                  contact:
                  - name: Cliente Teste
                    email: backup@dominio.com.br
                features:
                  hosts:
                    enabled: true
                    quota: 5
                  run_direct:
                    enabled: false
                    quota: 1
                  hyper_v_guestvm:
                    enabled: false
                    quota: 0
                  hyper_v_socket:
                    enabled: false
                    quota: 0
                  vmware_guestvm:
                    enabled: false
                    quota: 0
                  vmware_socket:
                    enabled: false
                    quota: 0
                  open_direct_granular:
                    enabled: false
                    quota: 0
                  office_365:
                    enabled: false
                    quota: 0
                  exchange_mailbox:
                    enabled: false
                    quota: 0
                  mobile:
                    enabled: false
                    quota: 0
                  lotus_domino:
                    enabled: true
                    quota: 1
                  lotus_notes:
                    enabled: true
                    quota: 1
                  oracle_server:
                    enabled: true
                    quota: 1
                  sql_server:
                    enabled: true
                    quota: 1
                  mysql_server:
                    enabled: true
                    quota: 1
                  exchange_server:
                    enabled: true
                    quota: 1
                  windows_system_state:
                    enabled: true
                    quota: 1
                  continuous_data_protection:
                    enabled: true
                    quota: 1
                  windows_system:
                    enabled: true
                    quota: 1
                  volume_shadow_copy:
                    enabled: true
                    quota: 1
                  shadow_protect_system:
                    enabled: true
                    quota: 1
                  in_file_delta:
                    enabled: true
                    quota: 1
                  nas_synology:
                    enabled: false
                    quota: 1
                  nas_qnap:
                    enabled: false
                    quota: 1
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/backup/client/{backup_client_id}/password'' --data="password=dah4278HSJ@#" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}/backup-set:
    get:
      tags:
      - Backup
      summary: Listar rotinas
      description: Com essa chamada será possível listar todas as rotinas configuradas em uma conta de backup
      operationId: get_backup_client_backup_client_id_backup_set
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Página atual da paginação de resultados
        required: false
        schema:
          type: number
          example: '1'
      - name: perPage
        in: query
        description: Quantidade de resultados retornados por página
        required: false
        schema:
          type: number
          example: '20'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        backupSetId:
                          type: string
                        backupClientId:
                          type: string
                        name:
                          type: string
                        type:
                          type: string
                        params:
                          type: object
                          properties:
                            encryption_key:
                              type: string
                            timezone:
                              type: string
                            schedules:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                                  type:
                                    type: string
                                  last_update_time:
                                    type: integer
                                  hour:
                                    type: integer
                                  minute:
                                    type: integer
                                  retention_policy_enabled:
                                    type: boolean
                            destinations:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                                  type:
                                    type: string
                                  statistics:
                                    type: object
                                    properties:
                                      total_backup_count:
                                        type: integer
                                      total_restore_count:
                                        type: integer
                                      last_backup:
                                        type: object
                                        properties:
                                          uncompressed_size:
                                            type: integer
                                          compressed_size:
                                            type: integer
                                          total_files:
                                            type: integer
                                          complete_time:
                                            type: integer
                                          job_id:
                                            type: string
                                      data_area:
                                        type: object
                                        properties:
                                          uncompressed_size:
                                            type: integer
                                          compressed_size:
                                            type: integer
                                          total_files:
                                            type: integer
                                      retention_area:
                                        type: object
                                        properties:
                                          uncompressed_size:
                                            type: integer
                                          compressed_size:
                                            type: integer
                                          total_files:
                                            type: integer
                            sources:
                              type: array
                              items:
                                type: string
                            host:
                              type: string
                            version:
                              type: string
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                - backupSetId: '1540407059999'
                  backupClientId: backup_client_id
                  name: Nome da Rotina
                  type: storage
                  params:
                    encryption_key: FN12WBZOtGl34u+j8sn568CAk2xJ789qNEMo0E3JIFs=
                    timezone: America/Sao_Paulo
                    schedules:
                    - id: '1540407239999'
                      name: Daily-1
                      type: daily
                      last_update_time: 1580754033794
                      hour: 22
                      minute: 20
                      retention_policy_enabled: true
                    destinations:
                    - id: '1540407259999'
                      name: CBS
                      type: OBS
                      statistics:
                        total_backup_count: 822
                        total_restore_count: 0
                        last_backup:
                          uncompressed_size: 0
                          compressed_size: 0
                          total_files: 0
                          complete_time: 1578184474092
                          job_id: 2020-01-04-22-20-00
                        data_area:
                          uncompressed_size: 127814899397
                          compressed_size: 127788911072
                          total_files: 198731
                        retention_area:
                          uncompressed_size: 0
                          compressed_size: 0
                          total_files: 0
                    sources:
                    - C:\Dados
                    host: nomedoservidor
                    version: 8.1.1.106
                page: 1
                perPage: 1
                numPages: 26
                total: 26
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/backup/client/{backup_client_id}/backup-set'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}/backup-set/{backup_set_id}:
    get:
      tags:
      - Backup
      summary: Exibir uma rotina
      description: Com essa chamada será possível exibir os detalhes de uma rotina configurada em uma conta de backup
      operationId: get_backup_client_backup_client_id_backup_set_backup_set_id
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      - name: backup_set_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      backupSetId:
                        type: string
                      backupClientId:
                        type: string
                      name:
                        type: string
                      type:
                        type: string
                      params:
                        type: object
                        properties:
                          encryption_key:
                            type: string
                          timezone:
                            type: string
                          schedules:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                                last_update_time:
                                  type: integer
                                hour:
                                  type: integer
                                minute:
                                  type: integer
                                retention_policy_enabled:
                                  type: boolean
                          destinations:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                                statistics:
                                  type: object
                                  properties:
                                    total_backup_count:
                                      type: integer
                                    total_restore_count:
                                      type: integer
                                    last_backup:
                                      type: object
                                      properties:
                                        uncompressed_size:
                                          type: integer
                                        compressed_size:
                                          type: integer
                                        total_files:
                                          type: integer
                                        complete_time:
                                          type: integer
                                        job_id:
                                          type: string
                                    data_area:
                                      type: object
                                      properties:
                                        uncompressed_size:
                                          type: integer
                                        compressed_size:
                                          type: integer
                                        total_files:
                                          type: integer
                                    retention_area:
                                      type: object
                                      properties:
                                        uncompressed_size:
                                          type: integer
                                        compressed_size:
                                          type: integer
                                        total_files:
                                          type: integer
                          sources:
                            type: array
                            items:
                              type: string
                          host:
                            type: string
                          version:
                            type: string
              example:
                success: true
                data:
                  backupSetId: '1540407059999'
                  backupClientId: backup_client_id
                  name: Nome da Rotina
                  type: storage
                  params:
                    encryption_key: FN12WBZOtGl34u+j8sn568CAk2xJ789qNEMo0E3JIFs=
                    timezone: America/Sao_Paulo
                    schedules:
                    - id: '1540407239999'
                      name: Daily-1
                      type: daily
                      last_update_time: 1580754033794
                      hour: 22
                      minute: 20
                      retention_policy_enabled: true
                    destinations:
                    - id: '1540407259999'
                      name: CBS
                      type: OBS
                      statistics:
                        total_backup_count: 822
                        total_restore_count: 0
                        last_backup:
                          uncompressed_size: 0
                          compressed_size: 0
                          total_files: 0
                          complete_time: 1578184474092
                          job_id: 2020-01-04-22-20-00
                        data_area:
                          uncompressed_size: 127814899397
                          compressed_size: 127788911072
                          total_files: 198731
                        retention_area:
                          uncompressed_size: 0
                          compressed_size: 0
                          total_files: 0
                    sources:
                    - C:\Dados
                    host: nomedoservidor
                    version: 8.1.1.106
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/backup/client/{backup_client_id}/backup-set/{backup_set_id}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}/backup-set/{backup_set_id}/job:
    get:
      tags:
      - Backup
      summary: Listar histórco
      description: Com essa chamada será possível listar o histórico de execuções de uma rotina selecionada de uma conta de backup.
      operationId: get_backup_client_backup_client_id_backup_set_backup_set_id_job
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      - name: backup_set_id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Página atual da paginação de resultados
        required: false
        schema:
          type: number
          example: '1'
      - name: perPage
        in: query
        description: Quantidade de resultados retornados por página
        required: false
        schema:
          type: number
          example: '20'
      - name: summarized
        in: query
        description: Flag que indica se o resultado tem que vir sumarizado ou detalhado
        required: false
        schema:
          type: number
          example: '1'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        backupJobId:
                          type: string
                        backupSetId:
                          type: string
                        destinationId:
                          type: string
                        params:
                          type: object
                          properties:
                            logs_count:
                              type: integer
                            ip:
                              type: string
                            host:
                              type: string
                            new_files_count:
                              type: integer
                            new_dir_count:
                              type: integer
                            new_link_dir_count:
                              type: integer
                            new_link_file_count:
                              type: integer
                            deleted_dir_count:
                              type: integer
                            deleted_link_dir_count:
                              type: integer
                            deleted_link_file_count:
                              type: integer
                            total_new_files_size:
                              type: integer
                            total_unzip_new_files_size:
                              type: integer
                            new_files_zip_ratio:
                              type: string
                            updated_files_count:
                              type: integer
                            updated_files_size:
                              type: integer
                            unzip_updated_files_size:
                              type: integer
                            updated_files_zip_ratio:
                              type: string
                            updated_permission_files:
                              type: integer
                            updated_permission_file_size:
                              type: integer
                            unzip_updated_permissions_file_size:
                              type: integer
                            updated_permission_files_zip_ratio:
                              type: string
                            deleted_files_count:
                              type: integer
                            deleted_files_size:
                              type: integer
                            unzip_deleted_files_size:
                              type: integer
                            deleted_files_zip_ratio:
                              type: string
                            moved_files:
                              type: integer
                            moved_files_size:
                              type: integer
                            unzip_moved_files_size:
                              type: integer
                            moved_files_zip_ratio:
                              type: string
                            copied_files_count:
                              type: integer
                            copied_files_size:
                              type: integer
                            unzip_copied_files_size:
                              type: integer
                            copied_files_zip_ratio:
                              type: string
                            start_date:
                              type: string
                            start_time:
                              type: integer
                            end_date:
                              type: string
                            end_time:
                              type: integer
                            status:
                              type: string
                            warn_entries_count:
                              type: integer
                            error_entries_count:
                              type: integer
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                - backupJobId: 2020-02-17-22-00-00
                  backupSetId: '1540479339999'
                  destinationId: '1540479429999'
                  params:
                    logs_count: 659
                    ip: 123.123.132.132
                    host: nome-do-servidor
                    new_files_count: 39
                    new_dir_count: 4
                    new_link_dir_count: 0
                    new_link_file_count: 0
                    deleted_dir_count: 1
                    deleted_link_dir_count: 0
                    deleted_link_file_count: 0
                    total_new_files_size: 12916320
                    total_unzip_new_files_size: 14687670
                    new_files_zip_ratio: 12%
                    updated_files_count: 4
                    updated_files_size: 126512
                    unzip_updated_files_size: 232580
                    updated_files_zip_ratio: 45%
                    updated_permission_files: 0
                    updated_permission_file_size: 0
                    unzip_updated_permissions_file_size: 0
                    updated_permission_files_zip_ratio: 0%
                    deleted_files_count: 1
                    deleted_files_size: 1132048
                    unzip_deleted_files_size: 1132041
                    deleted_files_zip_ratio: 0%
                    moved_files: 6
                    moved_files_size: 635120
                    unzip_moved_files_size: 939364
                    moved_files_zip_ratio: 32%
                    copied_files_count: 0
                    copied_files_size: 0
                    unzip_copied_files_size: 0
                    copied_files_zip_ratio: 0%
                    start_date: '2020-02-17 22:00:06'
                    start_time: 1581987606000
                    end_date: '2020-02-17 22:05:16'
                    end_time: 1581987916000
                    status: job_status_success
                    warn_entries_count: 0
                    error_entries_count: 0
                page: 1
                perPage: 1
                numPages: 480
                total: 480
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/backup/client/{backup_client_id}/backup-set/{backup_set_id}/job'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /backup/client/{backup_client_id}/backup-set/{backup_set_id}/job/{backup_job_id}:
    get:
      tags:
      - Backup
      summary: Exibir um histórico de execução de uma rotina
      description: Com essa chamada será possível exibir os detalhes de uma execução selecionada de uma rotina configurada em uma conta de backup
      operationId: get_backup_client_backup_client_id_backup_set_backup_set_id_job_backup_job_id
      parameters:
      - name: backup_client_id
        in: path
        required: true
        schema:
          type: string
      - name: backup_set_id
        in: path
        required: true
        schema:
          type: string
      - name: backup_job_id
        in: path
        required: true
        schema:
          type: string
      - name: includeLogs
        in: query
        description: Flag que indica se o resultado deve incluir os logs da execução da rotina
        required: false
        schema:
          type: number
          example: '1'
      - name: logsPage
        in: query
        description: Página atual da paginação dos logs da execução
        required: false
        schema:
          type: number
          example: '1'
      - name: logsPerPage
        in: query
        description: Quantidade de logs retornados por página
        required: false
        schema:
          type: number
          example: '20'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      backupJobId:
                        type: string
                      backupSetId:
                        type: string
                      destinationId:
                        type: string
                      params:
                        type: object
                        properties:
                          logs_count:
                            type: integer
                          ip:
                            type: string
                          host:
                            type: string
                          new_files_count:
                            type: integer
                          new_dir_count:
                            type: integer
                          new_link_dir_count:
                            type: integer
                          new_link_file_count:
                            type: integer
                          deleted_dir_count:
                            type: integer
                          deleted_link_dir_count:
                            type: integer
                          deleted_link_file_count:
                            type: integer
                          total_new_files_size:
                            type: integer
                          total_unzip_new_files_size:
                            type: integer
                          new_files_zip_ratio:
                            type: string
                          updated_files_count:
                            type: integer
                          updated_files_size:
                            type: integer
                          unzip_updated_files_size:
                            type: integer
                          updated_files_zip_ratio:
                            type: string
                          updated_permission_files:
                            type: integer
                          updated_permission_file_size:
                            type: integer
                          unzip_updated_permissions_file_size:
                            type: integer
                          updated_permission_files_zip_ratio:
                            type: string
                          deleted_files_count:
                            type: integer
                          deleted_files_size:
                            type: integer
                          unzip_deleted_files_size:
                            type: integer
                          deleted_files_zip_ratio:
                            type: string
                          moved_files:
                            type: integer
                          moved_files_size:
                            type: integer
                          unzip_moved_files_size:
                            type: integer
                          moved_files_zip_ratio:
                            type: string
                          copied_files_count:
                            type: integer
                          copied_files_size:
                            type: integer
                          unzip_copied_files_size:
                            type: integer
                          copied_files_zip_ratio:
                            type: string
                          start_date:
                            type: string
                          start_time:
                            type: integer
                          end_date:
                            type: string
                          end_time:
                            type: integer
                          status:
                            type: string
                          warn_entries_count:
                            type: integer
                          error_entries_count:
                            type: integer
                      logs:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                            timestamp:
                              type: integer
                            message:
                              type: string
              example:
                success: true
                data:
                  backupJobId: 2020-02-17-22-00-00
                  backupSetId: '1540479339999'
                  destinationId: '1540479429999'
                  params:
                    logs_count: 659
                    ip: 132.123.123.123
                    host: nome-do-servidor
                    new_files_count: 39
                    new_dir_count: 4
                    new_link_dir_count: 0
                    new_link_file_count: 0
                    deleted_dir_count: 1
                    deleted_link_dir_count: 0
                    deleted_link_file_count: 0
                    total_new_files_size: 12916320
                    total_unzip_new_files_size: 14687670
                    new_files_zip_ratio: 12%
                    updated_files_count: 4
                    updated_files_size: 126512
                    unzip_updated_files_size: 232580
                    updated_files_zip_ratio: 45%
                    updated_permission_files: 0
                    updated_permission_file_size: 0
                    unzip_updated_permissions_file_size: 0
                    updated_permission_files_zip_ratio: 0%
                    deleted_files_count: 1
                    deleted_files_size: 1132048
                    unzip_deleted_files_size: 1132041
                    deleted_files_zip_ratio: 0%
                    moved_files: 6
                    moved_files_size: 635120
                    unzip_moved_files_size: 939364
                    moved_files_zip_ratio: 32%
                    copied_files_count: 0
                    copied_files_size: 0
                    unzip_copied_files_size: 0
                    copied_files_zip_ratio: 0%
                    start_date: '2020-02-17 22:00:06'
                    start_time: 1581987606000
                    end_date: '2020-02-17 22:05:16'
                    end_time: 1581987916000
                    status: job_status_success
                    warn_entries_count: 0
                    error_entries_count: 0
                  logs:
                  - type: info
                    timestamp: 1581987607
                    message: Saving encrypted backup set encryption keys to server...
                  - type: info
                    timestamp: 1581987610
                    message: Using Temporary Directory C:\Users\myuser\.obm\Temp\1540479339999\OBS@1540479429999
                  - type: info
                    timestamp: 1581987611
                    message: 'Progressive Data Integrity Check is enabled. It will only check the backup files that have not been checked within the specified interval: 60 Days'
                  - type: info
                    timestamp: 1581987611
                    message: Start data integrity check on backup set "Nome da Rotina", "CBS(1540479429999)", crc disabled, rebuild index disabled
                  - type: info
                    timestamp: 1581987611
                    message: Start processing data integrity check on backup set= "Nome da Rotina" destination= "CBS"
                  - type: info
                    timestamp: 1581987681
                    message: Saving encrypted backup file index to 1540479339999/blocks at destination CBS...
                  - type: info
                    timestamp: 1581987703
                    message: Data integrity check on backup set= "Nome da Rotina" destination= "CBS" is completed
                  - type: info
                    timestamp: 1581987703
                    message: Finished data integrity check on backup set "Nome da Rotina(1540479339999)", "CBS(1540479429999)", crc disabled, rebuild index disabled
                  - type: info
                    timestamp: 1581987703
                    message: Completed data integrity check on backup set "Nome da Rotina(1540479339999)", "CBS(1540479429999)", crc disabled, rebuild index disabled
                  - type: info
                    timestamp: 1581987703
                    message: Start running pre-commands
                  - type: info
                    timestamp: 1581987703
                    message: Finished running pre-commands
                  - type: info
                    timestamp: 1581987705
                    message: Start creating Shadow Copy Set...
                  - type: info
                    timestamp: 1581987710
                    message: Shadow Copy Set successfully created
                  - type: upd
                    timestamp: 1581965371
                    message: C:\path\to\file1.doc
                    file_size: 39248
                    unzip_files_size: 74240
                    ratio: 47%
                  - type: upd
                    timestamp: 1581970038
                    message: C:\path\to\file2.doc
                    file_size: 38576
                    unzip_files_size: 72704
                    ratio: 46%
                  - type: upd
                    timestamp: 1581970051
                    message: C:\path\to\file3.doc
                    file_size: 38560
                    unzip_files_size: 72192
                    ratio: 46%
                  - type: upd
                    timestamp: 1581953040
                    message: C:\path\to\file4.doc
                    file_size: 10128
                    unzip_files_size: 13444
                    ratio: 24%
                  - type: new
                    timestamp: 1581978825
                    message: C:\path\to\file5.doc
                    file_size: 0
                    unzip_files_size: 0
                    ratio: 0%
                  - type: new
                    timestamp: 1581963501
                    message: C:\path\to\file6.doc
                    file_size: 0
                    unzip_files_size: 0
                    ratio: 0%
                  - type: new
                    timestamp: 1581965498
                    message: C:\path\to\file7.doc
                    file_size: 0
                    unzip_files_size: 0
                    ratio: 0%
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/backup/client/{backup_client_id}/backup-set/{backup_set_id}/job/{backup_job_id}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox:
    get:
      tags:
      - Caixas Postais
      summary: Listar Caixas Postais
      description: Esta é a chamada que retorna a lista das Caixas Postais do ambiente do usuário identificado na autorização tem a permissão de visualizar. Por padrão são retornados 50 items, sem paginação e ordenados por ordem alfabético pelo atributo mail
      operationId: get_mailbox
      parameters:
      - name: query
        in: query
        required: false
        schema:
          type: string
      - name: physicaldeliveryofficename
        in: query
        required: false
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: string
      - name: perPage
        in: query
        required: false
        schema:
          type: string
      - name: ignoreMailAlternateAddress
        in: query
        required: false
        schema:
          type: boolean
      - name: withQuota
        in: query
        required: false
        schema:
          type: boolean
      - name: groups
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        mail:
                          type: string
                        displayName:
                          type: string
                        accountType:
                          type: string
                        creationDate:
                          type: string
                        accountstatus:
                          type: string
                  total:
                    type: integer
              example:
                success: true
                data:
                - mail: joaosilva@suaempresa.com.br
                  displayName: João da Silva
                  accountType: Skynova 25GB
                  creationDate: '2017-05-02 11:02:03-03:00'
                  accountstatus: active
                - mail: rpimenta@suaempresa.com.br
                  displayName: Roberto pimenta
                  accountType: Skynova 25GB
                  creationDate: '2017-05-02 11:02:03-03:00'
                  clientId: 8080
                  accountstatus: noaccess
                total: 2
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox?query=.com'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Caixas Postais
      summary: Criar Caixa Postal
      description: Esta é a chamada para criação de Caixa Postal.
      operationId: post_mailbox
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                mail:
                  type: string
                  description: Email completo da Caixa Postal. Formato de email.
                displayname:
                  type: string
                  description: Nome do usuáro da Caixa Postal. (string, required)
                password:
                  type: string
                  description: Senha do usuário. A validação da força da senha normalmente é que seja com mais de 6 caracteres, contendo pelo menos 3 deles de tipos diferentes. Caracteres maíusculos e minúsculos são considerados diferentes.
                accounttype:
                  type: number
                  description: Id do tipo de conta a ser criada; verifique as chamadas de domínio para recuperação deste dado.
                accountstatus:
                  type: string
                  enum:
                  - disabled
                  - noaccess
                  - active
                  description: Status da conta
                mobilephone:
                  type: string
                  description: Número de celular do usuário da Caixa Postal. Formato de telefone
                homephone:
                  type: string
                  description: Número do telefone residencial do usuário da Caixa Postal.  Formato de telefone
                companyphone:
                  type: string
                  description: Formato de telefone
                companyphoneextension:
                  type: number
                  description: Ramal
                company:
                  type: string
                  description: Nome da empresa do usuário da Caixa Postal
                physicaldeliveryofficename:
                  type: string
                  description: Unidade da empresa do usuário da Caixa Postal
                department:
                  type: string
                  description: Departamento do usuário da ciaxa postal
                title:
                  type: string
                  description: Cargo do usuário da ciaxa postal
                logonhours:
                  type: string
                  description: Bloqueio de horário na Caixa postal. Verifique o formato correto na area padrões > campos
                mailalternateaddress:
                  type: array
                  items:
                    type: string
                  description: Apelidos da conta
                forcepasswordchange:
                  type: boolean
                  description: Forçar a troca da senha do usuário no próximo login
                showinaddressbook:
                  type: boolean
                  description: 'Exibir o e-mail do usuário no catálogo globar do domínio Valor padrão: true'
                template:
                  type: string
                  description: Aplicar as informações do template na criação da conta. Valores podem ser recuperados na chamada /template
                templateasprofile:
                  type: boolean
                  description: Inserir o template indicado acima como perfil da conta, atrelando as modificações do template na mesma.
                secondarymail:
                  type: string
                  description: Insere um e-mail opcional para a caixa postal. Campo esse que pode auxiliar o recurso se recuperação de senha no webmail
              required:
              - mail
              - displayname
              - password
              - accounttype
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      accounttype:
                        type: string
                      accountstatus:
                        type: string
                      mobilephone:
                        type: string
                      homephone:
                        type: string
                      companyphone:
                        type: string
                      company:
                        type: string
                      physicaldeliveryofficename:
                        type: string
                      department:
                        type: string
                      title:
                        type: string
                      mailalternateaddress:
                        type: array
                        items:
                          type: string
                      logonhours:
                        type: array
                        items:
                          type: string
                      forcepasswordchange:
                        type: boolean
                      showinaddressbook:
                        type: boolean
                      creationdate:
                        type: string
                      secondarymail:
                        type: string
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  mail: robertosilva@suaempresa.com.br
                  displayname: Roberto Silva
                  accounttype: SkyMail 10GB
                  accountstatus: active
                  mobilephone: (11) 97206-4945
                  homephone: (11) 3569-4598
                  companyphone: (11) 3777-8410
                  company: Skynova
                  physicaldeliveryofficename: Faria Lima
                  department: Desenvolvimento
                  title: ''
                  mailalternateaddress:
                  - roberto@suaempresa.com.br
                  logonhours:
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  forcepasswordchange: false
                  showinaddressbook: true
                  creationdate: '2013-05-02 22:38:58'
                  secondarymail: roberto@dominiosecundario.com.br
                  clientId: 8080
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Accountstatus inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/mailbox'' --data="mail=usuario@dominio.com.br&displayname=Nome%20Completo&password=MyNewP@ssword2183&accounttype=44" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}:
    get:
      tags:
      - Caixas Postais
      summary: Recuperar infomações de Caixa Postal
      description: Esta é a chamada que retorna as informações completas da Caixa Postal selecionada.
      operationId: get_mailbox_mailbox
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      accounttype:
                        type: string
                      accountstatus:
                        type: string
                      mobilephone:
                        type: string
                      homephone:
                        type: string
                      companyphone:
                        type: string
                      company:
                        type: string
                      physicaldeliveryofficename:
                        type: string
                      department:
                        type: string
                      title:
                        type: string
                      mailalternateaddress:
                        type: array
                        items: {}
                      logonhours:
                        type: array
                        items:
                          type: string
                      forcepasswordchange:
                        type: boolean
                      showinaddressbook:
                        type: boolean
                      creationdate:
                        type: string
                      secondarymail:
                        type: string
                      clientId:
                        type: integer
                      groups:
                        type: object
                        properties:
                          rfc822member:
                            type: array
                            items:
                              type: string
                          rfc822moderator:
                            type: array
                            items:
                              type: string
                          rfc822sender:
                            type: array
                            items: {}
                          bounceadmin:
                            type: array
                            items: {}
                      mailBoxQuotaSize:
                        type: object
                        properties:
                          mailquotasize:
                            type: integer
                          mailquotasize_read:
                            type: string
                          mailquotasize_numeric:
                            type: number
                          used:
                            type: integer
                          used_read:
                            type: string
                          used_numeric:
                            type: number
                          messages:
                            type: integer
                          used_pc:
                            type: number
                          free_pc:
                            type: number
                          free:
                            type: integer
                          free_read:
                            type: string
                      skyBoxQuotaSize:
                        type: object
                        properties:
                          free:
                            type: integer
                          free_read:
                            type: string
                          used:
                            type: integer
                          used_read:
                            type: string
                          used_pc:
                            type: integer
                          total:
                            type: integer
                          total_read:
                            type: string
                          reason:
                            type: string
              example:
                success: true
                data:
                  mail: robertosilva@suaempresa.com.br
                  displayname: Roberto Silva
                  accounttype: SkyMail 10GB
                  accountstatus: active
                  mobilephone: (11) 97206-4945
                  homephone: (11) 3569-4598
                  companyphone: (11) 3777-8410
                  company: Skynova
                  physicaldeliveryofficename: Faria Lima
                  department: Desenvolvimento
                  title: ''
                  mailalternateaddress: []
                  logonhours:
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  forcepasswordchange: false
                  showinaddressbook: true
                  creationdate: '2013-05-02 22:38:58'
                  secondarymail: roberto@dominiosecundario.com.br
                  clientId: 8080
                  groups:
                    rfc822member:
                    - lideres@meudominio.com.br
                    rfc822moderator:
                    - todos@meudominio.com.br
                    rfc822sender: []
                    bounceadmin: []
                  mailBoxQuotaSize:
                    mailquotasize: 53687091200
                    mailquotasize_read: 50.00 GB
                    mailquotasize_numeric: 50.0
                    used: 0
                    used_read: 0 bytes
                    used_numeric: 0.0
                    messages: 0
                    used_pc: 0.0
                    free_pc: 100.0
                    free: 53687091200
                    free_read: 50.00 GB
                  skyBoxQuotaSize:
                    free: 0
                    free_read: 0 MB
                    used: 0
                    used_read: 0 MB
                    used_pc: 0
                    total: 0
                    total_read: 0 MB
                    reason: ''
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/robertosilva@suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Caixas Postais
      summary: Atualizar infomações de Caixa Postal
      description: Esta é a chamada que atualiza uma ou mais informações da Caixa Postal. > Valores de atributos enviados como vazio serão considerados como exclusão do mesmo. Atualizar a senha do Caixa Postal e definir a troca da mesma no próximo login Desativar o acesso da Caixa Postal Limpar campo de cargo Adicionar um apelido(alias) na caixa postal Excluir um apelido(alias) na caixa postal Atualizar produto Caixa Postal
      operationId: put_mailbox_mailbox
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que se deseja atualizar informações
        required: true
        schema:
          type: string
          example: robertosilva@suaempresa.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                displayname:
                  type: string
                  description: Nome do usuáro da Caixa Postal. (string, required)
                password:
                  type: string
                  description: Senha do usuário. A validação da força da senha normalmente é que seja com mais de 6 caracteres, contendo pelo menos 3 deles de tipos diferentes. Caracteres maíusculos e minúsculos são considerados diferentes.
                accountstatus:
                  type: string
                  enum:
                  - disabled
                  - noaccess
                  - active
                  description: Status da conta
                mobilephone:
                  type: string
                  description: Número de celular do usuário da Caixa Postal. Formato de telefone
                homephone:
                  type: string
                  description: Número do telefone residencial do usuário da Caixa Postal.  Formato de telefone
                companyphone:
                  type: string
                  description: Formato de telefone
                companyphoneextension:
                  type: number
                  description: Ramal
                company:
                  type: string
                  description: Nome da empresa do usuário da Caixa Postal
                physicaldeliveryofficename:
                  type: string
                  description: Unidade da empresa do usuário da Caixa Postal
                department:
                  type: string
                  description: Departamento do usuário da ciaxa postal
                title:
                  type: string
                  description: Cargo do usuário da ciaxa postal
                logonhours:
                  type: string
                  description: Bloqueio de horário na Caixa postal. Verifique o formato correto na area padrões > campos
                mailalternateaddress:
                  type: array
                  items:
                    type: string
                  description: Apelidos da conta
                forcepasswordchange:
                  type: boolean
                  description: Forçar a troca da senha do usuário no próximo login
                showinaddressbook:
                  type: boolean
                  description: 'Exibir o e-mail do usuário no catálogo globar do domínio Valor padrão: true'
                secondarymail:
                  type: string
                  description: Insere um e-mail opcional para a caixa postal. Campo esse que pode auxiliar o recurso se recuperação de senha no webmail
                accounttype:
                  type: number
                  description: Id do tipo de conta a ser alterada; verifique as chamadas de domínio para recuperação deste dado.
                confirm_purchase:
                  type: boolean
                  description: Se você não possuir assinaturas suficientes para o produto, deve-se enviar este parâmetro como true
                exchange_password:
                  type: boolean
                  description: Caso a alteração do produto seja de conta do tipo Skynova para tipo Exchange
                encryptedpassword:
                  type: string
                  description: 'Caso queira atualizar a senha já criptografada com um dos algoritmos {CRYPT}, {SSHA}, {SHA}, {SMD5}, {MD5}. Você precisa definir o algoritmo no início da senha. Exemplo: “{SHA} hashpassword….”'
              required:
              - displayname
              - password
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      accounttype:
                        type: string
                      accountstatus:
                        type: string
                      mobilephone:
                        type: string
                      homephone:
                        type: string
                      companyphone:
                        type: string
                      company:
                        type: string
                      physicaldeliveryofficename:
                        type: string
                      department:
                        type: string
                      title:
                        type: string
                      mailalternateaddress:
                        type: array
                        items:
                          type: string
                      logonhours:
                        type: array
                        items:
                          type: string
                      forcepasswordchange:
                        type: boolean
                      showinaddressbook:
                        type: boolean
                      creationdate:
                        type: string
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  mail: robertosilva@suaempresa.com.br
                  displayname: Roberto Silva
                  accounttype: SkyMail 10GB
                  accountstatus: active
                  mobilephone: (11) 97206-4945
                  homephone: (11) 3569-4598
                  companyphone: (11) 3777-8410
                  company: Skynova
                  physicaldeliveryofficename: Faria Lima
                  department: Desenvolvimento
                  title: ''
                  mailalternateaddress:
                  - roberto@suaempresa.com.br
                  logonhours:
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  forcepasswordchange: false
                  showinaddressbook: true
                  creationdate: '2013-05-02 22:38:58'
                  clientId: 8080
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Accountstatus inválido'
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/mailbox/robertosilva@suaempresa.com.br'' --data="password=MyNewP@ssword2183&forcepasswordchange=true" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Caixas Postais
      summary: Excluir Caixa Postal
      description: Esta é a chamada para exclusão de Caixa Postal.
      operationId: delete_mailbox_mailbox
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: true
                message: Item excluido com sucesso
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/mailbox/robertosilva@suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}/rename:
    put:
      tags:
      - Caixas Postais
      summary: Renomear Caixa Postal
      description: Esta é a chamada que renomeia uma Caixa Postal.
      operationId: put_mailbox_mailbox_rename
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que se deseja renomear
        required: true
        schema:
          type: string
          example: robertosilva@suaempresa.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                mail:
                  type: string
                  description: Caixa postal para qual será renomeada. (string, required)
              required:
              - mail
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n    \"data\" : {\n        \"mail\": \"robertosilva@suaempresa.com.br\",\n        \"displayname\": \"Roberto Silva\",\n        \"accounttype\": \"SkyMail 10GB\",\n        \"accountstatus\": \"active\",\n        \"mobilephone\": \"(11) 97206-4945\",\n        \"homephone\": \"(11) 3569-4598\",\n        \"companyphone\": \"(11) 3777-8410\",\n        \"company\": \"Skynova\",\n        \"physicaldeliveryofficename\": \"Faria Lima\",\n        \"department\": \"Desenvolvimento\",\n        \"title\": \"\",\n        \"mailalternateaddress\": [\n            \"joaosouza@suaempresa.com.br\"\n        ],\n        \"logonhours\": [\n            \"111111111111111111111111\",\n            \"111111111111111111111111\",\n            \"111111111111111111111111\",\n            \"111111111111111111111111\",\n            \"111111111111111111111111\",\n            \"111111111111111111111111\",\n            \"111111111111111111111111\"\n        ],\n        \"forcepasswordchange\": false,\n        \"showinaddressbook\": true,\n        \"creationdate\": \"2013-05-02 22:38:58\",\n        \"secondarymmail\": \"roberto@dominiosecundatio.com.br\"\n        \"renameprocessing\": true,\n        \"clientId\": 8080\n    }\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You can not rename to the same e-mail
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Mailbox not found
        '409':
          description: O item a ser criado ja existe (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: This e-mail already exists
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/mailbox/robertosilva@suaempresa.com.br/rename'' --data="mail=joaosouza@suaempresa.com.br" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}/mailalternateaddress:
    delete:
      tags:
      - Caixas Postais
      summary: Remover apelidos (aliases)
      description: Esta é a chamada que remove todos os apelidos (aliases) de uma Caixa Postal selecionada.
      operationId: delete_mailbox_mailbox_mailalternateaddress
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/mailbox/mail@empresa.com.br/mailalternateaddress'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}/app-feature:
    get:
      tags:
      - Caixas Postais
      summary: Listar funcionalidade
      description: Esta chamada retorna a lista completa de aplicações ou funcionalidades associadas à caixa postal.
      operationId: get_mailbox_mailbox_app_feature
      parameters:
      - name: mailbox
        in: path
        description: Endereço de e-mail da Caixa Postal
        required: true
        schema:
          type: string
          example: user@empresa.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": [\n        \"skybox.enabledeck\": \"Enable skybox deck app\",\n        \"skybox.enabletalk\": \"Enable conference/talk app\"\n    ]\n}"
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/user@empresa.com.br/app-feature'' -H ''Authorization: bearer jwt.token.generated'''
  /mailbox/{mailbox}/app-feature/{featurekey}:
    get:
      tags:
      - Caixas Postais
      summary: Consultar funcionalidade
      description: Esta chamada verifica se uma determinada aplicação ou funcionalidade está ativa para a caixa postal informada.
      operationId: get_mailbox_mailbox_app_feature_featurekey
      parameters:
      - name: mailbox
        in: path
        description: Endereço de e-mail da Caixa Postal
        required: true
        schema:
          type: string
          example: user@empresa.com.br
      - name: featurekey
        in: path
        description: Nome da feature a ser consultada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      isEnable:
                        type: boolean
                      flag:
                        type: string
                      details:
                        type: string
                      message:
                        type: string
              example:
                success: true
                data:
                  isEnable: true
                  flag: skybox.enabledeck
                  details: Enable skybox deck app
                  message: It has the skybox.enabledeck enabled.
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/user@empresa.com.br/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Caixas Postais
      summary: Habilitar funcionalidade
      description: Esta chamada habilita a aplicação ou funcionalidade desejada para a caixa postal.
      operationId: post_mailbox_mailbox_app_feature_featurekey
      parameters:
      - name: mailbox
        in: path
        description: Endereço de e-mail da Caixa Postal
        required: true
        schema:
          type: string
          example: user@empresa.com.br
      - name: featurekey
        in: path
        description: Feature a ser habilitada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: string
              example:
                success: true
                data:
                - skybox.enabledeck
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/mailbox/user@empresa.com.br/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Caixas Postais
      summary: Desabilitar funcionalidade
      description: Esta chamada desabilita a aplicação ou funcionalidade desejada para a caixa postal.
      operationId: delete_mailbox_mailbox_app_feature_featurekey
      parameters:
      - name: mailbox
        in: path
        description: Endereço de e-mail da Caixa Postal
        required: true
        schema:
          type: string
          example: user@empresa.com.br
      - name: featurekey
        in: path
        description: Feature a ser desabilitada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: string
              example:
                success: true
                data:
                - skybox.enabledeck
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/mailbox/user@empresa.com.br/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
  /mailbox/{mailbox}/custom-field:
    get:
      tags:
      - Caixas Postais
      summary: Listar os campos personalizados cadastrados
      description: Chamada para retorno dos campos personalizados cadastrados para a caixa postal.
      operationId: get_mailbox_mail_custom_field
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que deseja retornar as informações de produtos
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      campo_teste:
                        type: string
              example:
                success: true
                data:
                  campo_teste: Valor do campo 1
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/email@dominio.com.br/custom-field'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Caixas Postais
      summary: Cadastrar um novo campo personalizado para a caixa postal
      description: Esta é a chamada para realizar o cadastro de um novo campo personalizado para uma caixa postal.
      operationId: post_mailbox_mail_custom_field
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que deseja cadastrar o campo personalizado
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do campo personalizado disponível na caixa postal
                  example: nome_campo
                value:
                  type: string
                  description: Valor a ser preenchido no campo personalizado
                  example: Valor do campo
              required:
              - name
              - value
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      campo_teste:
                        type: string
              example:
                success: true
                data:
                  campo_teste: Valor do campo 1
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/mailbox/email@dominio.com.br/custom-field'' --data="name=campo_teste&value=Valor%20do%20campo%201" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}/custom-field/{customFieldName}:
    put:
      tags:
      - Caixas Postais
      summary: Atualizar um campo personalizado da caixa postal
      description: Esta é a chamada para realizar a atualização de um campo personalizado da caixa postal.
      operationId: put_mailbox_mail_custom_field_customFieldName
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que deseja atualizar o campo personalizado
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      - name: customFieldName
        in: path
        description: Id do campo personalizado que deseja atualizar. Presente no retorno da listagem de campo personalizados cadastrados
        required: true
        schema:
          type: string
          example: campo_teste
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                value:
                  type: string
                  description: Novo valor a ser preenchido no campo personalizado
                  example: string
              required:
              - value
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      campo_teste:
                        type: string
              example:
                success: true
                data:
                  campo_teste: Novo valor do campo 1
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/mailbox/email@dominio.com.br/custom-field/campo_teste'' --data="value=Novo%20valor%20do%20campo%201" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Caixas Postais
      summary: Excluir um campo personalizado da caixa postal
      description: Esta é a chamada para realizar a exclusão de um campo personalizado da caixa postal.
      operationId: delete_mailbox_mail_custom_field_customFieldName
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que deseja excluir o campo personalizado
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      - name: customFieldName
        in: path
        description: Id do campo personalizado que deseja excluir. Presente no retorno da listagem de campo personalizados cadastrados
        required: true
        schema:
          type: string
          example: campo_teste
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items: {}
              example:
                success: true
                data: []
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/mailbox/email@dominio.com.br/custom-field/campo_teste''  -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/deleted:
    get:
      tags:
      - Caixas Postais
      summary: Listar caixas postais deletadas
      description: Chamada para retorno das caixas postais excluídas.
      operationId: get_mailbox_deleted
      parameters:
      - name: filters
        in: query
        description: Filtros disponíveis para a listagem
        required: false
        schema:
          type: string
          example: '[email]=email@dominio.com.br'
      - name: page
        in: query
        description: Número da página a retornar
        required: false
        schema:
          type: string
          example: '1'
      - name: per_page
        in: query
        description: Quantidade de registros para retornar
        required: false
        schema:
          type: string
          example: '30'
      - name: order_by
        in: query
        description: Ordem o qual serão retornados os registros
        required: false
        schema:
          type: string
          example: '[id]=ASC'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        email:
                          type: string
                        client:
                          type: object
                          properties:
                            client_id:
                              type: integer
                            tax_number:
                              type: string
                            name:
                              type: string
                        type:
                          type: string
                        date:
                          type: string
              example:
                success: true
                data:
                - email: email@dominio.com.br
                  client:
                    client_id: 1
                    tax_number: '12345678910'
                    name: Nome do Cliente
                  type: exchange
                  date: '2019-09-06T11:47:11-03:00'
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/deleted?filters[email]=email@dominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/deleted/{mailbox}:
    get:
      tags:
      - Caixas Postais
      summary: Recuperar infomações de Caixa Postal deletada
      description: Esta é a chamada que retorna as informações completas da Caixa Postal deletada.
      operationId: get_mailbox_deleted_mailbox
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      accounttype:
                        type: string
                      accountstatus:
                        type: string
                      mobilephone:
                        type: string
                      homephone:
                        type: string
                      companyphone:
                        type: string
                      company:
                        type: string
                      physicaldeliveryofficename:
                        type: string
                      department:
                        type: string
                      title:
                        type: string
                      mailalternateaddress:
                        type: array
                        items: {}
                      logonhours:
                        type: array
                        items:
                          type: string
                      forcepasswordchange:
                        type: boolean
                      showinaddressbook:
                        type: boolean
                      creationdate:
                        type: string
                      secondarymail:
                        type: string
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  mail: robertosilva@suaempresa.com.br
                  displayname: Roberto Silva
                  accounttype: SkyMail 10GB
                  accountstatus: active
                  mobilephone: (11) 97206-4945
                  homephone: (11) 3569-4598
                  companyphone: (11) 3777-8410
                  company: Skynova
                  physicaldeliveryofficename: Faria Lima
                  department: Desenvolvimento
                  title: ''
                  mailalternateaddress: []
                  logonhours:
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  - '111111111111111111111111'
                  forcepasswordchange: false
                  showinaddressbook: true
                  creationdate: '2013-05-02 22:38:58'
                  secondarymail: roberto@dominiosecundario.com.br
                  clientId: 8080
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/deleted/robertosilva@suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Caixas Postais
      summary: Remover permanentemente uma Caixa Postal
      description: Esta é a chamada para realizar a remoção em definitivo de uma caixa postal, fazendo isso ela não poderá mais ser recuperada.
      operationId: delete_mailbox_deleted_mail
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que deseja remover permanentemente
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/mailbox/deleted/email@dominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/deleted/{mailbox}/restore:
    put:
      tags:
      - Caixas Postais
      summary: Restaurar uma Caixa Postal
      description: Esta é a chamada para realizar a restauração de uma caixa postal.
      operationId: put_mailbox_deleted_mail_restore
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal que deseja restaurar
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                confirm_purchase:
                  type: boolean
                  description: Quando é solicitado para a contratação de um item indisponível.
                  example: true
                payment_info_id:
                  type: number
                  description: Id do ciclo de pagamento a realizar a contrataçã
                  example: 1
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Caixa postal não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/mailbox/deleted/email@dominio.com.br/restore'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/batch-retention-policy:
    post:
      tags:
      - Caixas Postais
      summary: Criar políticas de retenção em lote
      description: 'Chamada para criar **políticas de retenção de e-mails** em múltiplas caixas postais simultaneamente. Permite definir regras de retenção por pasta, tipo de política e quantidade de dias. > **Importante:** > - Somente caixas postais **existentes** podem ter políticas de retenção aplicadas em lote. > - O campo **folder** aceita apenas os seguintes valores: >   - `inbox` – Caixa de entrada >   - `draft` – Rascunhos >   - `sent` – Itens enviados >   - `trash` – Lixeira > > - O campo **policy** aceita apenas os seguintes valores: >   - `-1` – **Sem retenção** (No retention) >   - `0` – **Remover permanentemente** (Remove permanently) >   - `1` – **Mover mensagens para a lixeira** (Move messages to trash) -H ''Authorization: bearer jwt.token.generated'' -H ''Content-Type: application/json'' -d ''{ "data": [ { "email": "email1@dominio.com.br", "rule": [ { "folder": "inbox", "policy": 1, "days": 20 } ] }, { "email": "email2@dominio.com.br", "rule": [ { "folder": "draft", "policy": 1, "days": 20 } ] } ] }'''
      operationId: post_mailbox_batch_retention_policy
      parameters:
      - name: Nenhum
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                      rule:
                        type: array
                        items:
                          type: object
                          properties:
                            folder:
                              type: string
                            policy:
                              type: integer
                            days:
                              type: integer
            example:
              data:
              - email: email1@dominio.com.br
                rule:
                - folder: inbox
                  policy: 0
                  days: 60
              - email: email2@dominio.com.br
                rule:
                - folder: sent
                  policy: 1
                  days: 10
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  processed:
                    type: integer
                  errors:
                    type: array
                    items: {}
              example:
                success: true
                message: Políticas de retenção aplicadas com sucesso
                processed: 2
                errors: []
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro de validação. Ex: campo obrigatório ausente'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '500':
          description: Erro interno do servidor.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Erro interno ao processar a solicitação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -i -X POST 'https://api.skymail.net.br/mailbox/batch-retention-policy'
  /mailbox/{mailbox}/block/period:
    get:
      tags:
      - Caixas Postais
      summary: Consultar agendamento de bloqueio por período
      description: Esta chamada retorna os dados a respeito de um agendamento feito para uma determinada caixa postal.
      operationId: get_mailbox_mailbox_block_period
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      blocking_performed:
                        type: boolean
                      date_from:
                        type: string
                      date_to:
                        type: string
                      is_vacation_linked:
                        type: boolean
                      useradmin_id:
                        type: integer
              example:
                success: true
                data:
                  blocking_performed: true
                  date_from: '2026-04-01 08:00:00'
                  date_to: '2026-04-15 08:00:00'
                  is_vacation_linked: false
                  useradmin_id: 1
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Scheduled term not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/email@dominio.com.br/block/period'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Caixas Postais
      summary: Criar/Atualizar agendamento de bloqueio por período
      description: Esta chamada cria ou atualiza um agendamento de bloqueio por período para uma determinada caixa postal.
      operationId: post_mailbox_mailbox_block_period
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                dateFrom:
                  type: string
                  description: Data do início do agendamento
                  example: '2026-04-01 10:00:00'
                dateTo:
                  type: string
                  description: Data do término do agendamento
                  example: '2026-03-01 10:00:00'
                isVacationLinked:
                  type: boolean
                  description: Identifica se está vinculado ao período de férias
                  example: false
              required:
              - dateFrom
              - dateTo
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      mailbox:
                        type: string
                      date_from:
                        type: string
                      date_to:
                        type: string
                      previous_status:
                        type: string
                      is_vacation_linked:
                        type: boolean
                      user_admin_id:
                        type: integer
              example:
                success: true
                data:
                  id: 1
                  mailbox: email@dominio.com.br
                  date_from: '2026-04-15T10:00:00-03:00'
                  date_to: '2026-04-30T18:00:00-03:00'
                  previous_status: active
                  is_vacation_linked: false
                  user_admin_id: 1
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Mailbox not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/mailbox/email@dominio.com.br/block/period'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Caixas Postais
      summary: Remover agendamento de bloqueio por período
      description: Esta chamada remove um agendamento de bloqueio por período previamente programado.
      operationId: delete_mailbox_mailbox_block_period
      parameters:
      - name: mailbox
        in: path
        description: Caixa postal
        required: true
        schema:
          type: string
          example: email@dominio.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Scheduled term not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/mailbox/email@dominio.com.br/block/period'' -H ''Authorization: bearer jwt.token.generated'''
  /mailbox/block/period/file:
    post:
      tags:
      - Caixas Postais
      summary: Upload de arquivo para agendamento de bloqueio por período em lote
      description: Esta chamada envia um arquivo CSV para realizar a criação de agendamentos de bloqueio por período em lote.
      operationId: post_mailbox_block_period_file
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                attachments:
                  type: string
                  description: 'Arquivo CSV contendo as seguintes colunas: `mailbox,dateFrom,hourFrom,dateTo,hourTo`, onde:'
                  example: agendamento.csv
              required:
              - attachments
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      file_id:
                        type: integer
              example:
                success: true
                data:
                  file_id: 52555
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: CSV file is required
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/mailbox/block/period/file'' -H ''Authorization: bearer jwt.token.generated'''
  /mailbox/{mailbox}/backups:
    get:
      tags:
      - Caixas Postais - Restaurar mensagens
      summary: Listar Backups
      description: Esta é a chamada que retorna a lista de backups disponíveis de uma caixa postal.
      operationId: get_mailbox_mailbox_backups
      parameters:
      - name: mailbox
        in: path
        description: O endereço de e-mail da caixa postal.
        required: true
        schema:
          type: string
          example: mailbox@example.com
      - name: page
        in: query
        description: Página da paginação.
        required: false
        schema:
          type: number
          example: '1'
      - name: perPage
        in: query
        description: Quantidade de backups por página.
        required: false
        schema:
          type: number
          example: '20'
      - name: dateFrom
        in: query
        description: Data de início para filtrar backups.
        required: false
        schema:
          type: string
          example: '2024-01-01'
      - name: dateTo
        in: query
        description: Data de fim para filtrar backups.
        required: false
        schema:
          type: string
          example: '2024-12-31'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"backups\": [\n        {\n            \"id\": \"1540407059999\",\n            \"name\": \"Backup Exemple\",\n            \"mailbox_id\": \"1\",\n            \"date\": \"2024-09-02T00:00:00-03:00\",\n            \"status\": 1\n        }\n    ],\n    \"total\": 1\n    \"totalPages\": 1,\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Nenhum backup encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/{mailbox}/backups?page=1&perPage=20&dateFrom=2024-01-01&dateTo=2024-12-31'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}/backups/{backupId}/folders:
    get:
      tags:
      - Caixas Postais - Restaurar mensagens
      summary: Listar Pastas
      description: Esta é a chamada que retorna a lista de pastas de e-mail dentro de um backup específico.
      operationId: get_mailbox_mailbox_backups_backupId_folders
      parameters:
      - name: mailbox
        in: path
        description: O endereço de e-mail da caixa postal.
        required: true
        schema:
          type: string
          example: mailbox@example.com
      - name: backupId
        in: path
        description: Código do backup.
        required: true
        schema:
          type: number
          example: '1540407059999'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        folder:
                          type: string
                        messageCount:
                          type: integer
              example:
                success: true
                data:
                - folder: Trash
                  messageCount: 10
                - folder: Tarefas
                  messageCount: 20
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Nenhuma pasta encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/{mailbox}/backups/{backupId}/folders'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /mailbox/{mailbox}/backups/{backupId}/restore:
    post:
      tags:
      - Caixas Postais - Restaurar mensagens
      summary: Restaurar Mensagens
      description: 'Esta chamada realiza a restauração de mensagens de e-mail de um backup específico para a caixa postal original ou para uma pasta de destino. curl -i -X POST ''https://api.skymail.net.br/mailbox/{mailbox}/backups/{backupId}/restore'' --data-raw ''{"restoreFolders": ["Inbox"], "restoreDestination": "RESTORE 20240904"}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' > **Informativo:** Caso queira **_restaurar tudo (todas as mensagens)_**, basta **NÃO** enviar os parâmetros `restoreFolders` e `restoreDestination`'
      operationId: post_mailbox_mailbox_backups_backupId_restore
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: string
      - name: restoreFolders
        in: query
        description: A pasta de e-mail a ser restaurada.
        required: false
        schema:
          type: array
          example: '["Inbox"]'
      - name: restoreDestination
        in: query
        description: A pasta de destino para a restauração das mensagens.
        required: false
        schema:
          type: string
          example: RESTORE 20240904
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      backup_id:
                        type: integer
                      restore_time:
                        type: string
                      restore_user:
                        type: string
                      restore_folders:
                        type: array
                        items:
                          type: string
                      restore_messages:
                        type: integer
                      restore_destination:
                        type: string
                      restore_progress:
                        type: integer
              example:
                success: true
                data:
                  id: 6963
                  backup_id: 381797289
                  restore_time: '2024-09-04T16:07:30-03:00'
                  restore_user: user.example@empresa.com.br
                  restore_folders:
                  - INBOX
                  restore_messages: 0
                  restore_destination: RESTORE 20240904
                  restore_progress: 0
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Backup ou pasta não encontrada
  /mailbox/{mailbox}/backups/restore:
    get:
      tags:
      - Caixas Postais - Restaurar mensagens
      summary: Listar Histórico de Restaurações
      description: Esta é a chamada que retorna a lista de restaurações realizadas em uma caixa postal.
      operationId: get_mailbox_mailbox_backups_restore
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Página da paginação.
        required: false
        schema:
          type: number
          example: '1'
      - name: perPage
        in: query
        description: Quantidade de resultados por página.
        required: false
        schema:
          type: number
          example: '20'
      - name: status
        in: query
        description: 'Status da restauração (ex: s, e, ok).'
        required: false
        schema:
          type: string
          example: ok
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      restores:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            backup_id:
                              type: integer
                            restore_time:
                              type: string
                            backup_date:
                              type: string
                            restore_status:
                              type: string
                            restore_user:
                              type: string
                            restore_folders:
                              type: array
                              items:
                                type: string
                            restore_messages:
                              type: integer
                            restore_destination:
                              type: string
                            restore_progress:
                              type: integer
                      total:
                        type: integer
                      totalPages:
                        type: integer
              example:
                success: true
                data:
                  restores:
                  - id: 6963
                    backup_id: 381797289
                    restore_time: '2024-09-04T16:07:30-03:00'
                    backup_date: '2024-09-03T00:00:00-03:00'
                    restore_status: ok
                    restore_user: user.example@empresa.com.br
                    restore_folders:
                    - INBOX
                    restore_messages: 10
                    restore_destination: RESTORE 20240904
                    restore_progress: 100
                  total: 1
                  totalPages: 0
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Nenhuma restauração encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/mailbox/{mailbox}/backups/restore?page=1&perPage=20&status=ok'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /template:
    get:
      tags:
      - Caixas Postais - Template
      summary: Recuperar dados de Template
      description: Chamada para retorno dos templates de todo ambiente do usuário ou um determinado domínio/cliente. Os templates são configurações pré-determinadas que podem ser inseridas nas caixas postais no momento da criação, e uma vez vinculada à ela, torna-se um perfil, fazendo com que qualquer modificação no template, reflita nas caixas postais vinculadas.
      operationId: get_template
      parameters:
      - name: query
        in: query
        required: false
        schema:
          type: string
      - name: domain
        in: query
        required: false
        schema:
          type: string
      - name: client
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        owner:
                          type: string
                  total:
                    type: integer
              example:
                success: true
                data:
                - id: ajksdh1jh23kjh12jkh3123fgf1g2h3fghf13g2h
                  name: Template XPTO
                  owner: Cliente XPTO
                - id: 123123423AFGHAFHGFAHGAGHFFAgahgha21036
                  name: Template XPTO 2
                  owner: seudominio.com.br
                total: 2
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/template'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /cloud/{zone}/volume-snapshot:
    get:
      tags:
      - Cloud
      summary: Listar backups de disco
      description: Esta é a chamada que retorna as informações de backup dos discos.
      operationId: get_cloud_zone_volume_snapshot
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: volumeid
        in: query
        description: Identificador do disco
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador do backup de disco
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"count\": 1,\n    \"data\": [\n        {\n            \"id\": \"509f96a4-a004-4035-92a3-519fe0d07ec4\",\n            \"name\": \"volume_teste1_20210802203032\",,\n            \"account\": {\n                \"id\": \"9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6\",\n                \"name\": \"8\"\n            },\n            \"created\": \"2020-08-09T07:01:55-03:00\",\n            \"domain\": {\n                \"id\": \"9e1c4859-9cf4-4414-a218-160b05b9f157\",\n                \"name\": \"skycloud.prv\"\n            },\n            \"interval_type\": \"WEEKLY\",\n            \"os\": {\n                \"id\": \"958644bf-d886-11e8-98bc-d61fa5185198\",\n                \"name\": \"CentOS 7.2\"\n            },\n            \"physical_size\": 6295372288,\n            \"revertable\": false,\n            \"state\": \"BackedUp\",\n            \"type\": \"WEEKLY\",\n            \"virtual_size\": 16106127360,\n            \"volume\": {\n                \"id\": \"9dc70688-af69-45af-8545-eea005630357\",\n                \"name\": \"ROOT-1224\",\n                \"type\": \"ROOT\"\n            }\n        }\n    ]\n}"
    post:
      tags:
      - Cloud
      summary: Criar backup de disco
      description: Esta é a chamada que permite criar um backup de um disco existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_volume_snapshot
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                volumeid:
                  type: string
                  description: Identificador do disco
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: number
                  description: Identificador do cliente
                  example: 8
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                name:
                  type: string
                  description: Nome do snapshot
                policyid:
                  type: string
                  description: Identificador da política de snapshot de disco
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
              required:
              - domainid
              - volumeid
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: d99fb438-57b6-4941-9415-a26c87af22a6
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T19:29:21-03:00'
                  command: org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd
                  instance_type: Snapshot
                  instance_id: 41d40abb-a692-432b-9471-f9d4df3c4ae0
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume-snapshot/{volumesnapshotid}:
    get:
      tags:
      - Cloud
      summary: Obter backup de disco
      description: Esta é a chamada que retorna as informações de um backup de disco.
      operationId: get_cloud_zone_volume_snapshot_volumesnapshotid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumesnapshotid
        in: path
        description: Identificador do backup de disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": {\n        \"id\": \"509f96a4-a004-4035-92a3-519fe0d07ec4\",\n        \"name\": \"volume_teste1_20210802203032\",,\n        \"account\": {\n            \"id\": \"9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6\",\n            \"name\": \"8\"\n        },\n        \"created\": \"2020-08-09T07:01:55-03:00\",\n        \"domain\": {\n            \"id\": \"9e1c4859-9cf4-4414-a218-160b05b9f157\",\n            \"name\": \"skycloud.prv\"\n        },\n        \"interval_type\": \"WEEKLY\",\n        \"os\": {\n            \"id\": \"958644bf-d886-11e8-98bc-d61fa5185198\",\n            \"name\": \"CentOS 7.2\"\n        },\n        \"physical_size\": 6295372288,\n        \"revertable\": false,\n        \"state\": \"BackedUp\",\n        \"type\": \"WEEKLY\",\n        \"virtual_size\": 16106127360,\n        \"volume\": {\n            \"id\": \"9dc70688-af69-45af-8545-eea005630357\",\n            \"name\": \"ROOT-1224\",\n            \"type\": \"ROOT\"\n        }\n    }\n}"
    delete:
      tags:
      - Cloud
      summary: Remover backup de disco
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover um backup de disco de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_volume_snapshot_volumesnapshotid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumesnapshotid
        in: path
        description: Identificador do backup de disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: be2fddd4-7db9-46b0-9829-6676f961cb5c
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T19:35:44-03:00'
                  command: org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd
                  instance_type: Snapshot
                  instance_id: 41d40abb-a692-432b-9471-f9d4df3c4ae0
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume-snapshot/{volumesnapshotid}/revert:
    post:
      tags:
      - Cloud
      summary: Reverter backup de disco
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite reverter um backup de disco de uma conta ou projeto cloud.'
      operationId: post_cloud_zone_volume_snapshot_volumesnapshotid_revert
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumesnapshotid
        in: path
        description: Identificador do backup de disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 238fefde-7db3-492a-8cf2-ce46ab703c47
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T19:34:23-03:00'
                  command: org.apache.cloudstack.api.command.user.snapshot.RevertSnapshotCmd
                  instance_type: Snapshot
                  instance_id: 41d40abb-a692-432b-9471-f9d4df3c4ae0
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/load-balancer-rule:
    get:
      tags:
      - Cloud
      summary: Listar balanceamento de carga
      description: Esta é a chamada que retorna as regras de balanceamento de carga.
      operationId: get_cloud_zone_load_balancer_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador do balanceamento de carga
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: networkid
        in: query
        description: Identificador da rede a que pertence o balanceador
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: publicipid
        in: query
        description: Identificador do IP público associado
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: virtualmachineid
        in: query
        description: Identificador da máquina virtual associada
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        algorithm:
                          type: string
                        cidr_list:
                          type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        for_display:
                          type: boolean
                        network:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        private_port:
                          type: integer
                        protocol:
                          type: string
                        public_ip_address:
                          type: object
                          properties:
                            id:
                              type: string
                            ip:
                              type: string
                        public_port:
                          type: integer
                        state:
                          type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                count: 1
                data:
                - id: 98938cc7-19f0-4280-9740-f2a0cf885c98
                  name: http
                  account:
                    id: 9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6
                    name: '8'
                  algorithm: roundrobin
                  cidr_list: ''
                  domain:
                    id: 9e1c4859-9cf4-4414-a218-160b05b9f157
                    name: skycloud.prv
                  for_display: true
                  network:
                    id: 9ff875d5-e584-4969-96a7-892d43f9d05e
                    name: v3
                  private_port: 80
                  protocol: tcp
                  public_ip_address:
                    id: 963722c2-0b1d-4587-8153-3ea07638c21e
                    ip: 200.200.200.200
                  public_port: 80
                  state: Active
                  zone:
                    id: 94c526f8-52a2-4e2e-8d08-76eae35913a4
                    name: Ascenty SP1
  /cloud/{zone}/account:
    get:
      tags:
      - Cloud
      summary: Listar Contas
      description: Esta é a chamada que retorna a lista de contas de cloud
      operationId: get_cloud_zone_account
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: id
        in: query
        description: Retorna informações da conta com este UUID
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: name
        in: query
        description: Identificação do cliente a ser buscado
        required: true
        schema:
          type: number
          example: '8'
      - name: domainid
        in: query
        description: Retorna somente as contas criadas dentro desse número de dias
        required: true
        schema:
          type: string
          example: '1'
      - name: accounttype
        in: query
        description: Filtra pelo tipo da conta, sendo 0 = user, 1 = admin, 2 = domain-admin
        required: false
        schema:
          type: string
          enum:
          - '0'
          - '1'
          - '2'
          example: '0'
      - name: state
        in: query
        description: Filtra pelo estado da conta, sendo enabled = contas ativas, disabled = contas inativas, locked = contas bloqueadas
        required: false
        schema:
          type: string
          enum:
          - enabled
          - disabled
          - locked
          example: enabled
      - name: listAll
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account_type:
                          type: string
                        role:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            type:
                              type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            path:
                              type: string
                        bytes_received:
                          type: integer
                        bytes_sent:
                          type: integer
                        vm_available:
                          type: integer
                        vm_limit:
                          type: integer
                        vm_running:
                          type: integer
                        vm_stopped:
                          type: integer
                        vm_total:
                          type: integer
                        ip_available:
                          type: integer
                        ip_limit:
                          type: integer
                        ip_total:
                          type: integer
                        volume_available:
                          type: integer
                        volume_limit:
                          type: integer
                        volume_total:
                          type: integer
                        snapshot_available:
                          type: integer
                        snapshot_limit:
                          type: integer
                        snapshot_total:
                          type: integer
                        template_available:
                          type: integer
                        template_limit:
                          type: integer
                        template_total:
                          type: integer
                        project_available:
                          type: integer
                        project_limit:
                          type: integer
                        project_total:
                          type: integer
                        network_available:
                          type: integer
                        network_limit:
                          type: integer
                        network_total:
                          type: integer
                        vpc_available:
                          type: integer
                        vpc_limit:
                          type: integer
                        vpc_total:
                          type: integer
                        cpu_available:
                          type: integer
                        cpu_limit:
                          type: integer
                        cpu_total:
                          type: integer
                        memory_available:
                          type: number
                        memory_limit:
                          type: number
                        memory_total:
                          type: number
                        primarystorage_available:
                          type: number
                        primarystorage_limit:
                          type: number
                        primarystorage_total:
                          type: number
                        secondarystorage_available:
                          type: number
                        secondarystorage_limit:
                          type: number
                        secondarystorage_total:
                          type: number
                        state:
                          type: string
                        is_default:
                          type: boolean
                        users:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              username:
                                type: string
                              email:
                                type: string
                              first_name:
                                type: string
                              last_name:
                                type: string
                              state:
                                type: string
                              timezone:
                                type: string
                              user_source:
                                type: string
                              created:
                                type: string
                              account:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                              domain:
                                type: object
                                properties:
                                  id:
                                    type: string
                              role:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                                  type:
                                    type: string
                              is_caller_child_domain:
                                type: boolean
                              is_default:
                                type: boolean
              example:
                success: true
                count: 1
                data:
                - id: 956e9d02-859c-4649-9526-0e7631fd5c34
                  name: '8'
                  account_type: '0'
                  role:
                    id: 950cae07-aa9f-11ea-8556-c61639fe9620
                    name: User
                    type: User
                  domain:
                    id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    name: skycloud.prv
                    path: ROOT/skycloud.prv
                  bytes_received: 53092
                  bytes_sent: 981336
                  vm_available: 19
                  vm_limit: 20
                  vm_running: 1
                  vm_stopped: 0
                  vm_total: 1
                  ip_available: 19
                  ip_limit: 20
                  ip_total: 1
                  volume_available: 19
                  volume_limit: 20
                  volume_total: 1
                  snapshot_available: 20
                  snapshot_limit: 20
                  snapshot_total: 0
                  template_available: 20
                  template_limit: 20
                  template_total: 0
                  project_available: -1
                  project_limit: -1
                  project_total: 0
                  network_available: 19
                  network_limit: 20
                  network_total: 1
                  vpc_available: 20
                  vpc_limit: 20
                  vpc_total: 0
                  cpu_available: 38
                  cpu_limit: 40
                  cpu_total: 2
                  memory_available: 36864.0
                  memory_limit: 40960.0
                  memory_total: 4096.0
                  primarystorage_available: 180.0
                  primarystorage_limit: 200.0
                  primarystorage_total: 20.0
                  secondarystorage_available: 400.0
                  secondarystorage_limit: 400.0
                  secondarystorage_total: 0.0
                  state: enabled
                  is_default: false
                  users:
                  - id: 9d47269a-5eba-4c59-a8e0-ee692f43c898
                    username: '8'
                    email: email@cliente.com.br
                    first_name: Test
                    last_name: Drive
                    state: enabled
                    timezone: America/Sao_Paulo
                    user_source: native
                    created: '2020-07-28T11:51:37-03:00'
                    account:
                      id: 956e9d02-859c-4649-9526-0e7631fd5c34
                      name: '8'
                    domain:
                      id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    role:
                      id: 950cae07-aa9f-11ea-8556-c61639fe9620
                      name: User
                      type: User
                    is_caller_child_domain: false
                    is_default: false
  /cloud/{zone}/account/{account}:
    get:
      tags:
      - Cloud
      summary: Obter Conta
      description: Esta é a chamada que retorna os dados de uma conta de cloud
      operationId: get_cloud_zone_account_account
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: path
        description: Retorna informações da conta com este UUID
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      account_type:
                        type: string
                      role:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          type:
                            type: string
                      domain:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          path:
                            type: string
                      bytes_received:
                        type: integer
                      bytes_sent:
                        type: integer
                      vm_available:
                        type: integer
                      vm_limit:
                        type: integer
                      vm_running:
                        type: integer
                      vm_stopped:
                        type: integer
                      vm_total:
                        type: integer
                      ip_available:
                        type: integer
                      ip_limit:
                        type: integer
                      ip_total:
                        type: integer
                      volume_available:
                        type: integer
                      volume_limit:
                        type: integer
                      volume_total:
                        type: integer
                      snapshot_available:
                        type: integer
                      snapshot_limit:
                        type: integer
                      snapshot_total:
                        type: integer
                      template_available:
                        type: integer
                      template_limit:
                        type: integer
                      template_total:
                        type: integer
                      project_available:
                        type: integer
                      project_limit:
                        type: integer
                      project_total:
                        type: integer
                      network_available:
                        type: integer
                      network_limit:
                        type: integer
                      network_total:
                        type: integer
                      vpc_available:
                        type: integer
                      vpc_limit:
                        type: integer
                      vpc_total:
                        type: integer
                      cpu_available:
                        type: integer
                      cpu_limit:
                        type: integer
                      cpu_total:
                        type: integer
                      memory_available:
                        type: number
                      memory_limit:
                        type: number
                      memory_total:
                        type: number
                      primarystorage_available:
                        type: number
                      primarystorage_limit:
                        type: number
                      primarystorage_total:
                        type: number
                      secondarystorage_available:
                        type: number
                      secondarystorage_limit:
                        type: number
                      secondarystorage_total:
                        type: number
                      state:
                        type: string
                      is_default:
                        type: boolean
                      users:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            username:
                              type: string
                            email:
                              type: string
                            first_name:
                              type: string
                            last_name:
                              type: string
                            state:
                              type: string
                            timezone:
                              type: string
                            user_source:
                              type: string
                            created:
                              type: string
                            account:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                            role:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                            is_caller_child_domain:
                              type: boolean
                            is_default:
                              type: boolean
              example:
                success: true
                data:
                  id: 956e9d02-859c-4649-9526-0e7631fd5c34
                  name: '8'
                  account_type: '0'
                  role:
                    id: 950cae07-aa9f-11ea-8556-c61639fe9620
                    name: User
                    type: User
                  domain:
                    id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    name: skycloud.prv
                    path: ROOT/skycloud.prv
                  bytes_received: 53092
                  bytes_sent: 981336
                  vm_available: 19
                  vm_limit: 20
                  vm_running: 1
                  vm_stopped: 0
                  vm_total: 1
                  ip_available: 19
                  ip_limit: 20
                  ip_total: 1
                  volume_available: 19
                  volume_limit: 20
                  volume_total: 1
                  snapshot_available: 20
                  snapshot_limit: 20
                  snapshot_total: 0
                  template_available: 20
                  template_limit: 20
                  template_total: 0
                  project_available: -1
                  project_limit: -1
                  project_total: 0
                  network_available: 19
                  network_limit: 20
                  network_total: 1
                  vpc_available: 20
                  vpc_limit: 20
                  vpc_total: 0
                  cpu_available: 38
                  cpu_limit: 40
                  cpu_total: 2
                  memory_available: 36864.0
                  memory_limit: 40960.0
                  memory_total: 4096.0
                  primarystorage_available: 180.0
                  primarystorage_limit: 200.0
                  primarystorage_total: 20.0
                  secondarystorage_available: 400.0
                  secondarystorage_limit: 400.0
                  secondarystorage_total: 0.0
                  state: enabled
                  is_default: false
                  users:
                  - id: 9d47269a-5eba-4c59-a8e0-ee692f43c898
                    username: '8'
                    email: email@cliente.com.br
                    first_name: Test
                    last_name: Drive
                    state: enabled
                    timezone: America/Sao_Paulo
                    user_source: native
                    created: '2020-07-28T11:51:37-03:00'
                    account:
                      id: 956e9d02-859c-4649-9526-0e7631fd5c34
                      name: '8'
                    domain:
                      id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    role:
                      id: 950cae07-aa9f-11ea-8556-c61639fe9620
                      name: User
                      type: User
                    is_caller_child_domain: false
                    is_default: false
  /cloud/{zone}/volume:
    get:
      tags:
      - Cloud
      summary: Listar discos
      description: Esta é a chamada que retorna as informações dos discos.
      operationId: get_cloud_zone_volume
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: virtualmachineid
        in: query
        description: Identificador da máquina virtual
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da máquina virtual
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            account_type:
                              type: string
                            role:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                path:
                                  type: string
                            bytes_received:
                              type: integer
                            bytes_sent:
                              type: integer
                            vm_available:
                              type: integer
                            vm_limit:
                              type: integer
                            vm_running:
                              type: integer
                            vm_stopped:
                              type: integer
                            vm_total:
                              type: integer
                            ip_available:
                              type: integer
                            ip_limit:
                              type: integer
                            ip_total:
                              type: integer
                            volume_available:
                              type: integer
                            volume_limit:
                              type: integer
                            volume_total:
                              type: integer
                            snapshot_available:
                              type: integer
                            snapshot_limit:
                              type: integer
                            snapshot_total:
                              type: integer
                            template_available:
                              type: integer
                            template_limit:
                              type: integer
                            template_total:
                              type: integer
                            project_available:
                              type: integer
                            project_limit:
                              type: integer
                            project_total:
                              type: integer
                            network_available:
                              type: integer
                            network_limit:
                              type: integer
                            network_total:
                              type: integer
                            vpc_available:
                              type: integer
                            vpc_limit:
                              type: integer
                            vpc_total:
                              type: integer
                            cpu_available:
                              type: integer
                            cpu_limit:
                              type: integer
                            cpu_total:
                              type: integer
                            memory_available:
                              type: integer
                            memory_limit:
                              type: integer
                            memory_total:
                              type: number
                            primarystorage_available:
                              type: integer
                            primarystorage_limit:
                              type: integer
                            primarystorage_total:
                              type: number
                            secondarystorage_available:
                              type: integer
                            secondarystorage_limit:
                              type: integer
                            secondarystorage_total:
                              type: number
                            state:
                              type: string
                            is_default:
                              type: boolean
                            users:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  username:
                                    type: string
                                  email:
                                    type: string
                                  first_name:
                                    type: string
                                  last_name:
                                    type: string
                                  state:
                                    type: string
                                  timezone:
                                    type: string
                                  user_source:
                                    type: string
                                  created:
                                    type: string
                                  account:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                  domain:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                  role:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                      type:
                                        type: string
                                  is_caller_child_domain:
                                    type: boolean
                                  is_default:
                                    type: boolean
                        created:
                          type: string
                        destroyed:
                          type: boolean
                        disk_offering:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                        display_volume:
                          type: boolean
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        hypervisor:
                          type: string
                        is_extractable:
                          type: boolean
                        path:
                          type: string
                        pod:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        provisioning_type:
                          type: string
                        size:
                          type: integer
                        state:
                          type: string
                        storage:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            type:
                              type: string
                        type:
                          type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                count: 1
                data:
                - id: b00f4118-d2ff-4007-9843-3af648b8d9b9
                  name: teste-1
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                    account_type: '0'
                    role:
                      id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                      name: User
                      type: User
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                      path: ROOT/skycloud.prv
                    bytes_received: 3208666329
                    bytes_sent: 110646473655
                    vm_available: -1
                    vm_limit: -1
                    vm_running: 0
                    vm_stopped: 1
                    vm_total: 1
                    ip_available: -1
                    ip_limit: -1
                    ip_total: 3
                    volume_available: -1
                    volume_limit: -1
                    volume_total: 3
                    snapshot_available: -1
                    snapshot_limit: -1
                    snapshot_total: 10
                    template_available: -1
                    template_limit: -1
                    template_total: 0
                    project_available: -1
                    project_limit: -1
                    project_total: 1
                    network_available: -1
                    network_limit: -1
                    network_total: 4
                    vpc_available: -1
                    vpc_limit: -1
                    vpc_total: 0
                    cpu_available: -1
                    cpu_limit: -1
                    cpu_total: 2
                    memory_available: -1
                    memory_limit: -1
                    memory_total: 8192.0
                    primarystorage_available: -1
                    primarystorage_limit: -1
                    primarystorage_total: 28.0
                    secondarystorage_available: -1
                    secondarystorage_limit: -1
                    secondarystorage_total: 1.8711004
                    state: enabled
                    is_default: false
                    users:
                    - id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                      username: '8'
                      email: desenvolvimento@minhaempresa.com.br
                      first_name: '[EMPRESA] Meu Testdrive'
                      last_name: Cloud
                      state: enabled
                      timezone: America/Sao_Paulo
                      user_source: native
                      created: '2021-04-28T16:42:51-03:00'
                      account:
                        id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                        name: '8'
                      domain:
                        id: f8d35132-668a-43b3-9730-528b41ee2d20
                      role:
                        id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                        name: User
                        type: User
                      is_caller_child_domain: false
                      is_default: false
                  created: '2021-08-04T16:12:28-03:00'
                  destroyed: false
                  disk_offering:
                    id: a889783d-c298-46ba-9bbd-9d9f8fad8d0c
                    name: Disco SAS
                    display_text: Disco SAS
                  display_volume: true
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  hypervisor: XenServer
                  is_extractable: true
                  path: 48c7cfa4-990d-4c21-be39-a2c8e74a6c7b
                  pod:
                    id: 5b457092-345d-4377-ba1f-a02c4116f3a6
                    name: pod1
                  provisioning_type: thin
                  size: 10737418240
                  state: Ready
                  storage:
                    id: SIO1_G1_SAS
                    name: SIO1_G1_SAS
                    type: shared
                  type: DATADISK
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
    post:
      tags:
      - Cloud
      summary: Criar disco
      description: Esta é a chamada que permite criar um ponto de restauração de uma máquina virtual existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_volume
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                diskofferingid:
                  type: string
                  description: Identificador da oferta de disco
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                size:
                  type: number
                  description: Tamanho do disco em GiB
                  example: 8
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: number
                  description: Identificador do cliente
                  example: 8
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                name:
                  type: string
                  description: Nome
                snapshotid:
                  type: string
                  description: Identificador do snapshot de disco
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                virtualmachineid:
                  type: string
                  description: Identificador da máquina virtual
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
              required:
              - diskofferingid
              - size
              - domainid
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 74f49109-d7f0-4d10-9b69-9d9e216c3b3f
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:55:07-03:00'
                  command: org.apache.cloudstack.api.command.admin.volume.CreateVolumeCmdByAdmin
                  instance_type: Volume
                  instance_id: b7cb8aac-b9c1-4601-9fdb-3052a4ede208
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume/{volumeid}:
    get:
      tags:
      - Cloud
      summary: Obter disco
      description: Esta é a chamada que retorna os dados de um disco de uma conta ou projeto cloud.
      operationId: get_cloud_zone_volume_volumeid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          account_type:
                            type: string
                          role:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              type:
                                type: string
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              path:
                                type: string
                          bytes_received:
                            type: integer
                          bytes_sent:
                            type: integer
                          vm_available:
                            type: integer
                          vm_limit:
                            type: integer
                          vm_running:
                            type: integer
                          vm_stopped:
                            type: integer
                          vm_total:
                            type: integer
                          ip_available:
                            type: integer
                          ip_limit:
                            type: integer
                          ip_total:
                            type: integer
                          volume_available:
                            type: integer
                          volume_limit:
                            type: integer
                          volume_total:
                            type: integer
                          snapshot_available:
                            type: integer
                          snapshot_limit:
                            type: integer
                          snapshot_total:
                            type: integer
                          template_available:
                            type: integer
                          template_limit:
                            type: integer
                          template_total:
                            type: integer
                          project_available:
                            type: integer
                          project_limit:
                            type: integer
                          project_total:
                            type: integer
                          network_available:
                            type: integer
                          network_limit:
                            type: integer
                          network_total:
                            type: integer
                          vpc_available:
                            type: integer
                          vpc_limit:
                            type: integer
                          vpc_total:
                            type: integer
                          cpu_available:
                            type: integer
                          cpu_limit:
                            type: integer
                          cpu_total:
                            type: integer
                          memory_available:
                            type: integer
                          memory_limit:
                            type: integer
                          memory_total:
                            type: number
                          primarystorage_available:
                            type: integer
                          primarystorage_limit:
                            type: integer
                          primarystorage_total:
                            type: number
                          secondarystorage_available:
                            type: integer
                          secondarystorage_limit:
                            type: integer
                          secondarystorage_total:
                            type: number
                          state:
                            type: string
                          is_default:
                            type: boolean
                          users:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                username:
                                  type: string
                                email:
                                  type: string
                                first_name:
                                  type: string
                                last_name:
                                  type: string
                                state:
                                  type: string
                                timezone:
                                  type: string
                                user_source:
                                  type: string
                                created:
                                  type: string
                                account:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                domain:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                role:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    type:
                                      type: string
                                is_caller_child_domain:
                                  type: boolean
                                is_default:
                                  type: boolean
                      created:
                        type: string
                      destroyed:
                        type: boolean
                      disk_offering:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                      display_volume:
                        type: boolean
                      domain:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      hypervisor:
                        type: string
                      is_extractable:
                        type: boolean
                      path:
                        type: string
                      pod:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      provisioning_type:
                        type: string
                      size:
                        type: integer
                      state:
                        type: string
                      storage:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          type:
                            type: string
                      type:
                        type: string
                      zone:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
              example:
                success: true
                data:
                  id: b00f4118-d2ff-4007-9843-3af648b8d9b9
                  name: teste-1
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                    account_type: '0'
                    role:
                      id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                      name: User
                      type: User
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                      path: ROOT/skycloud.prv
                    bytes_received: 3208666329
                    bytes_sent: 110646473655
                    vm_available: -1
                    vm_limit: -1
                    vm_running: 0
                    vm_stopped: 1
                    vm_total: 1
                    ip_available: -1
                    ip_limit: -1
                    ip_total: 3
                    volume_available: -1
                    volume_limit: -1
                    volume_total: 4
                    snapshot_available: -1
                    snapshot_limit: -1
                    snapshot_total: 10
                    template_available: -1
                    template_limit: -1
                    template_total: 0
                    project_available: -1
                    project_limit: -1
                    project_total: 1
                    network_available: -1
                    network_limit: -1
                    network_total: 4
                    vpc_available: -1
                    vpc_limit: -1
                    vpc_total: 0
                    cpu_available: -1
                    cpu_limit: -1
                    cpu_total: 2
                    memory_available: -1
                    memory_limit: -1
                    memory_total: 8192.0
                    primarystorage_available: -1
                    primarystorage_limit: -1
                    primarystorage_total: 38.0
                    secondarystorage_available: -1
                    secondarystorage_limit: -1
                    secondarystorage_total: 1.8711004
                    state: enabled
                    is_default: false
                    users:
                    - id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                      username: '8'
                      email: desenvolvimento@minhaempresa.com.br
                      first_name: '[EMPRESA] Meu Testdrive'
                      last_name: Cloud
                      state: enabled
                      timezone: America/Sao_Paulo
                      user_source: native
                      created: '2021-04-28T16:42:51-03:00'
                      account:
                        id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                        name: '8'
                      domain:
                        id: f8d35132-668a-43b3-9730-528b41ee2d20
                      role:
                        id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                        name: User
                        type: User
                      is_caller_child_domain: false
                      is_default: false
                  created: '2021-08-04T16:12:28-03:00'
                  destroyed: false
                  disk_offering:
                    id: a889783d-c298-46ba-9bbd-9d9f8fad8d0c
                    name: Disco SAS
                    display_text: Disco SAS
                  display_volume: true
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  hypervisor: XenServer
                  is_extractable: true
                  path: 48c7cfa4-990d-4c21-be39-a2c8e74a6c7b
                  pod:
                    id: 5b457092-345d-4377-ba1f-a02c4116f3a6
                    name: pod1
                  provisioning_type: thin
                  size: 10737418240
                  state: Ready
                  storage:
                    id: SIO1_G1_SAS
                    name: SIO1_G1_SAS
                    type: shared
                  type: DATADISK
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
    delete:
      tags:
      - Cloud
      summary: Remover um disco
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover um disco de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_volume_volumeid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '204':
          description: Requisicao efetuada com sucesso, sem conteudo de retorno.
          content:
            application/json:
              example:
                success: true
  /cloud/{zone}/volume/{volumeid}/attach/{virtualmachineid}:
    post:
      tags:
      - Cloud
      summary: Anexar disco em máquina virtual
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite anexar um disco em uma máquina virtual de uma conta ou projeto cloud.'
      operationId: post_cloud_zone_volume_volumeid_attach_virtualmachineid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: virtualmachineid
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: b7b0d1c7-9834-460e-9090-cb90dd409cdf
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:56:49-03:00'
                  command: org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin
                  instance_type: Volume
                  instance_id: b7cb8aac-b9c1-4601-9fdb-3052a4ede208
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume/{volumeid}/detach/{virtualmachineid}:
    post:
      tags:
      - Cloud
      summary: Desanexar disco de máquina virtual
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite desanexar um disco de uma máquina virtual de uma conta ou projeto cloud.'
      operationId: post_cloud_zone_volume_volumeid_detach_virtualmachineid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: virtualmachineid
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: b9debbcc-61f9-40c1-91b9-b9e2a93a247d
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:57:45-03:00'
                  command: org.apache.cloudstack.api.command.admin.volume.DetachVolumeCmdByAdmin
                  instance_type: Volume
                  instance_id: b7cb8aac-b9c1-4601-9fdb-3052a4ede208
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume/{volumeid}/resize:
    patch:
      tags:
      - Cloud
      summary: Aumentar tamanho do disco
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite aumentar o tamanho de um disco de uma conta ou projeto cloud.'
      operationId: patch_cloud_zone_volume_volumeid_resize
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                size:
                  type: number
                  description: Novo tamanho em GiB
                  example: 10
                shrink:
                  type: boolean
                  description: Flag para otimizar o tamanho do disco ao redimensionar
                  example: true
              required:
              - size
              - shrink
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: d12ed13b-7956-4d1f-87a8-d4a9d3deca47
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T19:10:12-03:00'
                  command: org.apache.cloudstack.api.command.admin.volume.ResizeVolumeCmdByAdmin
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume/{volumeid}/offering:
    patch:
      tags:
      - Cloud
      summary: Alterar oferta de disco
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite alterar a oferta de disco de um disco de uma conta ou projeto cloud.'
      operationId: patch_cloud_zone_volume_volumeid_offering
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                diskofferingid:
                  type: string
                  description: Identificador da oferta de disco
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
              required:
              - diskofferingid
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: e7d9b59b-89db-468b-855c-783f7fc9ec5d
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T19:12:11-03:00'
                  command: org.apache.cloudstack.api.command.admin.volume.ResizeVolumeCmdByAdmin
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/port-forwarding-rule:
    get:
      tags:
      - Cloud
      summary: Listar encaminhamento de portas
      description: Esta é a chamada que retorna as regras de encaminhamento de portas.
      operationId: get_cloud_zone_port_forwarding_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador do balanceamento de carga
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: networkid
        in: query
        description: Identificador da rede a que pertence o balanceador
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: publicipid
        in: query
        description: Identificador do IP público associado
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: virtualmachineid
        in: query
        description: Identificador da máquina virtual associada
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        cidr_list:
                          type: string
                        for_display:
                          type: boolean
                        public_ip_address:
                          type: object
                          properties:
                            id:
                              type: string
                            ip:
                              type: string
                        network:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                            broadcast_domain_type:
                              type: string
                            traffic_type:
                              type: string
                            gateway:
                              type: string
                            netmask:
                              type: string
                            cidr:
                              type: string
                            zone:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            network_offering:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                display_text:
                                  type: string
                                conserve_mode:
                                  type: boolean
                                availability:
                                  type: string
                            is_system:
                              type: boolean
                            state:
                              type: string
                            related:
                              type: string
                            dns1:
                              type: string
                            type:
                              type: string
                            acl_type:
                              type: string
                            account:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            network_domain:
                              type: string
                        private_start_port:
                          type: integer
                        private_end_port:
                          type: integer
                        protocol:
                          type: string
                        public_start_port:
                          type: integer
                        public_end_port:
                          type: integer
                        state:
                          type: string
                        tags:
                          type: array
                          items: {}
                        virtual_machine:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_name:
                              type: string
                        vm_guest_ip:
                          type: string
              example:
                success: true
                count: 1
                data:
                - id: 0da963b0-aa6e-4cf9-a7c3-3a41eb09d554
                  cidr_list: ''
                  for_display: true
                  public_ip_address:
                    id: 707014e7-38cf-48b2-a693-848b23a77fce
                    ip: 200.187.65.62
                  network:
                    id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Implemented
                    related: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  private_start_port: 5557
                  private_end_port: 5557
                  protocol: tcp
                  public_start_port: 5557
                  public_end_port: 5557
                  state: Active
                  tags: []
                  virtual_machine:
                    id: b8f06484-777c-4760-98ce-648650e30c29
                    name: teste-1
                    display_name: teste-1
                  vm_guest_ip: 10.1.1.172
    post:
      tags:
      - Cloud
      summary: Criar encaminhamento de portas
      description: Esta é a chamada que permite criar uma regra encaminhamento de portas em um IP público existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_port_forwarding_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                ipaddressid:
                  type: string
                  description: Identificador do IP público
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                virtualmachineid:
                  type: string
                  description: Identificador da máquina virtual
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                protocol:
                  type: string
                  enum:
                  - '`TCP`'
                  - '`UDP`'
                  description: Protocolo da regra de firewall de saída
                  example: TCP
                privateport:
                  type: string
                  description: Porta privada inicial
                  example: '22'
                publicport:
                  type: string
                  description: Porta pública inicial
                  example: '22'
                privateendport:
                  type: string
                  description: Porta privada final
                  example: '23'
                publicendport:
                  type: string
                  description: Porta pública final
                  example: '23'
                openfirewall:
                  type: boolean
                  description: Indica se deve ser aberta uma regra de firewall de entrada com as mesmas configurações do protocolo e portas públicas inicial e final
                  example: true
                cidrlist:
                  type: string
                  description: Lista de CIDR de origem, separados por vírgula, para a regra de firewall caso o parâmetro `openfirewall` seja enviado como `true`
                  example: 0.0.0.0/0
              required:
              - domainid
              - ipaddressid
              - virtualmachineid
              - privateport
              - publicport
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 3ce5ac14-da9e-481c-b4f5-87c44a14a181
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T15:10:27-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.CreatePortForwardingRuleCmd
                  instance_type: FirewallRule
                  instance_id: 0da963b0-aa6e-4cf9-a7c3-3a41eb09d554
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/port-forwarding-rule/{portforwardingruleid}:
    get:
      tags:
      - Cloud
      summary: Obter encaminhamento de portas
      description: Esta é a chamada que retorna os dados de um encaminhamento de portas existente em um IP público de uma conta ou projeto cloud.
      operationId: get_cloud_zone_port_forwarding_rule_portforwardingruleid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: portforwardingruleid
        in: path
        description: Identificador da regra de encaminhamento de porta
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      cidr_list:
                        type: string
                      for_display:
                        type: boolean
                      public_ip_address:
                        type: object
                        properties:
                          id:
                            type: string
                          ip:
                            type: string
                      network:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                          broadcast_domain_type:
                            type: string
                          traffic_type:
                            type: string
                          gateway:
                            type: string
                          netmask:
                            type: string
                          cidr:
                            type: string
                          zone:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_offering:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              display_text:
                                type: string
                              conserve_mode:
                                type: boolean
                              availability:
                                type: string
                          is_system:
                            type: boolean
                          state:
                            type: string
                          related:
                            type: string
                          dns1:
                            type: string
                          type:
                            type: string
                          acl_type:
                            type: string
                          account:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_domain:
                            type: string
                      start_port:
                        type: integer
                      end_port:
                        type: integer
                      protocol:
                        type: string
                      state:
                        type: string
                      tags:
                        type: array
                        items: {}
              example:
                success: true
                data:
                  id: 9024cfa9-5d73-4700-8a80-1fc00b3166f7
                  cidr_list: 0.0.0.0/0,10.1.1.1/24
                  for_display: true
                  public_ip_address:
                    id: 707014e7-38cf-48b2-a693-848b23a77fce
                    ip: 200.187.65.62
                  network:
                    id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Implemented
                    related: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  start_port: 22
                  end_port: 22
                  protocol: tcp
                  state: Active
                  tags: []
    delete:
      tags:
      - Cloud
      summary: Remover encaminhamento de portas
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover uma regra de encaminhamento de porta existente em um IP público de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_port_forwarding_rule_portforwardingruleid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: portforwardingruleid
        in: path
        description: Identificador da regra de encaminhamento de porta
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 4091587f-e87e-4706-b0a5-d4175bcc00e9
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T15:21:09-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/firewall-rule:
    get:
      tags:
      - Cloud
      summary: Listar firewall de entrada
      description: Esta é a chamada que retorna as regras de firewall de entrada de uma conta ou projeto.
      operationId: get_cloud_zone_firewall_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da rede
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        cidr_list:
                          type: string
                        for_display:
                          type: boolean
                        public_ip_address:
                          type: object
                          properties:
                            id:
                              type: string
                            ip:
                              type: string
                        network:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                            broadcast_domain_type:
                              type: string
                            traffic_type:
                              type: string
                            gateway:
                              type: string
                            netmask:
                              type: string
                            cidr:
                              type: string
                            zone:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            network_offering:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                display_text:
                                  type: string
                                conserve_mode:
                                  type: boolean
                                availability:
                                  type: string
                            is_system:
                              type: boolean
                            state:
                              type: string
                            related:
                              type: string
                            dns1:
                              type: string
                            type:
                              type: string
                            acl_type:
                              type: string
                            account:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            network_domain:
                              type: string
                        start_port:
                          type: integer
                        end_port:
                          type: integer
                        protocol:
                          type: string
                        state:
                          type: string
                        tags:
                          type: array
                          items: {}
              example:
                success: true
                count: 1
                data:
                - id: 9024cfa9-5d73-4700-8a80-1fc00b3166f7
                  cidr_list: 0.0.0.0/0,10.1.1.1/24
                  for_display: true
                  public_ip_address:
                    id: 707014e7-38cf-48b2-a693-848b23a77fce
                    ip: 200.187.65.62
                  network:
                    id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Implemented
                    related: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  start_port: 22
                  end_port: 22
                  protocol: tcp
                  state: Active
                  tags: []
    post:
      tags:
      - Cloud
      summary: Criar firewall de entrada
      description: Esta é a chamada que permite criar uma regra de firewall de entrada em um IP público existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_firewall_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: number
                  description: Identificador do cliente
                  example: 8
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                ipaddressid:
                  type: string
                  description: Identificador do IP público
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                protocol:
                  type: string
                  enum:
                  - '`TCP`'
                  - '`UDP`'
                  - '`ICMP`'
                  description: Protocolo da regra de firewall de saída
                  example: TCP
                cidrlist:
                  type: string
                  description: Lista de CIDR de origem, separados por vírgula
                  example: 0.0.0.0/0
                startport:
                  type: string
                  description: Porta inicial quando o protocolo for TCP ou UDP
                  example: '22'
                endport:
                  type: string
                  description: Porta final quando o protocolo for TCP ou UDP
                  example: '22'
                icmpcode:
                  type: string
                  description: Código ICMP
                  example: '-1'
                icmptype:
                  type: string
                  description: Tipo ICMP
                  example: '-1'
              required:
              - domainid
              - ipaddressid
              - cidrlist
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: ef062e00-943a-44bc-bcad-59edf7b062ec
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T15:05:40-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd
                  instance_type: FirewallRule
                  instance_id: da12a779-1579-4809-b402-8987351d8600
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/firewall-rule/{firewallruleid}:
    get:
      tags:
      - Cloud
      summary: Obter firewall de entrada
      description: Esta é a chamada que retorna os dados de uma regra de firewall de entrada existente em um IP público de uma conta ou projeto cloud.
      operationId: get_cloud_zone_firewall_rule_firewallruleid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: firewallruleid
        in: path
        description: Identificador da regra de firewall de entrada
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      cidr_list:
                        type: string
                      for_display:
                        type: boolean
                      public_ip_address:
                        type: object
                        properties:
                          id:
                            type: string
                          ip:
                            type: string
                      network:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                          broadcast_domain_type:
                            type: string
                          traffic_type:
                            type: string
                          gateway:
                            type: string
                          netmask:
                            type: string
                          cidr:
                            type: string
                          zone:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_offering:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              display_text:
                                type: string
                              conserve_mode:
                                type: boolean
                              availability:
                                type: string
                          is_system:
                            type: boolean
                          state:
                            type: string
                          related:
                            type: string
                          dns1:
                            type: string
                          type:
                            type: string
                          acl_type:
                            type: string
                          account:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_domain:
                            type: string
                      start_port:
                        type: integer
                      end_port:
                        type: integer
                      protocol:
                        type: string
                      state:
                        type: string
                      tags:
                        type: array
                        items: {}
              example:
                success: true
                data:
                  id: 9024cfa9-5d73-4700-8a80-1fc00b3166f7
                  cidr_list: 0.0.0.0/0,10.1.1.1/24
                  for_display: true
                  public_ip_address:
                    id: 707014e7-38cf-48b2-a693-848b23a77fce
                    ip: 200.187.65.62
                  network:
                    id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Implemented
                    related: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  start_port: 22
                  end_port: 22
                  protocol: tcp
                  state: Active
                  tags: []
    delete:
      tags:
      - Cloud
      summary: Remover firewall de entrada
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover uma regra de firewall de entrada existente em um IP público de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_firewall_rule_firewallruleid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: firewallruleid
        in: path
        description: Identificador da regra de firewall de saída
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 76d35d1c-bfe1-4aff-851c-80944953a9b4
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T15:06:32-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/egress-firewall-rule:
    get:
      tags:
      - Cloud
      summary: Listar firewall de saída
      description: Esta é a chamada que retorna as regras de firewall de saida de uma conta ou projeto.
      operationId: get_cloud_zone_egress_firewall_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: networkid
        in: query
        description: Identificador da rede
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da rede
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        cidr_list:
                          type: string
                        destination_cidr_list:
                          type: string
                        for_display:
                          type: boolean
                        network:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                            broadcast_domain_type:
                              type: string
                            traffic_type:
                              type: string
                            gateway:
                              type: string
                            netmask:
                              type: string
                            cidr:
                              type: string
                            zone:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            network_offering:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                display_text:
                                  type: string
                                conserve_mode:
                                  type: boolean
                                availability:
                                  type: string
                            is_system:
                              type: boolean
                            state:
                              type: string
                            related:
                              type: string
                            dns1:
                              type: string
                            type:
                              type: string
                            acl_type:
                              type: string
                            account:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            network_domain:
                              type: string
                        start_port:
                          type: integer
                        end_port:
                          type: integer
                        protocol:
                          type: string
                        state:
                          type: string
                        tags:
                          type: array
                          items: {}
              example:
                success: true
                count: 1
                data:
                - id: 0297bd79-2540-4506-b0e5-209b9411c3f6
                  cidr_list: 10.1.1.0/24
                  destination_cidr_list: 0.0.0.0/0
                  for_display: true
                  network:
                    id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Implemented
                    related: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  start_port: 22
                  end_port: 22
                  protocol: tcp
                  state: Active
                  tags: []
    post:
      tags:
      - Cloud
      summary: Criar firewall de saída
      description: Esta é a chamada que permite criar uma regra de firewall de saída em uma rede existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_egress_firewall_rule
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: number
                  description: Identificador do cliente
                  example: 8
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                networkid:
                  type: string
                  description: Identificador da rede
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                protocol:
                  type: string
                  enum:
                  - '`TCP`'
                  - '`UDP`'
                  - '`ICMP`'
                  description: Protocolo da regra de firewall de saída
                  example: TCP
                cidrlist:
                  type: string
                  description: Lista de CIDR de origem, separados por vírgula
                  example: 0.0.0.0/0
                destcidrlist:
                  type: string
                  description: Lista de CIDR de destino, separados por vírgula
                  example: 0.0.0.0/0
                startport:
                  type: string
                  description: Porta inicial quando o protocolo for TCP ou UDP
                  example: '22'
                endport:
                  type: string
                  description: Porta final quando o protocolo for TCP ou UDP
                  example: '22'
                icmpcode:
                  type: string
                  description: Código ICMP
                  example: '-1'
                icmptype:
                  type: string
                  description: Tipo ICMP
                  example: '-1'
              required:
              - domainid
              - networkid
              - cidrlist
              - destcidrlist
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 4c61aec3-272d-4744-8543-39599a28e3f6
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T14:55:28-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.CreateEgressFirewallRuleCmd
                  instance_type: FirewallRule
                  instance_id: 4a6ef3e7-87fb-40c2-9798-1ac0af843274
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/egress-firewall-rule/{egressfirewallruleid}:
    get:
      tags:
      - Cloud
      summary: Obter firewall de saída
      description: Esta é a chamada que retorna os dados de uma regra de firewall de saída existente em uma rede de uma conta ou projeto cloud.
      operationId: get_cloud_zone_egress_firewall_rule_egressfirewallruleid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: egressfirewallruleid
        in: path
        description: Identificador da regra de firewall de saída
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      cidr_list:
                        type: string
                      destination_cidr_list:
                        type: string
                      for_display:
                        type: boolean
                      network:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                          broadcast_domain_type:
                            type: string
                          traffic_type:
                            type: string
                          gateway:
                            type: string
                          netmask:
                            type: string
                          cidr:
                            type: string
                          zone:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_offering:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              display_text:
                                type: string
                              conserve_mode:
                                type: boolean
                              availability:
                                type: string
                          is_system:
                            type: boolean
                          state:
                            type: string
                          related:
                            type: string
                          dns1:
                            type: string
                          type:
                            type: string
                          acl_type:
                            type: string
                          account:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_domain:
                            type: string
                      start_port:
                        type: integer
                      end_port:
                        type: integer
                      protocol:
                        type: string
                      state:
                        type: string
                      tags:
                        type: array
                        items: {}
              example:
                success: true
                data:
                  id: 0297bd79-2540-4506-b0e5-209b9411c3f6
                  cidr_list: 10.1.1.0/24
                  destination_cidr_list: 0.0.0.0/0
                  for_display: true
                  network:
                    id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Implemented
                    related: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  start_port: 22
                  end_port: 22
                  protocol: tcp
                  state: Active
                  tags: []
    delete:
      tags:
      - Cloud
      summary: Remover Firewall de saída
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover uma regra de firewall de saída existente em uma rede de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_egress_firewall_rule_egressfirewallruleid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: egressfirewallruleid
        in: path
        description: Identificador da regra de firewall de saída
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: b9ba3a5a-1453-49c2-a228-fa99abb514f0
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T14:57:21-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.DeleteEgressFirewallRuleCmd
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/graph/{instance}:
    get:
      tags:
      - Cloud
      summary: Listar gráficos
      description: Esta é a chamada que retorna os gráficos disponíveis para determinada máquina virtual.
      operationId: get_cloud_zone_graph_instance
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: instance
        in: path
        description: Nome único da instância
        required: true
        schema:
          type: string
          example: i-123-4567-VM
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        name:
                          type: string
              example:
                success: true
                data:
                - id: 9538174
                  name: i-123-4567-VM-CpuUsed
                - id: 9538175
                  name: i-123-4567-VM-DiskKbsRead
                - id: 9538176
                  name: i-123-4567-VM-DiskKbsWrite
                - id: 9538177
                  name: i-123-4567-VM-MemoryKbs
                - id: 9538178
                  name: i-123-4567-VM-NetworkKbsRead
                - id: 9538179
                  name: i-123-4567-VM-NetworkKbsWrite
  /cloud/{zone}/graph/{instance}/items:
    get:
      tags:
      - Cloud
      summary: Obter gráfico
      description: Esta é a chamada que retorna o gráfico renderizado com os items selecionados.
      operationId: get_cloud_zone_graph_instance_items
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: instance
        in: path
        description: Nome único da instância
        required: true
        schema:
          type: string
          example: i-123-4567-VM
      - name: width
        in: query
        description: Largura do gráfico
        required: true
        schema:
          type: number
          example: '650'
      - name: height
        in: query
        description: Altura do gráfico
        required: true
        schema:
          type: number
          example: '300'
      - name: ids
        in: query
        description: Identificador do item a ser renderizado. Podem ser adicionados vários IDs repetindo-se o parâmetro `ids[]=` com outros identificadores.
        required: true
        schema:
          type: string
          example: '9538174'
      - name: from
        in: query
        description: Período inicial dos dados renderizados
        required: false
        schema:
          type: string
          enum:
          - 'Default: `now-1h`'
          - '`now-1h`'
          - '`now-6h`'
          - '`now-24h`'
          - '`now-7d`'
          - '`now-15d`'
          - '`now-30d`'
          example: now-6h
      - name: to
        in: query
        description: Período final dos dados renderizados
        required: false
        schema:
          type: string
          enum:
          - 'Default: `now`'
          - now
          example: now
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      content_type:
                        type: string
                      image:
                        type: string
              example:
                success: true
                data:
                  content_type: image/png
                  image: base64 encoded string
  /cloud/{zone}/public-ip-address:
    get:
      tags:
      - Cloud
      summary: Listar IPs públicos
      description: Esta é a chamada que retorna as informações de IPs públicos.
      operationId: get_cloud_zone_public_ip_address
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador do IP público
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: associatednetworkid
        in: query
        description: Identificador da rede a que pertence o IP público
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: ipaddress
        in: query
        description: IP público
        required: false
        schema:
          type: string
          example: 168.0.32.99
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        associated_network:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        id:
                          type: string
                        ip:
                          type: string
                        source_nat:
                          type: boolean
                        static_nat:
                          type: boolean
                        state:
                          type: string
                        tags:
                          type: array
                          items: {}
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                data:
                - associated_network:
                    id: 9cafb090-cc39-4ea8-bace-372a10ce6f6c
                    name: skydemo
                  domain:
                    id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    name: skycloud.prv
                  id: 9d82ba13-8843-456f-98d7-e490c5e0fa2b
                  ip: 200.200.200.200
                  source_nat: true
                  static_nat: false
                  state: Allocated
                  tags: []
                  zone:
                    id: 94e5a492-cf54-4420-b0bb-1d4247cb14a8
                    name: Lab
  /cloud/{zone}/public-ip-address/{ipaddressid}:
    get:
      tags:
      - Cloud
      summary: Obter IP público
      description: Esta é a chamada que retorna os dados de um IP público.
      operationId: get_cloud_zone_public_ip_address_ipaddressid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: ipaddressid
        in: path
        description: Identificador do IP público
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          account_type:
                            type: string
                          role:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              type:
                                type: string
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              path:
                                type: string
                          bytes_received:
                            type: integer
                          bytes_sent:
                            type: integer
                          vm_available:
                            type: integer
                          vm_limit:
                            type: integer
                          vm_running:
                            type: integer
                          vm_stopped:
                            type: integer
                          vm_total:
                            type: integer
                          ip_available:
                            type: integer
                          ip_limit:
                            type: integer
                          ip_total:
                            type: integer
                          volume_available:
                            type: integer
                          volume_limit:
                            type: integer
                          volume_total:
                            type: integer
                          snapshot_available:
                            type: integer
                          snapshot_limit:
                            type: integer
                          snapshot_total:
                            type: integer
                          template_available:
                            type: integer
                          template_limit:
                            type: integer
                          template_total:
                            type: integer
                          project_available:
                            type: integer
                          project_limit:
                            type: integer
                          project_total:
                            type: integer
                          network_available:
                            type: integer
                          network_limit:
                            type: integer
                          network_total:
                            type: integer
                          vpc_available:
                            type: integer
                          vpc_limit:
                            type: integer
                          vpc_total:
                            type: integer
                          cpu_available:
                            type: integer
                          cpu_limit:
                            type: integer
                          cpu_total:
                            type: integer
                          memory_available:
                            type: integer
                          memory_limit:
                            type: integer
                          memory_total:
                            type: number
                          primarystorage_available:
                            type: integer
                          primarystorage_limit:
                            type: integer
                          primarystorage_total:
                            type: number
                          secondarystorage_available:
                            type: integer
                          secondarystorage_limit:
                            type: integer
                          secondarystorage_total:
                            type: number
                          state:
                            type: string
                          is_default:
                            type: boolean
                          users:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                username:
                                  type: string
                                email:
                                  type: string
                                first_name:
                                  type: string
                                last_name:
                                  type: string
                                state:
                                  type: string
                                timezone:
                                  type: string
                                user_source:
                                  type: string
                                created:
                                  type: string
                                account:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                domain:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                role:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    type:
                                      type: string
                                is_caller_child_domain:
                                  type: boolean
                                is_default:
                                  type: boolean
                      allocated:
                        type: string
                      associated_network:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                          broadcast_domain_type:
                            type: string
                          traffic_type:
                            type: string
                          gateway:
                            type: string
                          netmask:
                            type: string
                          cidr:
                            type: string
                          zone:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_offering:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              display_text:
                                type: string
                              conserve_mode:
                                type: boolean
                              availability:
                                type: string
                          is_system:
                            type: boolean
                          state:
                            type: string
                          related:
                            type: string
                          dns1:
                            type: string
                          type:
                            type: string
                          acl_type:
                            type: string
                          account:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          network_domain:
                            type: string
                      domain:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      for_display:
                        type: boolean
                      for_virtual_network:
                        type: boolean
                      id:
                        type: string
                      ip:
                        type: string
                      portable:
                        type: boolean
                      source_nat:
                        type: boolean
                      static_nat:
                        type: boolean
                      system:
                        type: boolean
                      state:
                        type: string
                      tags:
                        type: array
                        items: {}
                      vlan:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      zone:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
              example:
                success: true
                data:
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                    account_type: '0'
                    role:
                      id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                      name: User
                      type: User
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                      path: ROOT/skycloud.prv
                    bytes_received: 3208666329
                    bytes_sent: 110646473655
                    vm_available: -1
                    vm_limit: -1
                    vm_running: 1
                    vm_stopped: 0
                    vm_total: 1
                    ip_available: -1
                    ip_limit: -1
                    ip_total: 3
                    volume_available: -1
                    volume_limit: -1
                    volume_total: 3
                    snapshot_available: -1
                    snapshot_limit: -1
                    snapshot_total: 10
                    template_available: -1
                    template_limit: -1
                    template_total: 0
                    project_available: -1
                    project_limit: -1
                    project_total: 1
                    network_available: -1
                    network_limit: -1
                    network_total: 4
                    vpc_available: -1
                    vpc_limit: -1
                    vpc_total: 0
                    cpu_available: -1
                    cpu_limit: -1
                    cpu_total: 1
                    memory_available: -1
                    memory_limit: -1
                    memory_total: 1024.0
                    primarystorage_available: -1
                    primarystorage_limit: -1
                    primarystorage_total: 28.0
                    secondarystorage_available: -1
                    secondarystorage_limit: -1
                    secondarystorage_total: 1.8711004
                    state: enabled
                    is_default: false
                    users:
                    - id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                      username: '8'
                      email: desenvolvimento@empresa.com.br
                      first_name: '[EMPRESA] Meu Testdrive'
                      last_name: Cloud
                      state: enabled
                      timezone: America/Sao_Paulo
                      user_source: native
                      created: '2021-04-28T16:42:51-03:00'
                      account:
                        id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                        name: '8'
                      domain:
                        id: f8d35132-668a-43b3-9730-528b41ee2d20
                      role:
                        id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                        name: User
                        type: User
                      is_caller_child_domain: false
                      is_default: false
                  allocated: '2021-07-25T19:57:52-03:00'
                  associated_network:
                    id: 96072014-5b05-437e-96f7-f86085bb9b98
                    name: teste-1
                    display_text: teste-1
                    broadcast_domain_type: Vlan
                    traffic_type: Guest
                    gateway: 10.1.1.1
                    netmask: 255.255.255.0
                    cidr: 10.1.1.0/24
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                    network_offering:
                      id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                      name: DefaultIsolatedNetworkOfferingWithSourceNatService
                      display_text: Offering for Isolated networks with Source Nat service enabled
                      conserve_mode: true
                      availability: Required
                    is_system: false
                    state: Allocated
                    related: 96072014-5b05-437e-96f7-f86085bb9b98
                    dns1: 200.187.65.254
                    type: Isolated
                    acl_type: Account
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    network_domain: skycloud.prv
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  for_display: true
                  for_virtual_network: true
                  id: 6fb4b653-73a2-418f-b0ab-2a802dfc98e4
                  ip: 200.187.65.68
                  portable: false
                  source_nat: true
                  static_nat: false
                  system: false
                  state: Allocated
                  tags: []
                  vlan:
                    id: a0059776-d4e0-442f-8ede-27426d1524a9
                    name: vlan://4
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
  /cloud/{zone}/virtual-machine:
    get:
      tags:
      - Cloud
      summary: Listar máquinas virtuais
      description: Esta é a chamada que retorna as informações de máquinas virtuais.
      operationId: get_cloud_zone_virtual_machine
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da máquina virtual
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: name
        in: query
        description: Parte do nome da máquina virtual
        required: true
        schema:
          type: string
          example: minha-vm
      - name: networkid
        in: query
        description: Identificador da rede
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        cpu_number:
                          type: integer
                        cpu_speed:
                          type: integer
                        cpu_used:
                          type: string
                        created:
                          type: string
                        details:
                          type: object
                          properties:
                            Message.ReservedCapacityFreed.Flag:
                              type: string
                            hypervisortoolsversion:
                              type: string
                            platform:
                              type: string
                        disk_io_read:
                          type: integer
                        disk_io_write:
                          type: integer
                        disk_kbs_read:
                          type: integer
                        disk_kbs_write:
                          type: integer
                        display_name:
                          type: string
                        display_vm:
                          type: boolean
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        instance_name:
                          type: string
                        memory:
                          type: integer
                        memory_int_free_kbs:
                          type: integer
                        memory_kbs:
                          type: integer
                        memory_target_kbs:
                          type: integer
                        network_kbs_read:
                          type: integer
                        network_kbs_write:
                          type: integer
                        nics:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              type:
                                type: string
                              ip4_address:
                                type: string
                              ip4_gateway:
                                type: string
                              ip4_netmask:
                                type: string
                              is_default:
                                type: boolean
                              mac_address:
                                type: string
                              traffic_type:
                                type: string
                              network:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                        os:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        password_enabled:
                          type: boolean
                        service_offering:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        state:
                          type: string
                        tags:
                          type: array
                          items:
                            type: object
                            properties:
                              key:
                                type: string
                              value:
                                type: string
                              resource:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  type:
                                    type: string
                              account:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                              domain:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                        template:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                        user:
                          type: object
                          properties:
                            id:
                              type: string
                            username:
                              type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                data:
                - id: 926571e6-03af-4e9b-953e-031471ef2d46
                  name: teste-skydemo1
                  account:
                    id: 956e9d02-859c-4649-9526-0e7631fd5c34
                    name: '8'
                  cpu_number: 2
                  cpu_speed: 2000
                  cpu_used: 0.17%
                  created: '2020-07-28T11:55:45-03:00'
                  details:
                    Message.ReservedCapacityFreed.Flag: 'false'
                    hypervisortoolsversion: xenserver56
                    platform: apic:true;viridian:true;timeoffset:0;pae:true;acpi:1;hpet:true;nx:true
                  disk_io_read: 0
                  disk_io_write: 0
                  disk_kbs_read: 2047190
                  disk_kbs_write: 235394
                  display_name: Teste Skydemo 1
                  display_vm: true
                  domain:
                    id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    name: skycloud.prv
                  instance_name: i-2-11-VM
                  memory: 4096
                  memory_int_free_kbs: 3501
                  memory_kbs: 4194292
                  memory_target_kbs: 4194304
                  network_kbs_read: 254054
                  network_kbs_write: 254063
                  nics:
                  - id: 9bb41d2b-bca1-40e8-879c-a7642b10dbdc
                    type: Isolated
                    ip4_address: 10.1.1.189
                    ip4_gateway: 10.1.1.1
                    ip4_netmask: 255.255.255.0
                    is_default: true
                    mac_address: 02:00:10:e4:00:01
                    traffic_type: Guest
                    network:
                      id: 9cafb090-cc39-4ea8-bace-372a10ce6f6c
                      name: skydemo
                  os:
                    id: 95cd49da-aa9f-11ea-8556-c61639fe9620
                    name: CentOS 7.2
                  password_enabled: true
                  service_offering:
                    id: 9a2c2f53-762e-4b1e-854f-375f69a63cb9
                    name: c.pequena Local
                  state: Running
                  tags:
                  - key: chave3
                    value: valor3
                    resource:
                      id: 926571e6-03af-4e9b-953e-031471ef2d46
                      type: UserVm
                    account:
                      id: 956e9d02-859c-4649-9526-0e7631fd5c34
                      name: '8'
                    domain:
                      id: 936122fb-1bd6-4482-b43d-80bb72794b18
                      name: skycloud.prv
                  template:
                    id: 9bce9ced-de16-4c53-bdda-7193f9396968
                    name: CentOS 7 x64
                    display_text: CentOS 7 x64
                  user:
                    id: 9b25e6c9-aa9f-11ea-8556-c61639fe9620
                    username: admin
                  zone:
                    id: 94e5a492-cf54-4420-b0bb-1d4247cb14a8
                    name: Lab
    post:
      tags:
      - Cloud
      summary: Criar máquina virtual
      description: Esta é a chamada que permite criar uma máquina virtual.
      operationId: post_cloud_zone_virtual_machine
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: number
                  description: Identificador do cliente
                  example: 8
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                templateid:
                  type: string
                  description: Identificador do template
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                serviceofferingid:
                  type: string
                  description: Identificador da oferta de serviço
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                name:
                  type: string
                  description: Nome da máquina virtual
                  example: minha-vm
                displayname:
                  type: string
                  description: Descrição
                  example: Minha VM
                keyboard:
                  type: string
                  description: Idioma do teclado
                  example: pt
                rootdisksize:
                  type: number
                  description: Tamanho do disco principal
                  example: 8
                diskofferingid:
                  type: string
                  description: Identificador da oferta de disco
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                datadiskofferinglist:
                  type: string
                  description: Identificador de template de disco usado para criar discos adicionais; mutuamente exclusivo com o parâmetro diskofferingid
                size:
                  type: string
                  description: Tamanho do disco adicional; mutuamente exclusivo com o parâmetro diskofferingid
                  example: '32'
                networkids:
                  type: string
                  description: Lista de identificadores de redes, separados por vírgula
              required:
              - domainid
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: d5ed559b-ea55-4f22-a3b5-71500ca13f85
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-11T10:46:59-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.DeployVMCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: 98a0c830-16fd-43b5-aeba-00c65f403937
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine/{id}/stop:
    post:
      tags:
      - Cloud
      summary: Desligar máquina virtual
      description: Esta é a chamada que permite desligar uma máquina virtual. O ID retornado é o identificador de uma tarefa assíncrona que pode ser consultada posteriormente usando a consulta de tarefa, e o status retornado indica 0 = pendente, 1 = finalizado com sucesso, 2 = finalizado com erro.
      operationId: post_cloud_zone_virtual_machine_id_stop
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: id
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: forced
        in: query
        description: Indica que a máquina deve ser desligada sem aguardar os serviços serem finalizados
        required: false
        schema:
          type: boolean
          enum:
          - 'Default: `false`'
          example: 'true'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 9f29af3a-8e01-47f6-9022-df507a01b09c
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T16:43:07-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.StopVMCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: 926571e6-03af-4e9b-953e-031471ef2d46
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine/{id}/start:
    post:
      tags:
      - Cloud
      summary: Ligar máquina virtual
      description: Esta é a chamada que permite ligar uma máquina virtual. O ID retornado é o identificador de uma tarefa assíncrona que pode ser consultada posteriormente usando a consulta de tarefa, e o status retornado indica 0 = pendente, 1 = finalizado com sucesso, 2 = finalizado com erro.
      operationId: post_cloud_zone_virtual_machine_id_start
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: id
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 9c2ca118-bc7e-4b98-87a3-1497bdca6cae
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T16:50:39-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: 926571e6-03af-4e9b-953e-031471ef2d46
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine/{id}/reboot:
    post:
      tags:
      - Cloud
      summary: Reiniciar máquina virtual
      description: Esta é a chamada que permite reiniciar uma máquina virtual. O ID retornado é o identificador de uma tarefa assíncrona que pode ser consultada posteriormente usando a consulta de tarefa, e o status retornado indica 0 = pendente, 1 = finalizado com sucesso, 2 = finalizado com erro.
      operationId: post_cloud_zone_virtual_machine_id_reboot
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: id
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 9c2ca118-bc7e-4b98-87a3-1497bdca6cae
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T16:50:39-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: 926571e6-03af-4e9b-953e-031471ef2d46
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine/{id}/reset-password:
    post:
      tags:
      - Cloud
      summary: Redefinir senha de uma máquina virtual
      description: Esta é a chamada que permite redefinir a senha padrão de uma máquina virtual. O ID retornado é o identificador de uma tarefa assíncrona que pode ser consultada posteriormente usando a consulta de tarefa, e o status retornado indica 0 = pendente, 1 = finalizado com sucesso, 2 = finalizado com erro.
      operationId: post_cloud_zone_virtual_machine_id_reset_password
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: id
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 99e7e19c-0c4a-4e69-8cff-7e554ae265fa
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T17:00:25-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.ResetVMPasswordCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: 926571e6-03af-4e9b-953e-031471ef2d46
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine/{virtualmachineid}/service-offering/{serviceofferingid}:
    post:
      tags:
      - Cloud
      summary: Alterar oferta de serviço
      description: Esta é a chamada que permite alterar a oferta de serviço de uma máquina virtual.
      operationId: post_cloud_zone_virtual_machine_virtualmachineid_service_offering_serviceofferingid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: virtualmachineid
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: serviceofferingid
        in: path
        description: Identificador da oferta de serviço
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      cpu_number:
                        type: integer
                      cpu_speed:
                        type: integer
                      cpu_used:
                        type: string
                      created:
                        type: string
                      details:
                        type: object
                        properties:
                          Message.ReservedCapacityFreed.Flag:
                            type: string
                          hypervisortoolsversion:
                            type: string
                          platform:
                            type: string
                      disk_io_read:
                        type: integer
                      disk_io_write:
                        type: integer
                      disk_kbs_read:
                        type: integer
                      disk_kbs_write:
                        type: integer
                      display_name:
                        type: string
                      display_vm:
                        type: boolean
                      domain:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      instance_name:
                        type: string
                      memory:
                        type: integer
                      memory_int_free_kbs:
                        type: integer
                      memory_kbs:
                        type: integer
                      memory_target_kbs:
                        type: integer
                      network_kbs_read:
                        type: integer
                      network_kbs_write:
                        type: integer
                      nics:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            type:
                              type: string
                            ip4_address:
                              type: string
                            ip4_gateway:
                              type: string
                            ip4_netmask:
                              type: string
                            is_default:
                              type: boolean
                            mac_address:
                              type: string
                            traffic_type:
                              type: string
                            network:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                      password_enabled:
                        type: boolean
                      service_offering:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      state:
                        type: string
                      template:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                      user:
                        type: object
                        properties:
                          id:
                            type: string
                          username:
                            type: string
                      zone:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
              example:
                success: true
                data:
                  id: b8f06484-777c-4760-98ce-648650e30c29
                  name: teste-vm
                  cpu_number: 2
                  cpu_speed: 2000
                  cpu_used: 0.33%
                  created: '2021-08-04T16:07:05-03:00'
                  details:
                    Message.ReservedCapacityFreed.Flag: 'false'
                    hypervisortoolsversion: xenserver61
                    platform: device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;device_id:0001;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true
                  disk_io_read: 0
                  disk_io_write: 0
                  disk_kbs_read: 50630
                  disk_kbs_write: 22974
                  display_name: teste-vm
                  display_vm: true
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  instance_name: i-4-317-VM
                  memory: 8192
                  memory_int_free_kbs: 495
                  memory_kbs: 1048576
                  memory_target_kbs: 1048576
                  network_kbs_read: 641
                  network_kbs_write: 725
                  nics:
                  - id: 85a94317-b8e1-4828-bd23-d7ed8c468a23
                    type: Isolated
                    ip4_address: 10.1.1.172
                    ip4_gateway: 10.1.1.1
                    ip4_netmask: 255.255.255.0
                    is_default: true
                    mac_address: 02:00:56:01:00:01
                    traffic_type: Guest
                    network:
                      id: 6bc7a2cc-3990-4d9b-aacf-23132d9ccf55
                      name: teste-1
                  password_enabled: true
                  service_offering:
                    id: 254b562a-5df0-4207-948f-24499c3cd9d8
                    name: g.pequena SAS
                  state: Stopped
                  template:
                    id: 165a5720-bd22-4fd5-a3cd-2bff5c639f47
                    name: CentOS 8.2 x86_64
                    display_text: CentOS 8.2 x86_64
                  user:
                    id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                    username: '8'
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
        '409':
          description: O item a ser criado ja existe (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Not upgrading vm VM[User|i-4-317-VM] since it already has the requested service offering (g.pequena SAS)
  /cloud/{zone}/virtual-machine/{virtualmachineid}:
    delete:
      tags:
      - Cloud
      summary: Remover máquina virtual
      description: Esta é a chamada que permite remover uma máquina virtual.
      operationId: delete_cloud_zone_virtual_machine_virtualmachineid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: virtualmachineid
        in: path
        description: Identificador da máquina virtual
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: abd81dab-f663-4c46-a758-8343a5365830
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:10:31-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.DestroyVMCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: b8f06484-777c-4760-98ce-648650e30c29
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/disk-offering:
    get:
      tags:
      - Cloud
      summary: Listar ofertas de disco
      description: Esta é a chamada que retorna as informações de ofertas de disco.
      operationId: get_cloud_zone_disk_offering
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: query
        description: Identificador da oferta de disco
        required: false
        schema:
          type: string
          example: a889783d-c298-46ba-9bbd-9d9f8fad8d0c
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        cache_mode:
                          type: string
                        display_text:
                          type: string
                        size:
                          type: integer
                        created:
                          type: string
                        customized:
                          type: boolean
                        tags:
                          type: string
                        storage_type:
                          type: string
                        provisioning_type:
                          type: string
                        display_offering:
                          type: boolean
              example:
                success: true
                count: 1
                data:
                - id: a889783d-c298-46ba-9bbd-9d9f8fad8d0c
                  name: Disco SAS
                  cache_mode: none
                  display_text: Disco SAS
                  size: 0
                  created: '2020-12-07T20:57:47-03:00'
                  customized: true
                  tags: sas
                  storage_type: shared
                  provisioning_type: thin
                  display_offering: true
  /cloud/{zone}/service-offering:
    get:
      tags:
      - Cloud
      summary: Listar ofertas de serviço
      description: Esta é a chamada que retorna as informações de ofertas de serviço.
      operationId: get_cloud_zone_service_offering
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: query
        description: Identificador da oferta de serviço
        required: false
        schema:
          type: string
          example: a889783d-c298-46ba-9bbd-9d9f8fad8d0c
      - name: keyword
        in: query
        description: Parte do nome da oferta para realizar a busca
        required: false
        schema:
          type: string
          example: pequena
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        created:
                          type: string
                        display_text:
                          type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        cpu_number:
                          type: integer
                        cpu_speed:
                          type: integer
                        memory:
                          type: integer
                        storage_type:
                          type: string
                        provisioning_type:
                          type: string
                        offer_ha:
                          type: boolean
                        limit_cpu_use:
                          type: boolean
                        volatile:
                          type: boolean
                        host_tags:
                          type: string
                        system:
                          type: boolean
                        default_use:
                          type: boolean
                        tags:
                          type: string
              example:
                success: true
                count: 1
                data:
                - id: 254b562a-5df0-4207-948f-24499c3cd9d8
                  name: g.pequena SAS
                  created: '2020-12-07T20:52:17-03:00'
                  display_text: 2vpcu 8gb ram
                  domain:
                    id: b963b5eb-38d5-11eb-8fd9-a2047dc92680
                    name: ROOT
                  cpu_number: 2
                  cpu_speed: 2000
                  memory: 8192
                  storage_type: shared
                  provisioning_type: thin
                  offer_ha: false
                  limit_cpu_use: false
                  volatile: false
                  host_tags: g2
                  system: false
                  default_use: false
                  tags: sas
  /cloud/{zone}/volume/{volumeid}/snapshot-policy:
    get:
      tags:
      - Cloud
      summary: Listar políticas de backup de disco
      description: Esta é a chamada que retorna as políticas de backup de disco de uma conta ou projeto.
      operationId: get_cloud_zone_volume_volumeid_snapshot_policy
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da política de backup de disco
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        interval_type:
                          type: string
                        timezone:
                          type: string
                        for_display:
                          type: boolean
                        max_snaps:
                          type: integer
                        schedule:
                          type: string
              example:
                success: true
                count: 1
                data:
                - id: 4544ed47-d2b4-427a-a820-b9031a1d6ac8
                  name: Everyday at 01:00
                  interval_type: DAILY
                  timezone: America/Sao_Paulo
                  for_display: true
                  max_snaps: 3
                  schedule: 00:01
    post:
      tags:
      - Cloud
      summary: Criar política de backup de disco
      description: Esta é a chamada que permite criar uma regra de firewall de saída em uma rede existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_volume_volumeid_snapshot_policy
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                intervaltype:
                  type: string
                  enum:
                  - '`HOURLY`'
                  - '`DAILY`'
                  - '`WEEKLY`'
                  - '`MONTHLY`'
                  description: Periodicidade da política de backup
                  example: DAILY
                maxsnaps:
                  type: number
                  description: Quantidade máxima de backups de disco que serão mantidos
                  example: 8
                schedule:
                  type: string
                  description: 'Regra do agendamento no formato dependendo do valor de `intervaltype`, se HOURLY: MM, se DAILY => MM:HH, se WEEKLY => MM:HH:DD [1-7], se MONTHLY => MM:HH:DD [1-28]'
                  example: 00:30
                timezone:
                  type: string
                  description: Fuso horário
                  example: America/Sao_Paulo
              required:
              - intervaltype
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 4c61aec3-272d-4744-8543-39599a28e3f6
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T14:55:28-03:00'
                  command: org.apache.cloudstack.api.command.user.firewall.CreateEgressFirewallRuleCmd
                  instance_type: FirewallRule
                  instance_id: 4a6ef3e7-87fb-40c2-9798-1ac0af843274
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/volume/{volumeid}/snapshot-policy/{volumesnapshotpolicyid}:
    get:
      tags:
      - Cloud
      summary: Obter política de backup de disco
      description: Esta é a chamada que retorna os dados de uma política de backup de disco de uma conta ou projeto cloud.
      operationId: get_cloud_zone_volume_volumeid_snapshot_policy_volumesnapshotpolicyid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: volumesnapshotpolicyid
        in: path
        description: Identificador da política de backup de disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      interval_type:
                        type: string
                      timezone:
                        type: string
                      for_display:
                        type: boolean
                      max_snaps:
                        type: integer
                      schedule:
                        type: string
              example:
                success: true
                data:
                  id: 4544ed47-d2b4-427a-a820-b9031a1d6ac8
                  name: Everyday at 01:00
                  interval_type: DAILY
                  timezone: America/Sao_Paulo
                  for_display: true
                  max_snaps: 3
                  schedule: 00:01
    delete:
      tags:
      - Cloud
      summary: Remover política de backup de disco
      description: Esta é a chamada que permite remover uma política de backup de disco de uma conta ou projeto cloud.
      operationId: delete_cloud_zone_volume_volumeid_snapshot_policy_volumesnapshotpolicyid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: volumeid
        in: path
        description: Identificador do disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: volumesnapshotpolicyid
        in: path
        description: Identificador da política de backup de disco
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '204':
          description: Requisicao efetuada com sucesso, sem conteudo de retorno.
          content:
            application/json:
              example:
                success: true
  /cloud/{zone}/virtual-machine-snapshot:
    get:
      tags:
      - Cloud
      summary: Listar pontos de restauração
      description: Esta é a chamada que retorna as informações dos pontos de restauração de máquinas virtuais.
      operationId: get_cloud_zone_virtual_machine_snapshot
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da máquina virtual
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: virtualmachineid
        in: query
        description: Identificador da máquina virtual
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        created:
                          type: string
                        current:
                          type: boolean
                        display_name:
                          type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        hypervisor:
                          type: string
                        state:
                          type: string
                        tags:
                          type: array
                          items: {}
                        type:
                          type: string
                        virtual_machine:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            account:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            created:
                              type: string
                            details:
                              type: object
                              properties:
                                Message.ReservedCapacityFreed.Flag:
                                  type: string
                                hypervisortoolsversion:
                                  type: string
                                platform:
                                  type: string
                            display_name:
                              type: string
                            display_vm:
                              type: boolean
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            instance_name:
                              type: string
                            os:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                            state:
                              type: string
                            user:
                              type: object
                              properties:
                                id:
                                  type: string
                                username:
                                  type: string
                            zone:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                count: 1
                data:
                - id: de8acd0c-4ebd-4076-affa-9d9c650ec4bf
                  name: i-4-317-VM_VS_20210810192821
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                  created: '2021-08-10T16:28:21-03:00'
                  current: true
                  display_name: i-4-317-VM_VS_20210810192821
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  hypervisor: XenServer
                  state: Ready
                  tags: []
                  type: Disk
                  virtual_machine:
                    id: b8f06484-777c-4760-98ce-648650e30c29
                    name: teste-1
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    created: '2021-08-04T16:07:05-03:00'
                    details:
                      Message.ReservedCapacityFreed.Flag: 'false'
                      hypervisortoolsversion: xenserver61
                      platform: device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;device_id:0001;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true
                    display_name: teste-1
                    display_vm: true
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    instance_name: i-4-317-VM
                    os:
                      id: f71209ae-38d5-11eb-8fd9-a2047dc92680
                      name: CentOS 8
                    state: Stopped
                    user:
                      id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                      username: '8'
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
    post:
      tags:
      - Cloud
      summary: Criar ponto de restauração
      description: Esta é a chamada que permite criar um ponto de restauração de uma máquina virtual existente em uma conta ou projeto cloud.
      operationId: post_cloud_zone_virtual_machine_snapshot
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                virtualmachineid:
                  type: string
                  description: Identificador da máquina virtual
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                name:
                  type: string
                  description: Nome
                description:
                  type: string
                  description: Descrição
                quiscevm:
                  type: boolean
                  description: Pausa os processos da máquina virtual para executar o backup
                  example: true
                snapshotmemory:
                  type: boolean
                  description: Inclui os dados da memória RAM no backup
                  example: true
              required:
              - virtualmachineid
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 386ae07c-724e-4cc1-aece-7502211efb97
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:28:21-03:00'
                  command: org.apache.cloudstack.api.command.user.vmsnapshot.CreateVMSnapshotCmd
                  instance_type: None
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine-snapshot/{virtualmachinesnapshotid}:
    get:
      tags:
      - Cloud
      summary: Obter ponto de restauração
      description: Esta é a chamada que retorna os dados de um ponto de restauração de uma máquina virtual de uma conta ou projeto cloud.
      operationId: get_cloud_zone_virtual_machine_snapshot_virtualmachinesnapshotid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: virtualmachinesnapshotid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      current:
                        type: boolean
                      display_name:
                        type: string
                      domain:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      hypervisor:
                        type: string
                      state:
                        type: string
                      tags:
                        type: array
                        items: {}
                      type:
                        type: string
                      virtual_machine:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          account:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          created:
                            type: string
                          details:
                            type: object
                            properties:
                              Message.ReservedCapacityFreed.Flag:
                                type: string
                              hypervisortoolsversion:
                                type: string
                              platform:
                                type: string
                          display_name:
                            type: string
                          display_vm:
                            type: boolean
                          domain:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          instance_name:
                            type: string
                          os:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                          state:
                            type: string
                          user:
                            type: object
                            properties:
                              id:
                                type: string
                              username:
                                type: string
                          zone:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                      zone:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
              example:
                success: true
                data:
                  id: de8acd0c-4ebd-4076-affa-9d9c650ec4bf
                  name: i-4-317-VM_VS_20210810192821
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                  created: '2021-08-10T16:28:21-03:00'
                  current: true
                  display_name: i-4-317-VM_VS_20210810192821
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  hypervisor: XenServer
                  state: Ready
                  tags: []
                  type: Disk
                  virtual_machine:
                    id: b8f06484-777c-4760-98ce-648650e30c29
                    name: teste-1
                    account:
                      id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                      name: '8'
                    created: '2021-08-04T16:07:05-03:00'
                    details:
                      Message.ReservedCapacityFreed.Flag: 'false'
                      hypervisortoolsversion: xenserver61
                      platform: device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;device_id:0001;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true
                    display_name: teste-1
                    display_vm: true
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                    instance_name: i-4-317-VM
                    os:
                      id: f71209ae-38d5-11eb-8fd9-a2047dc92680
                      name: CentOS 8
                    state: Stopped
                    user:
                      id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                      username: '8'
                    zone:
                      id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                      name: Escritorio
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
    delete:
      tags:
      - Cloud
      summary: Remover ponto de restauração
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover um ponto de restauração de uma máquina virtual de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_virtual_machine_snapshot_virtualmachinesnapshotid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: virtualmachinesnapshotid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 7dac81c2-01a7-4636-bacc-aac6c8a5daa9
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:42:01-03:00'
                  command: org.apache.cloudstack.api.command.user.vmsnapshot.DeleteVMSnapshotCmd
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/virtual-machine-snapshot/{virtualmachinesnapshotid}/revert:
    post:
      tags:
      - Cloud
      summary: Reverter ponto de restauração
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite reverter um ponto de restauração em uma máquina virtual de uma conta ou projeto cloud.'
      operationId: post_cloud_zone_virtual_machine_snapshot_virtualmachinesnapshotid_revert
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: virtualmachinesnapshotid
        in: path
        description: Identificador do ponto de restauração
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 02fb6f13-eb8d-4e6b-9b1f-b2f2623a1345
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T16:41:34-03:00'
                  command: org.apache.cloudstack.api.command.admin.vmsnapshot.RevertToVMSnapshotCmdByAdmin
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/project:
    get:
      tags:
      - Cloud
      summary: Listar projetos
      description: Esta é a chamada que retorna os projetos existentes em uma conta cloud.
      operationId: get_cloud_zone_project
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: name
        in: query
        description: Nome do projeto
        required: false
        schema:
          type: string
          example: meu-projeto
      - name: id
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            account_type:
                              type: string
                            role:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                type:
                                  type: string
                            domain:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                path:
                                  type: string
                            bytes_received:
                              type: integer
                            bytes_sent:
                              type: integer
                            secondarystorage_total:
                              type: number
                            state:
                              type: string
                            is_default:
                              type: boolean
                            users:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  username:
                                    type: string
                                  email:
                                    type: string
                                  first_name:
                                    type: string
                                  last_name:
                                    type: string
                                  state:
                                    type: string
                                  timezone:
                                    type: string
                                  user_source:
                                    type: string
                                  created:
                                    type: string
                                  account:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                  domain:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                  role:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                      type:
                                        type: string
                                  is_caller_child_domain:
                                    type: boolean
                                  is_default:
                                    type: boolean
                        cpu_available:
                          type: integer
                        cpu_limit:
                          type: integer
                        cpu_total:
                          type: integer
                        display_text:
                          type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        ip_available:
                          type: integer
                        ip_limit:
                          type: integer
                        ip_total:
                          type: integer
                        memory_available:
                          type: number
                        memory_limit:
                          type: number
                        memory_total:
                          type: number
                        network_available:
                          type: integer
                        network_limit:
                          type: integer
                        network_total:
                          type: integer
                        primarystorage_available:
                          type: number
                        primarystorage_limit:
                          type: number
                        primarystorage_total:
                          type: number
                        project_account_name:
                          type: string
                        secondarystorage_available:
                          type: number
                        secondarystorage_limit:
                          type: number
                        secondarystorage_total:
                          type: number
                        snapshot_available:
                          type: integer
                        snapshot_limit:
                          type: integer
                        snapshot_total:
                          type: integer
                        state:
                          type: string
                        template_available:
                          type: integer
                        template_limit:
                          type: integer
                        template_total:
                          type: integer
                        vm_available:
                          type: integer
                        vm_limit:
                          type: integer
                        vm_running:
                          type: integer
                        vm_stopped:
                          type: integer
                        vm_total:
                          type: integer
                        volume_available:
                          type: integer
                        volume_limit:
                          type: integer
                        volume_total:
                          type: integer
                        vpc_available:
                          type: integer
                        vpc_limit:
                          type: integer
                        vpc_total:
                          type: integer
              example:
                success: true
                count: 1
                data:
                - id: a8fb8d6b-818f-457a-a96e-0146e6996e4e
                  name: '8.88'
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                    account_type: '0'
                    role:
                      id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                      name: User
                      type: User
                    domain:
                      id: f8d35132-668a-43b3-9730-528b41ee2d20
                      name: skycloud.prv
                      path: ROOT/skycloud.prv
                    bytes_received: 3208666329
                    bytes_sent: 110646473655
                    secondarystorage_total: 0.0
                    state: enabled
                    is_default: false
                    users:
                    - id: 4731d8e5-95e7-4bd0-a8dc-5868262908c0
                      username: '8'
                      email: projeto@cliente.com.br
                      first_name: Projeto Cliente
                      last_name: Cloud
                      state: enabled
                      timezone: America/Sao_Paulo
                      user_source: native
                      created: '2021-04-28T16:42:51-03:00'
                      account:
                        id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                        name: '8'
                      domain:
                        id: f8d35132-668a-43b3-9730-528b41ee2d20
                      role:
                        id: f5a791cf-38d5-11eb-8fd9-a2047dc92680
                        name: User
                        type: User
                      is_caller_child_domain: false
                      is_default: false
                  cpu_available: 38
                  cpu_limit: 40
                  cpu_total: 2
                  display_text: Projeto Cliente
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  ip_available: 19
                  ip_limit: 20
                  ip_total: 1
                  memory_available: 32768.0
                  memory_limit: 40960.0
                  memory_total: 8192.0
                  network_available: 19
                  network_limit: 20
                  network_total: 1
                  primarystorage_available: 168.0
                  primarystorage_limit: 200.0
                  primarystorage_total: 32.0
                  project_account_name: PrjAcct-8.88-2
                  secondarystorage_available: 399.99997
                  secondarystorage_limit: 400.0
                  secondarystorage_total: 3.0040741e-05
                  snapshot_available: 19
                  snapshot_limit: 20
                  snapshot_total: 1
                  state: Active
                  template_available: 20
                  template_limit: 20
                  template_total: 0
                  vm_available: 19
                  vm_limit: 20
                  vm_running: 1
                  vm_stopped: 0
                  vm_total: 1
                  volume_available: 17
                  volume_limit: 20
                  volume_total: 3
                  vpc_available: 20
                  vpc_limit: 20
                  vpc_total: 0
    post:
      tags:
      - Cloud
      summary: Criar projeto
      description: Cria um novo projeto CloudStack na zona informada.
      operationId: post_cloud_zone_project
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - displaytext
              - name
              - account
              - domainid
              properties:
                displaytext:
                  type: string
                  description: Descrição do projeto.
                name:
                  type: string
                  description: Nome do projeto.
                account:
                  type: integer
                  description: ID da conta CloudStack.
                domainid:
                  type: string
                  format: uuid
                  description: ID do domínio CloudStack.
      responses:
        '200':
          description: Projeto criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/project'' --data "displaytext=Meu+Projeto&name=meu-projeto&account=8&domainid=936122fb-1bd6-4482-b43d-80bb72794b18" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/network:
    get:
      tags:
      - Cloud
      summary: Listar redes
      description: Esta é a chamada que retorna as redes de uma conta ou projeto.
      operationId: get_cloud_zone_network
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da rede
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        display_text:
                          type: string
                        broadcast_domain_type:
                          type: string
                        traffic_type:
                          type: string
                        gateway:
                          type: string
                        netmask:
                          type: string
                        cidr:
                          type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        network_offering:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                            conserve_mode:
                              type: boolean
                            availability:
                              type: string
                        is_system:
                          type: boolean
                        state:
                          type: string
                        related:
                          type: string
                        dns1:
                          type: string
                        type:
                          type: string
                        acl_type:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        network_domain:
                          type: string
              example:
                success: true
                count: 1
                data:
                - id: 42f85844-17f5-4162-b744-4a43ffce5b09
                  name: teste-1
                  display_text: teste-1
                  broadcast_domain_type: Vlan
                  traffic_type: Guest
                  gateway: 10.1.1.1
                  netmask: 255.255.255.0
                  cidr: 10.1.1.0/24
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
                  network_offering:
                    id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                    name: DefaultIsolatedNetworkOfferingWithSourceNatService
                    display_text: Offering for Isolated networks with Source Nat service enabled
                    conserve_mode: true
                    availability: Required
                  is_system: false
                  state: Allocated
                  related: 42f85844-17f5-4162-b744-4a43ffce5b09
                  dns1: 200.187.65.254
                  type: Isolated
                  acl_type: Account
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  network_domain: skycloud.prv
    post:
      tags:
      - Cloud
      summary: Criar Rede
      description: Esta é a chamada que permite criar uma rede em uma conta ou projeto cloud.
      operationId: post_cloud_zone_network
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome da rede
                  example: service
                displaytext:
                  type: string
                  description: Descrição da rede
                  example: database
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: string
                  description: Identificador da conta
                  example: '8'
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
              required:
              - name
              - displaytext
              - domainid
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      display_text:
                        type: string
                      broadcast_domain_type:
                        type: string
                      traffic_type:
                        type: string
                      gateway:
                        type: string
                      netmask:
                        type: string
                      cidr:
                        type: string
                      zone:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      network_offering:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          display_text:
                            type: string
                          conserve_mode:
                            type: boolean
                          availability:
                            type: string
                      is_system:
                        type: boolean
                      state:
                        type: string
                      related:
                        type: string
                      dns1:
                        type: string
                      type:
                        type: string
                      acl_type:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      domain:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      network_domain:
                        type: string
              example:
                success: true
                data:
                  id: fe2e85a2-85e3-46f5-b72b-0e4a93563054
                  name: Rede teste
                  display_text: Rede teste
                  broadcast_domain_type: Vlan
                  traffic_type: Guest
                  gateway: 10.1.1.1
                  netmask: 255.255.255.0
                  cidr: 10.1.1.0/24
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
                  network_offering:
                    id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                    name: DefaultIsolatedNetworkOfferingWithSourceNatService
                    display_text: Offering for Isolated networks with Source Nat service enabled
                    conserve_mode: true
                    availability: Required
                  is_system: false
                  state: Allocated
                  related: fe2e85a2-85e3-46f5-b72b-0e4a93563054
                  dns1: 200.187.65.254
                  type: Isolated
                  acl_type: Account
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  network_domain: skycloud.prv
  /cloud/{zone}/network/{networkid}:
    get:
      tags:
      - Cloud
      summary: Obter rede
      description: Esta é a chamada que retorna as redes de uma conta ou projeto.
      operationId: get_cloud_zone_network_networkid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: networkid
        in: path
        description: Identificador da rede
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        display_text:
                          type: string
                        broadcast_domain_type:
                          type: string
                        traffic_type:
                          type: string
                        gateway:
                          type: string
                        netmask:
                          type: string
                        cidr:
                          type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        network_offering:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            display_text:
                              type: string
                            conserve_mode:
                              type: boolean
                            availability:
                              type: string
                        is_system:
                          type: boolean
                        state:
                          type: string
                        related:
                          type: string
                        dns1:
                          type: string
                        type:
                          type: string
                        acl_type:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        network_domain:
                          type: string
              example:
                success: true
                count: 1
                data:
                - id: 42f85844-17f5-4162-b744-4a43ffce5b09
                  name: teste-1
                  display_text: teste-1
                  broadcast_domain_type: Vlan
                  traffic_type: Guest
                  gateway: 10.1.1.1
                  netmask: 255.255.255.0
                  cidr: 10.1.1.0/24
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
                  network_offering:
                    id: 0d3a7306-ee35-4d77-a917-1bb2a0210aeb
                    name: DefaultIsolatedNetworkOfferingWithSourceNatService
                    display_text: Offering for Isolated networks with Source Nat service enabled
                    conserve_mode: true
                    availability: Required
                  is_system: false
                  state: Allocated
                  related: 42f85844-17f5-4162-b744-4a43ffce5b09
                  dns1: 200.187.65.254
                  type: Isolated
                  acl_type: Account
                  account:
                    id: cf6493d4-a6d7-429e-8418-c87476ce0c64
                    name: '8'
                  domain:
                    id: f8d35132-668a-43b3-9730-528b41ee2d20
                    name: skycloud.prv
                  network_domain: skycloud.prv
    put:
      tags:
      - Cloud
      summary: Atualizar Rede
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite atualizar uma rede de uma conta ou projeto cloud.'
      operationId: put_cloud_zone_network_networkid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: networkid
        in: path
        description: Identificador da rede
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome da rede
                  example: service
                displaytext:
                  type: string
                  description: Descrição da rede
                  example: database
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: string
                  description: Identificador da conta
                  example: '8'
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                networkdomain:
                  type: string
                  description: Domínio da rede local
                  example: company.local
                externalid:
                  type: string
                  description: Identificador da rede em sistema externo
              required:
              - name
              - displaytext
              - domainid
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 382e5eaf-ed5b-447f-bdec-a2e345e9e8c0
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T12:47:53-03:00'
                  command: org.apache.cloudstack.api.command.admin.network.UpdateNetworkCmdByAdmin
                  process_status: 0
                  result_code: 0
                  status: 0
    delete:
      tags:
      - Cloud
      summary: Remover Rede
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite remover uma rede de uma conta ou projeto cloud.'
      operationId: delete_cloud_zone_network_networkid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: networkid
        in: path
        description: Identificador da rede
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 0eba2e15-e16d-442b-b732-b682d0a1f9fc
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T14:25:33-03:00'
                  command: org.apache.cloudstack.api.command.user.network.DeleteNetworkCmd
                  instance_type: Network
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/network/{networkid}/ip:
    post:
      tags:
      - Cloud
      summary: Associar IP público
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite associar um novo IP público à uma rede.'
      operationId: post_cloud_zone_network_networkid_ip
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: networkid
        in: path
        description: Identificador da rede
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domainid:
                  type: string
                  description: Identificador do domínio
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                account:
                  type: string
                  description: Identificador da conta
                  example: '8'
                projectid:
                  type: string
                  description: Identificador do projeto
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                ipaddress:
                  type: string
                  description: IP público
                  example: 200.187.65.97
              required:
              - domainid
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: ccd9072e-efae-44a8-888f-fabf4681556c
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T12:53:42-03:00'
                  command: org.apache.cloudstack.api.command.admin.address.AssociateIPAddrCmdByAdmin
                  instance_type: IpAddress
                  instance_id: 326a8104-3478-4f10-9109-fe0bc2a9efdc
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/network/{networkid}/ip/{ipaddressid}:
    delete:
      tags:
      - Cloud
      summary: Desassociar IP público
      description: '*[ASSÍNCRONO]* Esta é a chamada que permite associar um novo IP público à uma rede.'
      operationId: delete_cloud_zone_network_networkid_ip_ipaddressid
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: networkid
        in: path
        description: Identificador da rede
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: ipaddressid
        in: path
        description: Identificador do IP
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: db240800-5c23-4a58-ba3e-82ecc5ffd35d
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  created: '2021-08-10T14:24:02-03:00'
                  command: org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd
                  instance_type: IpAddress
                  instance_id: 326a8104-3478-4f10-9109-fe0bc2a9efdc
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/tag:
    get:
      tags:
      - Cloud
      summary: Listar Tags
      description: Esta é a chamada que retorna as informações de Tags dos recursos de cloud.
      operationId: get_cloud_zone_tag
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: key
        in: query
        description: Nome da tag
        required: false
        schema:
          type: string
          example: service
      - name: value
        in: query
        description: Valor da tag
        required: false
        schema:
          type: string
          example: database
      - name: resourceid
        in: query
        description: Identificador do recurso associado
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: resourcetype
        in: query
        description: Tipo do recurso associado
        required: false
        schema:
          type: string
          enum:
          - '`UserVm`'
          example: UserVm
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        value:
                          type: string
                        resource:
                          type: object
                          properties:
                            id:
                              type: string
                            type:
                              type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                data:
                - key: chave3
                  value: valor3
                  resource:
                    id: 926571e6-03af-4e9b-953e-031471ef2d46
                    type: UserVm
                  account:
                    id: 956e9d02-859c-4649-9526-0e7631fd5c34
                    name: '8'
                  domain:
                    id: 936122fb-1bd6-4482-b43d-80bb72794b18
                    name: skycloud.prv
    post:
      tags:
      - Cloud
      summary: Criar Tag
      description: Esta é a chamada que permite criar uma nova Tag relacionada à um recurso. O ID retornado é o identificador de uma tarefa assíncrona que pode ser consultada posteriormente usando a consulta de tarefa, e o status retornado indica 0 = pendente, 1 = finalizado com sucesso, 2 = finalizado com erro.
      operationId: post_cloud_zone_tag
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                key:
                  type: string
                  description: Nome da tag
                  example: service
                value:
                  type: string
                  description: Valor da tag
                  example: database
                resourceid:
                  type: string
                  description: Identificador do recurso associado
                  example: 936122fb-1bd6-4482-b43d-80bb72794b18
                resourcetype:
                  type: string
                  enum:
                  - '`UserVm`'
                  description: Tipo do recurso associado
                  example: UserVm
              required:
              - key
              - value
              - resourceid
              - resourcetype
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 9ca15597-5fca-40d5-8916-c8a418410a0e
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T16:10:20-03:00'
                  command: org.apache.cloudstack.api.command.user.tag.CreateTagsCmd
                  process_status: 0
                  result_code: 0
                  status: 0
    delete:
      tags:
      - Cloud
      summary: Delete Tag
      description: Esta é a chamada que permite remover uma Tag relacionada à um recurso. O ID retornado é o identificador de uma tarefa assíncrona que pode ser consultada posteriormente usando a consulta de tarefa, e o status retornado indica 0 = pendente, 1 = finalizado com sucesso, 2 = finalizado com erro.
      operationId: delete_cloud_zone_tag
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      completed:
                        type: string
                      command:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      result_type:
                        type: string
                      status:
                        type: integer
                      result:
                        type: object
                        properties:
                          success:
                            type: boolean
              example:
                success: true
                data:
                  id: 9c77704e-12ab-4f5e-9dce-cc78c5aa7298
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T16:12:48-03:00'
                  completed: '2020-08-12T16:12:48-03:00'
                  command: org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd
                  process_status: 0
                  result_code: 0
                  result_type: object
                  status: 1
                  result:
                    success: true
  /cloud/{zone}/job/{job}:
    get:
      tags:
      - Cloud
      summary: Exibir Tarefa
      description: Esta é a chamada que retorna o resultado da execução de uma tarefa assíncrona.
      operationId: get_cloud_zone_job_job
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: string
      - name: job
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      account:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                      created:
                        type: string
                      command:
                        type: string
                      instance_type:
                        type: string
                      instance_id:
                        type: string
                      process_status:
                        type: integer
                      result_code:
                        type: integer
                      status:
                        type: integer
              example:
                success: true
                data:
                  id: 9acb9e69-ead6-42f0-b4c7-bb588f30ff83
                  account:
                    id: 9b259da5-aa9f-11ea-8556-c61639fe9620
                    name: admin
                  created: '2020-08-12T17:16:48-03:00'
                  command: org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin
                  instance_type: VirtualMachine
                  instance_id: 926571e6-03af-4e9b-953e-031471ef2d46
                  process_status: 0
                  result_code: 0
                  status: 0
  /cloud/{zone}/template:
    get:
      tags:
      - Cloud
      summary: Listar templates
      description: Esta é a chamada que retorna os templates disponíveis.
      operationId: get_cloud_zone_template
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: string
      - name: templatefilter
        in: query
        description: Filtra pelo tipo do template
        required: false
        schema:
          type: string
          enum:
          - featured
          - self
          - selfexecutable
          - sharedexecutable
          - executable
          - community
          example: featured
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador do template
        required: false
        schema:
          type: string
          example: a889783d-c298-46ba-9bbd-9d9f8fad8d0c
      - name: keyword
        in: query
        description: Parte do nome do template para realizar a busca
        required: false
        schema:
          type: string
          example: pequena
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        bits:
                          type: integer
                        created:
                          type: string
                        cross_zones:
                          type: boolean
                        details:
                          type: object
                          properties:
                            hypervisortoolsversion:
                              type: string
                        dinamically_scalable:
                          type: boolean
                        direct_download:
                          type: boolean
                        display_text:
                          type: string
                        extractable:
                          type: boolean
                        format:
                          type: string
                        hypervisor:
                          type: string
                        public:
                          type: boolean
                        ready:
                          type: boolean
                        requires_hvm:
                          type: boolean
                        password_enabled:
                          type: boolean
                        size:
                          type: integer
                        ssh_key_enabled:
                          type: boolean
                        physical_size:
                          type: integer
                        status:
                          type: string
                        tags:
                          type: array
                          items:
                            type: object
                            properties:
                              key:
                                type: string
                              value:
                                type: string
                              resource:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  type:
                                    type: string
                              account:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                              domain:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                        template_type:
                          type: string
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
              example:
                success: true
                count: 1
                data:
                - id: 165a5720-bd22-4fd5-a3cd-2bff5c639f47
                  name: CentOS 8.2 x86_64
                  account:
                    id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                    name: admin
                  bits: 0
                  created: '2020-12-09T15:04:00-03:00'
                  cross_zones: true
                  details:
                    hypervisortoolsversion: xenserver61
                  dinamically_scalable: false
                  direct_download: false
                  display_text: CentOS 8.2 x86_64
                  extractable: false
                  format: VHD
                  hypervisor: XenServer
                  public: true
                  ready: true
                  requires_hvm: true
                  password_enabled: true
                  size: 8589934592
                  ssh_key_enabled: false
                  physical_size: 2008809984
                  status: Download Complete
                  tags:
                  - key: login
                    value: centos
                    resource:
                      id: 165a5720-bd22-4fd5-a3cd-2bff5c639f47
                      type: Template
                    account:
                      id: ff975f77-38d5-11eb-8fd9-a2047dc92680
                      name: admin
                    domain:
                      id: b963b5eb-38d5-11eb-8fd9-a2047dc92680
                      name: ROOT
                  template_type: USER
                  zone:
                    id: 7fc5a8e5-6a92-4538-8d4c-bdfa2e8b38e5
                    name: Escritorio
  /cloud/{zone}/usage:
    get:
      tags:
      - Cloud
      summary: Listar uso
      description: Esta é a chamada que retorna as informações de uso.
      operationId: get_cloud_zone_usage
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: projectid
        in: query
        description: Identificador do projeto
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: networkid
        in: query
        description: Identificador da rede
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: datefrom
        in: query
        description: Data de início da filtragem
        required: false
        schema:
          type: string
          enum:
          - 'Default: `primeiro dia do mês corrente`'
          example: '2020-07-01'
      - name: dateto
        in: query
        description: Data final da filtragem
        required: false
        schema:
          type: string
          enum:
          - 'Default: `dia atual`'
          example: database
      - name: type
        in: query
        description: Tipo do uso, sendo 4 = tráfego enviado, 5 = tráfego recebido
        required: false
        schema:
          type: string
          enum:
          - '`4`'
          - '`5`'
          example: '4'
      - name: detailed
        in: query
        description: Indica se o uso do período deve ser detalhado na resposta
        required: false
        schema:
          type: boolean
          example: 'true'
      - name: page
        in: query
        required: false
        schema:
          type: string
      - name: pagesize
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        description:
                          type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        start_date:
                          type: string
                        end_date:
                          type: string
                        network:
                          type: object
                          properties:
                            id:
                              type: string
                        raw_usage:
                          type: integer
                        type:
                          type: string
                        usage:
                          type: string
                        usage_id:
                          type: string
                        usage_type:
                          type: integer
                        zone:
                          type: object
                          properties:
                            id:
                              type: string
              example:
                success: true
                data:
                - account:
                    id: 9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6
                    name: '8'
                  description: Bytes received by network hypnobox (94c0fd85-ba06-4015-ad46-0c2707187431) using router r-810-VM (9083d249-267a-4a98-939d-a67d1b6feb3b)
                  domain:
                    id: 9e1c4859-9cf4-4414-a218-160b05b9f157
                    name: skycloud.prv
                  start_date: 2020-05-21'T'00:00:00+00:00
                  end_date: 2020-05-21'T'23:59:59+00:00
                  network:
                    id: 94c0fd85-ba06-4015-ad46-0c2707187431
                  raw_usage: 5692250129
                  type: DomainRouter
                  usage: 5692250129 bytes received
                  usage_id: 9083d249-267a-4a98-939d-a67d1b6feb3b
                  usage_type: 5
                  zone:
                    id: 94c526f8-52a2-4e2e-8d08-76eae35913a4
                - account:
                    id: 9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6
                    name: '8'
                  description: Bytes sent by network hypnobox (94c0fd85-ba06-4015-ad46-0c2707187431) using router r-810-VM (9083d249-267a-4a98-939d-a67d1b6feb3b)
                  domain:
                    id: 9e1c4859-9cf4-4414-a218-160b05b9f157
                    name: skycloud.prv
                  start_date: 2020-05-21'T'00:00:00+00:00
                  end_date: 2020-05-21'T'23:59:59+00:00
                  network:
                    id: 94c0fd85-ba06-4015-ad46-0c2707187431
                  raw_usage: 90677846838
                  type: DomainRouter
                  usage: 90677846838 bytes sent
                  usage_id: 9083d249-267a-4a98-939d-a67d1b6feb3b
                  usage_type: 4
                  zone:
                    id: 94c526f8-52a2-4e2e-8d08-76eae35913a4
  /cloud/{zone}/vpn-connection:
    get:
      tags:
      - Cloud
      summary: Listar VPNs
      description: Esta é a chamada que retorna as informações de conexões VPN.
      operationId: get_cloud_zone_vpn_connection
      parameters:
      - name: zone
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      - name: account
        in: query
        description: Identificador do cliente
        required: false
        schema:
          type: number
          example: '8'
      - name: domainid
        in: query
        description: Identificador do domínio
        required: true
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: id
        in: query
        description: Identificador da máquina virtual
        required: false
        schema:
          type: string
          example: 936122fb-1bd6-4482-b43d-80bb72794b18
      - name: page
        in: query
        description: Página atual da paginação
        required: false
        schema:
          type: number
          example: '1'
      - name: pagesize
        in: query
        description: Quantidade de items retornados por página
        required: false
        schema:
          type: number
          example: '10'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        account:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        domain:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                        state:
                          type: string
                        created:
                          type: string
                        cidr_list:
                          type: string
                        dpd:
                          type: boolean
                        esp_lifetime:
                          type: integer
                        esp_policy:
                          type: string
                        force_encapsulation:
                          type: boolean
                        for_display:
                          type: boolean
                        gateway:
                          type: string
                        ike_lifetime:
                          type: integer
                        ike_policy:
                          type: string
                        ipsec_psk:
                          type: string
                        passive:
                          type: boolean
                        public_ip:
                          type: string
                        s2s_customer_gateway_id:
                          type: string
                        s2s_vpn_gateway_id:
                          type: string
              example:
                success: true
                data:
                - id: 9169bcec-da13-46c1-87e0-e1dfb22e6bd9
                  account:
                    id: 9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6
                    name: '8'
                  domain:
                    id: 9e1c4859-9cf4-4414-a218-160b05b9f157
                    name: skycloud.prv
                  state: Connected
                  created: '2020-07-06T15:25:50-03:00'
                  cidr_list: 192.168.1.0/24,192.168.101.0/24
                  dpd: true
                  esp_lifetime: 3600
                  esp_policy: 3des-sha256;modp1024
                  force_encapsulation: false
                  for_display: true
                  gateway: 200.200.200.200
                  ike_lifetime: 28800
                  ike_policy: 3des-sha256;modp1024
                  ipsec_psk: dsadsadadasdgnkRWYsNFN4i99
                  passive: false
                  public_ip: 200.200.200.200
                  s2s_customer_gateway_id: 98cfa935-7dc6-4acc-8c74-1758c5c27754
                  s2s_vpn_gateway_id: 9847c620-5eef-4b4c-ab4f-472a0b1be05d
                - id: 9e700dca-28d4-481a-868c-2833c74a69c8
                  account:
                    id: 9e6ad71d-1e19-4e1f-accd-e1e718f9eeb6
                    name: '8'
                  domain:
                    id: 9e1c4859-9cf4-4414-a218-160b05b9f157
                    name: skycloud.prv
                  state: Pending
                  created: '2020-02-28T13:19:33-03:00'
                  cidr_list: 10.16.0.0/24
                  dpd: false
                  esp_lifetime: 3600
                  esp_policy: aes128-sha1
                  force_encapsulation: false
                  for_display: true
                  gateway: 200.200.200.200
                  ike_lifetime: 86400
                  ike_policy: aes128-sha1;modp1536
                  ipsec_psk: sadadasdadKtEfyXU
                  passive: false
                  public_ip: 200.200.200.200
                  s2s_customer_gateway_id: 9d6c9185-4697-45c1-9461-78a97627a20f
                  s2s_vpn_gateway_id: 934eeb10-4c8b-4314-bca3-e1f80ea3d0a5
  /cloud/zone:
    get:
      tags:
      - Cloud
      summary: Listar zonas
      description: Esta é a chamada que retorna uma lista das zonas de cloud que o cliente tem acesso
      operationId: get_cloud_zone
      parameters:
      - name: clientId
        in: query
        description: Identificador do cliente
        required: true
        schema:
          type: number
          example: '8'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Equinix - SP1\",\n            \"domain\": \"9e1c4859-9cf4-4414-a218-160b05b9f157\",\n            \"count\": 2\n        },\n        {\n            \"id\": 2,\n            \"name\": \"Ascenty - SP1\",\n            \"domain\": \"9e1c4859-9cf4-4414-a218-160b05b9f157\",\n            \"count\": 7\n        }\n}"
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/zone?clientId={clientId}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain/{domain}/app-feature:
    get:
      tags:
      - Domínios
      summary: Listar funcionalidade
      description: Esta chamada retorna a lista completa de aplicações ou funcionalidades associadas ao domínio.
      operationId: get_domain_domain_app_feature
      parameters:
      - name: domain
        in: path
        description: Domínio
        required: true
        schema:
          type: string
          example: minhaempresa.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": [\n        \"skybox.enabledeck\": \"Enable skybox deck app\",\n        \"skybox.enabletalk\": \"Enable conference/talk app\"\n    ]\n}"
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Domínio não encontrado
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/minhaempresa.com.br/app-feature'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/app-feature/{featurekey}:
    get:
      tags:
      - Domínios
      summary: Consultar funcionalidade
      description: Esta chamada verifica se uma determinada aplicação ou funcionalidade está ativa para o domínio informado.
      operationId: get_domain_domain_app_feature_featurekey
      parameters:
      - name: domain
        in: path
        description: Domínio
        required: true
        schema:
          type: string
          example: minhaempresa.com.br
      - name: featurekey
        in: path
        description: Nome da feature a ser consultada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      isEnable:
                        type: boolean
                      flag:
                        type: string
                      details:
                        type: string
                      message:
                        type: string
              example:
                success: true
                data:
                  isEnable: true
                  flag: skybox.enabledeck
                  details: Enable skybox deck app
                  message: It has the skybox.enabledeck enabled.
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/minhaempresa.com.br/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Domínios
      summary: Habilitar funcionalidade
      description: Esta chamada habilita a aplicação ou funcionalidade desejada para o domínio.
      operationId: post_domain_domain_app_feature_featurekey
      parameters:
      - name: domain
        in: path
        description: Domínio
        required: true
        schema:
          type: string
          example: minhaempresa.com.br
      - name: featurekey
        in: path
        description: Feature a ser habilitada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: string
              example:
                success: true
                data:
                - skybox.enabledeck
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain/minhaempresa.com.br/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Domínios
      summary: Desabilitar funcionalidade
      description: Esta chamada desabilita a aplicação ou funcionalidade desejada para o domínio.
      operationId: delete_domain_domain_app_feature_featurekey
      parameters:
      - name: domain
        in: path
        description: Domínio
        required: true
        schema:
          type: string
          example: minhaempresa.com.br
      - name: featurekey
        in: path
        description: Feature a ser desabilitada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: string
              example:
                success: true
                data:
                - skybox.enabledeck
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain/dominio.com.br/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/profile:
    get:
      tags:
      - Domínios
      summary: Listar perfis do domínio
      description: Esta chamada retorna a lista de perfis disponíveis para o domínio informado.
      operationId: get_domain_domain_profile
      parameters:
      - name: domain
        in: path
        description: Domínio
        required: true
        schema:
          type: string
          example: minhaempresa.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: object
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            owner:
                              type: string
                      total:
                        type: integer
              example:
                success: true
                message:
                  result:
                  - id: TG9zIEluY3N8MTYzNjU=
                    name: Los Incs
                    owner: '16365'
                  total: 1
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
        '404':
          description: O item selecionado nao existe.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/minhaempresa.com.br/profile'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/profile/apply:
    post:
      tags:
      - Domínios
      summary: Aplicar perfil nas caixas postais
      description: Esta chamada aplica um perfil às caixas postais do domínio informado.
      operationId: post_domain_domain_profile_apply
      parameters:
      - name: domain
        in: path
        description: Domínio
        required: true
        schema:
          type: string
          example: minhaempresa.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                templateId:
                  type: string
                  description: Id do template
                  example: TG9zIEluY3N8MTYzNjU=
                templateForce:
                  type: boolean
                  description: Sobrescrever perfis existentes
                  example: true
              required:
              - templateId
              - templateForce
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      total:
                        type: integer
                      applied:
                        type: integer
                      skipped:
                        type: integer
                      failed:
                        type: integer
              example:
                success: true
                message: Template application completed
                data:
                  total: 10
                  applied: 8
                  skipped: 2
                  failed: 0
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'templateId: Template not found'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
        '404':
          description: O item selecionado nao existe.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain/minhaempresa.com.br/profile/apply'' --data "templateId=TG9zIEluY3N8MTYzNjU=&templateForce=true" -H ''Authorization: bearer jwt.token.generated'' -H ''Content-Type: application/x-www-form-urlencoded'''
  /domain:
    get:
      tags:
      - Domínios
      summary: Listar Domínios
      description: Esta é a chamada que retorna a lista das Domínios do ambiente do usuário identificado na autorização tem a permissão de visualizar. Por padrão são retornados 50 items, sem paginação e ordenados por ordem alfabético pelo atributo domain
      operationId: get_domain
      parameters:
      - name: query
        in: query
        required: false
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: string
      - name: perPage
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        domain:
                          type: string
                        creationDate:
                          type: string
                        clientId:
                          type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                - domain: suaempresa.com.br
                  creationDate: '2017-05-02 11:02:03-03:00'
                  clientId: 8080
                - domain: novaempresa.com.br
                  creationDate: '2017-05-01 10:02:03-03:00'
                  clientId: 8081
                total: 2
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain?query=.com'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Domínios
      summary: Criar Domínio
      description: Esta é a chamada para criação de Domínio.
      operationId: post_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  description: Nome do domínio a ser criado. Formato de domínio.
                clientId:
                  type: number
                  description: Id do cliente relacionado à criação do domínio. Por padrão é criado no cliente do usuário administrativo autorizado na API
              required:
              - domain
              - clientId
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n    \"data\" : {\n        \"domain\" : \"robertosilva@suaempresa.com.br\",\n        ...\n    }\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de domíio inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain'' --data="domain=dominio.com.br" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain/{domain}:
    get:
      tags:
      - Domínios
      summary: Recuperar infomações de Domínio
      description: Esta é a chamada que retorna as informações completas do domínio selecionado.
      operationId: get_domain_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      domain:
                        type: string
                      totalMailbox:
                        type: integer
                      totalGroup:
                        type: integer
                      forcepasswordchange:
                        type: boolean
                      status:
                        type: string
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  domain: suaempresa.com.br
                  totalMailbox: 1000
                  totalGroup: 2000
                  forcepasswordchange: true
                  status: active
                  clientId: 8080
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Domínios
      summary: Atualizar infomações de Domínio
      description: Esta é a chamada que atualiza uma ou mais informações do domínio. > Valores de atributos enviados como vazio serão considerados como exclusão do mesmo. Forçar mudança de senha no próximo login do webmail para todo domínio Bloquear o acesso de todo domínio
      operationId: put_domain_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                forcepasswordchange:
                  type: string
                  description: Forçar a troca de senha no próximo login
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  description: Ativa ou bloqueia o domínio
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      domain:
                        type: string
                      forcepasswordchange:
                        type: integer
                      status:
                        type: string
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  domain: suaempresa.com.br
                  forcepasswordchange: 0
                  status: active
                  clientId: 8080
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Status enviando inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/domain/suaempresa.com.br'' --data="forcepasswordchange=1" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Domínios
      summary: Excluir Domínio
      description: Esta é a chamada para exclusão de Domínio.
      operationId: delete_domain_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n    \"data\" : {\n        \"mail\" : \"robertosilva@suaempresa.com.br\",\n        \"displayName\" : \"João da Silva\",\n        \"accountType\" : \"Skynova 25GB\",\n        ...\n    }\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain/suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain/{domain}/mail-products:
    get:
      tags:
      - Domínios
      summary: Recuperar infomações de produtos disponíveis para cadastro no domínio
      description: Esta é a chamada que retorna os produtos de caixas postais disponíveis no domínio escolhido.
      operationId: get_domain_domain_mail_products
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        productId:
                          type: integer
                        name:
                          type: string
                        type:
                          type: string
                  total:
                    type: integer
              example:
                success: true
                data:
                - productId: 6
                  name: SkyMail 25 GB
                  type: email
                - productId: 10
                  name: SkyMail 50 GB
                  type: email
                - productId: 14
                  name: SkyExchange 25 GB
                  type: exchange
                total: 3
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/mail-products'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain/{name}/property:
    post:
      tags:
      - Domínios
      summary: Retornar informações para cadastro no DNS
      description: Esta é a chamada retorna as informações relacionadas aos valores da entrada que precisa ser cadastrada no DNS do domínio
      operationId: post_domain_name_property
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                clientId:
                  type: number
                  description: Id do cliente relacionado ao domínio
              required:
              - clientId
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      client_id:
                        type: integer
                      domain:
                        type: string
                      type:
                        type: string
                      key:
                        type: string
                      value:
                        type: string
              example:
                success: true
                data:
                  client_id: 8
                  domain: suaempresa.com.br
                  type: TXT
                  key: sky-domain-verification
                  value: adaf3c4e2d1ae1847b804ffe7a801686d1ca8054
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain/suaempresa.com.br/property'' --data="clientId= -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    get:
      tags:
      - Domínios
      summary: Checar se a propriedade está válida
      description: Esta é a chamada valida se a propriedade está verificada e correta e se o cadastro foi feito corretamente no DNS do domínio
      operationId: get_domain_name_property
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: false
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/suaempresa.com.br/property?clientId=8'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /dns:
    get:
      tags:
      - Dns
      summary: Listar zonas de DNS
      description: Esta chamada retorna as zonas de dns disponíveis para administração do seu ambiente
      operationId: get_dns
      parameters:
      - name: filters
        in: query
        description: Filtros disponíveis para a listagem
        required: false
        schema:
          type: string
          example: '[name]=dominio.com.br'
      - name: order_by
        in: query
        description: Filtros disponíveis para a listagem.
        required: false
        schema:
          type: string
          enum:
          - 'Default: `[name]=ASC`'
          - '`[name]=ASC`'
          - '`[name]=DESC`'
          - '`[client_id]=ASC`'
          - '`[client_id]=DESC`'
          - '`[creation_date]=ASC`'
          - '`[creation_date]=DESC`'
          example: '[name]=ASC'
      - name: clientId
        in: query
        description: Listar somente as zonas de dns de um determinado cliente
        required: false
        schema:
          type: string
          enum:
          - 'Default: `Id do cliente logado`'
          example: '8'
      - name: page
        in: query
        description: Número da página a retornar
        required: false
        schema:
          type: string
          enum:
          - 'Default: `1`'
          example: '1'
      - name: per_page
        in: query
        description: Quantidade de registros para retornar
        required: false
        schema:
          type: string
          enum:
          - 'Default: `20`'
          example: '30'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        client_id:
                          type: integer
                        creation_date:
                          type: string
                        name:
                          type: string
                  count:
                    type: integer
              example:
                success: true
                data:
                - client_id: 8
                  creation_date: '2013-06-21T10:32:17-03:00'
                  name: email.com.br
                - client_id: 8
                  creation_date: '2013-06-21T10:33:25-03:00'
                  name: email.net.br
                - client_id: 8
                  creation_date: '2014-11-18T16:02:55-02:00'
                  name: demo.com.br
                - client_id: 8
                  creation_date: '2016-12-13T18:25:52-02:00'
                  name: qts.demo.com.br
                - client_id: 8
                  creation_date: '2018-03-02T08:51:48-03:00'
                  name: acanaue.com.br
                - client_id: 8
                  creation_date: '2018-11-09T11:28:42-02:00'
                  name: tec.demo.com.br
                - client_id: 8
                  creation_date: '2018-11-09T11:30:37-02:00'
                  name: quest.demo.com.br
                - client_id: 8
                  creation_date: '2018-11-14T09:41:48-02:00'
                  name: cmnardi.com.br
                - client_id: 8
                  creation_date: '2018-12-06T15:51:59-02:00'
                  name: gestao.demo.com.br
                - client_id: 8
                  creation_date: '2018-12-07T17:09:48-02:00'
                  name: phdf.demo.com.br
                - client_id: 8
                  creation_date: '2018-12-21T16:04:46-02:00'
                  name: ponta.com.br
                - client_id: 8
                  creation_date: '2019-01-14T16:10:39-02:00'
                  name: clinhares.demo.com.br
                - client_id: 8
                  creation_date: '2019-02-28T11:30:57-03:00'
                  name: link.demo.com.br
                - client_id: 8
                  creation_date: '2019-04-03T11:53:19-03:00'
                  name: dajkdaldkas.com.br
                - client_id: 8
                  creation_date: '2019-12-13T10:33:59-03:00'
                  name: hc.demo.com.br
                count: 15
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns?filters[name]=dominio.com&order_by[creation_date]=DESC'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Dns
      summary: Criar zona de DNS
      description: Esta é a chamada para criação de uma zona de Dns.
      operationId: post_dns
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome da zona de dns a ser criada. Formato de domínio
                client_id:
                  type: number
                  description: Id do cliente relacionado à criação da zona de dns. Por padrão é criado no cliente do usuário administrativo autorizado na API
                create_default_entries:
                  type: boolean
                  description: Já inserir as entradas padrões do ambiente na criação da zona de dns
                payment_info_id:
                  type: number
                  description: Caso você possua o produto em mais de um ciclo de pagamento. Deve-se referenciar o id do ciclo neste campo
                confirm_purchase:
                  type: boolean
                  description: Se você não possuir assinaturas suficientes para o produto, deve-se enviar este parâmetro como true
              required:
              - name
              - client_id
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      client_id:
                        type: integer
                      creation_date:
                        type: string
                      name:
                        type: string
                      entries:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            name:
                              type: string
                            type:
                              type: string
                            value:
                              type: string
                            ttl:
                              type: integer
              example:
                success: true
                data:
                  client_id: 8
                  creation_date: '2020-01-22T11:32:29-03:00'
                  name: demoteste.com.br
                  entries:
                  - id: 1440038
                    name: autoconfig.demoteste.com.br
                    type: CNAME
                    value: autodiscover-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440039
                    name: autodiscover.demoteste.com.br
                    type: CNAME
                    value: autodiscover-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440040
                    name: _caldavs._tcp.demoteste.com.br
                    type: SRV
                    value: caldav.meuprovedor.net.br
                    ttl: 3600
                    priority: 10
                    weight: 20
                    port: 443
                  - id: 1440041
                    name: imap.demoteste.com.br
                    type: CNAME
                    value: imap-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440042
                    name: mail.demoteste.com.br
                    type: CNAME
                    value: mail-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440043
                    name: owa.demoteste.com.br
                    type: CNAME
                    value: webmail-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440044
                    name: painel.demoteste.com.br
                    type: CNAME
                    value: painel-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440045
                    name: pop3.demoteste.com.br
                    type: CNAME
                    value: pop-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440046
                    name: pop.demoteste.com.br
                    type: CNAME
                    value: pop-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440047
                    name: smtp.demoteste.com.br
                    type: CNAME
                    value: smtp-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440048
                    name: demoteste.com.br
                    type: MX
                    value: mx-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440049
                    name: demoteste.com.br
                    type: NS
                    value: ns3.meuprovedor.net.br
                    ttl: 86400
                  - id: 1440050
                    name: demoteste.com.br
                    type: NS
                    value: ns1.meuprovedor.net.br
                    ttl: 86400
                  - id: 1440051
                    name: demoteste.com.br
                    type: NS
                    value: ns2.meuprovedor.net.br
                    ttl: 86400
                  - id: 1440052
                    name: demoteste.com.br
                    type: TXT
                    value: v=spf1 include:spf.meuprovedor.net.br -all
                    ttl: 3600
                  - id: 1440053
                    name: webapp.demoteste.com.br
                    type: CNAME
                    value: webmail-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1440054
                    name: webmail.demoteste.com.br
                    type: CNAME
                    value: webmail-ha.meuprovedor.net.br
                    ttl: 3600
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de domíio inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns'' --data="name=dominio.com.br" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /dns/{name}:
    get:
      tags:
      - Dns
      summary: Recuperar infomações de Dns
      description: Esta é a chamada que retorna as informações completas do domínio da zona de dns selecionado.
      operationId: get_dns_name
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      client_id:
                        type: integer
                      creation_date:
                        type: string
                      name:
                        type: string
                      entries:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            name:
                              type: string
                            type:
                              type: string
                            value:
                              type: string
                            ttl:
                              type: integer
              example:
                success: true
                data:
                  client_id: 8
                  creation_date: '2014-11-18T16:02:55-02:00'
                  name: dominio.com.br
                  entries:
                  - id: 1413067
                    name: 1111.dominio.com.br
                    type: A
                    value: 168.0.135.1
                    ttl: 3600
                  - id: 1413066
                    name: acp22.dominio.com.br
                    type: A
                    value: 168.0.135.2
                    ttl: 3600
                  - id: 1413065
                    name: acp_phpmyadmin.dominio.com.br
                    type: CNAME
                    value: acp1.dominio.com.br
                    ttl: 3600
                  - id: 1413055
                    name: ajuda.dominio.com.br
                    type: A
                    value: 168.0.135.54
                    ttl: 3600
                  - id: 1413016
                    name: ajuda.dominio.com.br
                    type: CNAME
                    value: infomatic.desk.msLoginPortal
                    ttl: 3600
                  - id: 1413019
                    name: angaxx.dominio.com.br
                    type: A
                    value: 168.0.134.224
                    ttl: 3600
                  - id: 1413092
                    name: apxx.dominio.com.br
                    type: A
                    value: 168.0.134.161
                    ttl: 300
                  - id: 1413007
                    name: arbac.dominio.com.br
                    type: CNAME
                    value: acp1.dominio.com.br
                    ttl: 300
                  - id: 1413013
                    name: vendas.dominio.com.br
                    type: A
                    value: 168.0.135.107
                    ttl: 3600
                  - id: 1413053
                    name: autoconfig.dominio.com.br
                    type: CNAME
                    value: autodiscover-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1413024
                    name: autodiscover.dominio.com.br
                    type: CNAME
                    value: autodiscover-ha.meuprovedor.net.br
                    ttl: 3600
                  - id: 1413011
                    name: cloudcloud.dominio.com.br
                    type: A
                    value: 168.0.135.129
                    ttl: 3600
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/dominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Dns
      summary: Excluir Zona de DNS
      description: Esta é a chamada para exclusão de uma zona de DNS. Cuidado, esta ação não pode ser desfeita
      operationId: delete_dns_name
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/dns/dominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /dns/{name}/entry:
    get:
      tags:
      - Dns
      summary: Listar entradas de uma Zona de DNS
      description: Esta chamada retorna as entradas de uma zona de dns, possibilitando a filtragem e a ordenação dos dados
      operationId: get_dns_name_entry
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: filters
        in: query
        description: Filtros disponíveis para a listagem
        required: false
        schema:
          type: string
      - name: order_by
        in: query
        description: Ordenações disponíveis para a listagem.
        required: false
        schema:
          type: string
          enum:
          - 'Default: `[name]=ASC`'
          - '`[name]=ASC`'
          - '`[name]=DESC`'
          - '`[type]=ASC|DESC`'
          - '`[value]=ASC|DESC`'
          - '`[ttl]=ASC|DESC`'
          - '`[priority]=ASC|DESC`'
          - '`[port]=ASC|DESC`'
          example: '[name]=ASC'
      - name: page
        in: query
        description: Número da página a retornar
        required: false
        schema:
          type: string
          enum:
          - 'Default: `1`'
          example: '1'
      - name: per_page
        in: query
        description: Quantidade de registros para retornar
        required: false
        schema:
          type: string
          enum:
          - 'Default: `20`'
          example: '30'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": [\n            {\n                \"id\": 1440038,\n                \"name\": \"autoconfig.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"autodiscover-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            },\n            {\n                \"id\": 1440039,\n                \"name\": \"autodiscover.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"autodiscover-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            },\n            {\n                \"id\": 1440040,\n                \"name\": \"_caldavs._tcp.demoteste.com.br\",\n                \"type\": \"SRV\",\n                \"value\": \"caldav.meuprovedor.com.br\",\n                \"ttl\": 3600,\n                \"priority\": 10,\n                \"weight\": 20,\n                \"port\": 443\n            },\n            {\n                \"id\": 1440041,\n                \"name\": \"imap.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"imap-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            },\n            {\n                \"id\": 1440042,\n                \"name\": \"mail.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"mail-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            },\n            {\n                \"id\": 1440043,\n                \"name\": \"owa.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"webmail-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            },\n            {\n                \"id\": 1440044,\n                \"name\": \"painel.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"painel-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            },\n            {\n                \"id\": \"1440045\",\n                \"name\": \"lb.demoteste.com.br\",\n                \"type\": \"LB\",\n                \"ttl\": 3600,\n                \"value\": \"teste.com.br\",\n                \"lb_addresses\": [\n                    {\n                        \"value\": \"1.1.1.1\",\n                        \"main\": \"true\"\n                    },\n                    {\n                        \"value\": \"2.2.2.2\",\n                        \"main\": \"false\"\n                    }\n                ],\n                \"lb_selector\": \"all\",\n                \"lb_backup_selector\": \"random\",\n                \"lb_timeout\": \"1\",\n                \"lb_interval\": \"1\",\n                \"lb_minimum_failures\": \"1\",\n                \"lb_fail_on_incomplete_check\": \"false\",\n                \"lb_string_match\": \"hello world\"\n            },\n            {\n                \"id\": \"1440045\",\n                \"name\": \"lb.demoteste.com.br\",\n                \"type\": \"LB\",\n                \"ttl\": 3600,\n                \"value\": \"80\",\n                \"lb_addresses\": [\n                    {\n                        \"value\": \"1.1.1.1\",\n                        \"main\": \"true\"\n                    },\n                    {\n                        \"value\": \"2.2.2.2\",\n                        \"main\": \"false\"\n                    }\n                ],\n                \"lb_selector\": \"all\",\n                \"lb_backup_selector\": \"random\",\n                \"lb_timeout\": \"1\",\n                \"lb_interval\": \"1\",\n                \"lb_minimum_failures\": \"1\",\n                \"lb_fail_on_incomplete_check\": \"false\",\n            }\n    ],\n    \"count\": 8\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Zona de Dns não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/dominio.com.br/entry?filters[name]=dominio.com&order_by[ttl]=DESC'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Dns
      summary: Criar entrada em uma Zona de DNS
      description: 'Esta é a chamada para criação de uma entrada dentro de uma Zona de Dns. Criar entrada em uma Zona de DNS Load Balance: Esta é a chamada para criação de uma entrada load balance dentro de uma Zona de Dns, onde o value pode ser uma porta ou uma url. Criar uma entrada do tipo LB com endereços principais e secundários'
      operationId: post_dns_name_entry
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome da entrada de dns a ser criada. Formato de domínio
                type:
                  type: string
                  enum:
                  - A
                  - CNAME
                  - TXT
                  - TXT
                  - MX
                  - SRV
                  - PTR
                  description: Tipo da entrada
                  example: TXT
                priority:
                  type: number
                  description: Prioridade da entrada de DNS
                weight:
                  type: number
                  description: Peso da entrada de DNS
                port:
                  type: number
                  description: Porta da entrada de DNS
                value:
                  type: string
                  description: Valor referente à entrada de Dns (porta ou url)
                lb_addresses:
                  type: array
                  items:
                    type: string
                  enum:
                  - value (string, required) - Endereço IP do backend
                  - pool (number, optional) - Índice do grupo de IPs onde o endereço será adicionado. Quando enviado como `0` adiciona o IP no primeiro grupo, `1` no segundo grupo e assim por diante
                  description: Obrigatório para entradas do tipo `LB`. Deve conter entre `2` e `10` endereços em pelo menos um pool (grupo de IPs)
                lb_selector:
                  type: string
                  enum:
                  - random
                  - all
                  description: 'Estratégia de seleção dos endereços principais. Valor padrão: `random`'
                  example: random
                lb_backup_selector:
                  type: string
                  enum:
                  - random
                  - all
                  description: 'Estratégia de seleção dos endereços secundários. Valor padrão: `random`'
                  example: random
                lb_timeout:
                  type: number
                  description: 'Timeout do health check em segundos. Valor padrão: `2`'
                lb_interval:
                  type: number
                  description: 'Intervalo do health check em segundos. Valor padrão: `5`'
                lb_minimum_failures:
                  type: number
                  description: 'Quantidade mínima de falhas para considerar o backend indisponível. Valor padrão: `1`'
                lb_fail_on_incomplete_check:
                  type: string
                  enum:
                  - '0'
                  - '1'
                  - 'true'
                  - 'false'
                  description: 'Aceita `0`, `1`, `true` ou `false`. Valor padrão: `false`'
                  example: 'false'
                lb_string_match:
                  type: string
                  description: Texto esperado no health check quando `value` do registro `LB` for um hostname. Não é utilizado quando `value` for uma porta
              required:
              - name
              - type
              - value
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": {\n                \"id\": 1440044,\n                \"name\": \"painel.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"painel-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            }\n        ]\n    }\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de domíio inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Zona de Dns não encontrada
        '409':
          description: O item a ser criado ja existe (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Já possui uma mesma entrada com nome, tipo e valor idênticos
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns/dominio.com.br/entry'' --data="name=dominio.com.br&type=TXT&value=valor%20entradadotipotxt" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /dns/{name}/entry/{id}:
    get:
      tags:
      - Dns
      summary: Recuperar infomações de uma entrada de Dns
      description: Esta é a chamada que retorna as informações de uma entrada específica de uma Zona de dns.
      operationId: get_dns_name_entry_id
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": {\n                \"id\": 1440044,\n                \"name\": \"painel.demoteste.com.br\",\n                \"type\": \"CNAME\",\n                \"value\": \"painel-ha.meuprovedor.com.br\",\n                \"ttl\": 3600\n            }\n        ]\n    }\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Zona de DNS ou Entrada não encontrada
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/dominio.com.br/entry/1440044'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Dns
      summary: Atualizar entrada de DNS
      description: Atualiza os dados de uma entrada específica de uma zona de DNS.
      operationId: put_dns_name_entry_id
      parameters:
      - name: name
        in: path
        required: true
        description: Nome da zona de DNS (domínio).
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        description: ID da entrada de DNS a atualizar.
        schema:
          type: integer
          example: 1440044
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do registro.
                  example: painel.meudominio.com.br
                type:
                  type: string
                  description: Tipo do registro DNS (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, LB).
                  example: CNAME
                value:
                  type: string
                  description: Valor do registro.
                  example: painel-ha.meuprovedor.com.br
                ttl:
                  type: integer
                  description: TTL em segundos.
                  example: 3600
                priority:
                  type: integer
                  description: Prioridade (para MX e SRV).
                weight:
                  type: integer
                  description: Peso (para SRV).
                port:
                  type: integer
                  description: Porta (para SRV).
                flag:
                  type: integer
                  description: Flag (para CAA, 0–255).
                tag:
                  type: string
                  description: Tag (para CAA — issue, issuewild ou iodef).
      responses:
        '202':
          description: Entrada atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1440044
                  name: painel.meudominio.com.br
                  type: CNAME
                  value: painel-ha.meuprovedor.com.br
                  ttl: 3600
        '400':
          description: Erro de validação.
          content:
            application/json:
              example:
                success: false
                message: CNAME record cannot point to itself
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/dns/meudominio.com.br/entry/1440044'' --data "name=painel.meudominio.com.br&type=CNAME&value=painel-ha.meuprovedor.com.br&ttl=3600" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Dns
      summary: Excluir entrada de uma zona de DNS
      description: Esta é a chamada para exclusão de uma entrada de uma zona de DNS. Cuidado, esta ação não pode ser desfeita
      operationId: delete_dns_name_entry_id
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/dns/dominio.com.br/entry/144404'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /report/smtp:
    get:
      tags:
      - Envios SMTP
      summary: Relatorio de envios SMTP (Deprecated)
      deprecated: true
      description: >
        Endpoint descontinuado. Esta rota deixou de retornar resultados. As informacoes
        foram migradas para o ClickHouse. Para consultar entregas SMTP, utilize
        os endpoints atuais em /smtp-out/{clientId}/delivery.
      operationId: get_report_smtp
      parameters:
      - name: from
        in: query
        required: false
        schema:
          type: string
      - name: to
        in: query
        required: false
        schema:
          type: string
      - name: date_from
        in: query
        required: true
        schema:
          type: string
          example: '2022-02-05'
      - name: date_upto
        in: query
        required: false
        schema:
          type: string
          example: '2022-02-10'
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - sent
          - bounced
          - deferred
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: num_items_per_page
        in: query
        required: false
        schema:
          type: integer
          default: 5
      - name: paginate
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
          default: 1
      responses:
        '200':
          description: Endpoint descontinuado. Utilize /smtp-out/{clientId}/delivery.
          content:
            application/json:
              schema:
                type: object
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/smtp?date_from=2022-02-05&date_upto=2022-02-10&status=sent'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /report/smtp/summary:
    get:
      tags:
      - Envios SMTP
      summary: Resumo de Envios (Deprecated)
      deprecated: true
      description: >
        Endpoint descontinuado. Esta rota deixou de retornar resultados. As informacoes
        foram migradas para o ClickHouse. Para consultar entregas SMTP, utilize
        os endpoints atuais em /smtp-out/{clientId}/delivery.
      operationId: get_report_smtp_summary
      parameters:
      - name: dateFrom
        in: query
        required: true
        schema:
          type: string
      - name: dateTo
        in: query
        required: true
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Define o status de retorno do Envio SMTP
        required: false
        schema:
          type: string
          enum:
          - sent
          - bounced
          - deferred
          example: sent
      - name: query
        in: query
        description: Filtro do e-mail que se autenticou para disparo do envio SMTP [s_emailAuth] ou quem recebeu o e-mail enviado [sd_emailTo]
        required: false
        schema:
          type: string
          example: '[s_emailAuth]=remetente@dominio.com.br'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"count\": 24,\n    \"data\": [\n        {\n            \"date\": \"2022-02-05 00:00\",\n            \"bounced\": 10\n            \"sent\": 2\n            \"deferred\": 1\n        },\n        {\n            \"date\": \"2022-02-05 01:00\",\n            \"bounced\": 1\n            \"sent\": 100\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 02:00\",\n            \"bounced\": 0,\n            \"sent\": 200\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 03:00\",\n            \"bounced\": 0,\n            \"sent\": 233\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 04:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 05:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 06:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 07:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 08:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 09:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 10:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 11:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 12:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 13:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 14:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 15:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 16:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 17:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 18:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 19:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 20:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 21:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 22:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        },\n        {\n            \"date\": \"2022-02-05 23:00\",\n            \"bounced\": 0,\n            \"sent\": 0,\n            \"deferred\": 0\n        }\n    ]\n}"
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/smtp/summary?dateFrom=2022-02-05&dateTo=2022-02-10&clientId=8420&query[s_emailAuth]=remetente@dominio.com.br&query[sd_emailTo]=destinatario@dominio.com.br&status=sent'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /smtp-out/{clientId}/delivery:
    get:
      tags:
      - Envios SMTP
      summary: Listagem de Envios
      description: Essa é a chamada que retorna a listagem e os detalhes dos envios de acordo com os filtros enviados. O parâmetro de retorno "subject" utilizar o format utf7 imap (https://datatracker.ietf.org/doc/html/rfc3501#section-5.1.3). Para compreensão "humana" se faz necessário converter o resultado. Caso sua pesquisa retorna uma quantidade muito grande de resultados, deve-se página-la utilizando os parâmetros page e perPage Todos os e-mails enviados com status de em Tentativa por nfe@meudominio.com.br no dia 26/08/2025
      operationId: get_smtp_out_clientId_delivery
      parameters:
      - name: clientId
        in: path
        description: Cliente relacionado ao envio
        required: true
        schema:
          type: string
      - name: dateFrom
        in: query
        required: false
        schema:
          type: string
      - name: dateTo
        in: query
        required: false
        schema:
          type: string
      - name: dateDeliveryFrom
        in: query
        required: false
        schema:
          type: string
      - name: dateDeliveryTo
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: string
      - name: domain
        in: query
        required: false
        schema:
          type: string
      - name: mailbox
        in: query
        required: false
        schema:
          type: string
      - name: emailTo
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: string
      - name: perPage
        in: query
        required: false
        schema:
          type: string
      - name: order
        in: query
        description: Ordenações disponíveis para a listagem.
        required: false
        schema:
          type: string
          enum:
          - 'Default: `[sendDate]=ASC`'
          - '`[sentDate]=ASC`'
          - '`[sentDate]=DESC`'
          - '`[deliveryDate]=ASC|DESC`'
          - '`[subject]=ASC|DESC`'
          example: '[sentDate]=ASC'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        deliveryId:
                          type: string
                        emailAuth:
                          type: string
                        emailFrom:
                          type: string
                        emailTo:
                          type: string
                        status:
                          type: string
                        subject:
                          type: string
                        sentDate:
                          type: string
                        dateDelivery:
                          type: string
                        statusMsg:
                          type: string
                        deferreds:
                          type: array
                          items: {}
              example:
                count: 10
                data:
                - deliveryId: '1146400'
                  emailAuth: noreply-cte@dominio.com.br
                  emailFrom: noreply-cte@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: CT-e - 5141631-1-420
                  sentDate: '2022-11-10 01:00:00'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: (250 2.0.0 OK  1668052802 a32-20020a056870a1a000b0013cd5c1bec6si17054537oaf.28 - gsmtp)
                  deferreds: []
                - deliveryId: '1146410'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Erro_E-mail_Destinat=E1rio?=
                  sentDate: '2022-11-10 01:00:00'
                  dateDelivery: '2022-11-10 01:00:00'
                  statusMsg: '(250 2.0.0 Ok: queued as DA63D3116BA5)'
                  deferreds: []
                - deliveryId: '1112460'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: nfe@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: NFe Segala's Alimentos
                  sentDate: '2022-11-10 01:00:00'
                  dateDelivery: '2022-11-10 01:00:04'
                  statusMsg: (250 2.0.0 OK  1668052804 w9-20020a4a6d49000000b0049e970c59c9si15364660oof.89 - gsmtp)
                  deferreds: []
                - deliveryId: '1143260'
                  emailAuth: tms@dominio.com.br
                  emailFrom: tms@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: Envio automatico de EDI
                  sentDate: '2022-11-10 01:00:01'
                  dateDelivery: '2022-11-10 01:00:01'
                  statusMsg: '(250 2.0.0 Ok: queued as CBB5830CEFF8)'
                  deferreds: []
                - deliveryId: '1146110'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Alerta_-_Avalia=E7=E2o_Pendente?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as 7517D3116BB7)'
                  deferreds: []
                - deliveryId: '114860'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: 51.vendas1@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Alerta_-_Avalia=E7=E2o_Pendente?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as 9D1493182364)'
                  deferreds: []
                - deliveryId: '161460'
                  emailAuth: formulario@dominio.com.br
                  emailFrom: formulario@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: =?utf-8?B?Q3JpYcOnw6NvIGRlIHNpdGUgZXN0w6EgcGVuZGVudGUgbm8g?=#012 =?utf-8?B?V2ViYml6?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:03'
                  statusMsg: '(250 2.0.0 Ok: queued as 10B3B3116BBD)'
                  deferreds: []
                - deliveryId: '114560'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: rh.recrutamento1@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Erro_E-mail_Destinat=E1rio?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as C68743116BB9)'
                  deferreds: []
                - deliveryId: '114640'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: rh.recrutamento1@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Erro_E-mail_Destinat=E1rio?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as F29B63116BBE)'
                  deferreds: []
                - deliveryId: '114260'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: nfe@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: NFe Empresa's Alimentos
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:08'
                  statusMsg: (250 2.0.0 OK  1668052808 u19-20020a056870305300b0013c765f07e0si17833904oau.260 - gsmtp)
                  deferreds:
                  - date: '2025-08-05 15:31:55.000000'
                    attempt: 8
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.228.109] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 16:41:58.000000'
                    attempt: 9
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.204.79] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 17:51:55.000000'
                    attempt: 10
                    statusMsg: '(host mta5.am0.yahoodns.net[98.136.96.74] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 19:02:06.000000'
                    attempt: 11
                    statusMsg: '(host mta5.am0.yahoodns.net[98.136.96.77] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 20:11:56.000000'
                    attempt: 12
                    statusMsg: '(host mta5.am0.yahoodns.net[67.195.228.94] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 21:21:59.000000'
                    attempt: 13
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.228.110] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 22:31:57.000000'
                    attempt: 14
                    statusMsg: '(host mta5.am0.yahoodns.net[98.136.96.75] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 23:41:59.000000'
                    attempt: 15
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.228.111] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-06 00:51:59.000000'
                    attempt: 16
                    statusMsg: '(host mta5.am0.yahoodns.net[67.195.204.73] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/32232/delivery?mailbox=nfe@meudominio.com.br&status=deferred&dateFrom=2025-08-26&page=10&perPage=100&order[sentDate]=asc&order[subject]=asc'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /smtp-out/{clientId}/delivery/{deliveryId}:
    get:
      tags:
      - Envios SMTP
      summary: Retorno específico de um envio
      description: Essa é a chamada que retorna a listagem e os detalhes dos envios de acordo com os filtros enviados. O parâmetro de retorno "subject" utilizar o format utf7 imap (https://datatracker.ietf.org/doc/html/rfc3501#section-5.1.3). Para compreensão "humana" se faz necessário converter o resultado. Caso sua pesquisa retorna uma quantidade muito grande de resultados, deve-se página-la utilizando os parâmetros page e perPage Todas as informações do envio 32233 relacionado ao cliente 232232
      operationId: get_smtp_out_clientId_delivery_deliveryId
      parameters:
      - name: clientId
        in: path
        description: Cliente relacionado ao envio
        required: true
        schema:
          type: string
      - name: deliveryId
        in: path
        description: Id do envio
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      deliveryId:
                        type: string
                      emailAuth:
                        type: string
                      emailFrom:
                        type: string
                      emailTo:
                        type: string
                      status:
                        type: string
                      subject:
                        type: string
                      sentDate:
                        type: string
                      dateDelivery:
                        type: string
                      statusMsg:
                        type: string
                      deferreds:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                            attempt:
                              type: integer
                            statusMsg:
                              type: string
              example:
                success: true
                data:
                  deliveryId: '114260'
                  emailAuth: nfe@dominio.com.br
                  emailFrom: nfe@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: NFe Empresa's Alimentos
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:08'
                  statusMsg: (250 2.0.0 OK  1668052808 u19-20020a056870305300b0013c765f07e0si17833904oau.260 - gsmtp)
                  deferreds:
                  - date: '2025-08-05 15:31:55.000000'
                    attempt: 8
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.228.109] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 16:41:58.000000'
                    attempt: 9
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.204.79] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 17:51:55.000000'
                    attempt: 10
                    statusMsg: '(host mta5.am0.yahoodns.net[98.136.96.74] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 19:02:06.000000'
                    attempt: 11
                    statusMsg: '(host mta5.am0.yahoodns.net[98.136.96.77] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 20:11:56.000000'
                    attempt: 12
                    statusMsg: '(host mta5.am0.yahoodns.net[67.195.228.94] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 21:21:59.000000'
                    attempt: 13
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.228.110] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 22:31:57.000000'
                    attempt: 14
                    statusMsg: '(host mta5.am0.yahoodns.net[98.136.96.75] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-05 23:41:59.000000'
                    attempt: 15
                    statusMsg: '(host mta6.am0.yahoodns.net[67.195.228.111] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
                  - date: '2025-08-06 00:51:59.000000'
                    attempt: 16
                    statusMsg: '(host mta5.am0.yahoodns.net[67.195.204.73] said: 421 4.7.0 [TSS04] Messages from 168.0.132.53 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes (in reply to MAIL FROM command))'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br//smtp-out/232232/delivery/32233'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /report/smtp/details:
    get:
      tags:
      - Envios SMTP
      summary: Listagem de Envios (Deprecated)
      deprecated: true
      description: >
        Endpoint descontinuado. Esta rota deixou de retornar resultados. As informacoes
        foram migradas para o ClickHouse. Para consultar detalhes de entregas SMTP,
        utilize /smtp-out/{clientId}/delivery/details.
      operationId: get_report_smtp_details
      parameters:
      - name: dateFrom
        in: query
        required: true
        schema:
          type: string
      - name: dateTo
        in: query
        required: true
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Define o status de retorno do Envio SMTP
        required: false
        schema:
          type: string
          enum:
          - sent
          - bounced
          - deferred
          example: sent
      - name: query
        in: query
        description: Filtro do e-mail que se autenticou para disparo do envio SMTP [s_emailAuth], quem recebeu o e-mail enviado [sd_emailTo], página [page] e quantidade por página [perPage]
        required: false
        schema:
          type: string
          example: '[s_emailAuth]=remetente@dominio.com.br'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        emailAuth:
                          type: string
                        emailFrom:
                          type: string
                        emailTo:
                          type: string
                        status:
                          type: string
                        subject:
                          type: string
                        sentDate:
                          type: string
                        dateDelivery:
                          type: string
                        statusMsg:
                          type: string
              example:
                count: 10
                data:
                - emailAuth: noreply-cte@dominio.com.br
                  emailFrom: noreply-cte@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: CT-e - 5141631-1-420
                  sentDate: '2022-11-10 01:00:00'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: (250 2.0.0 OK  1668052802 a32-20020a056870a1a000b0013cd5c1bec6si17054537oaf.28 - gsmtp)
                - emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Erro_E-mail_Destinat=E1rio?=
                  sentDate: '2022-11-10 01:00:00'
                  dateDelivery: '2022-11-10 01:00:00'
                  statusMsg: '(250 2.0.0 Ok: queued as DA63D3116BA5)'
                - emailAuth: nfe@dominio.com.br
                  emailFrom: nfe@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: NFe Segala's Alimentos
                  sentDate: '2022-11-10 01:00:00'
                  dateDelivery: '2022-11-10 01:00:04'
                  statusMsg: (250 2.0.0 OK  1668052804 w9-20020a4a6d49000000b0049e970c59c9si15364660oof.89 - gsmtp)
                - emailAuth: tms@dominio.com.br
                  emailFrom: tms@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: Envio automatico de EDI
                  sentDate: '2022-11-10 01:00:01'
                  dateDelivery: '2022-11-10 01:00:01'
                  statusMsg: '(250 2.0.0 Ok: queued as CBB5830CEFF8)'
                - emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Alerta_-_Avalia=E7=E2o_Pendente?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as 7517D3116BB7)'
                - emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: 51.vendas1@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Alerta_-_Avalia=E7=E2o_Pendente?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as 9D1493182364)'
                - emailAuth: formulario@dominio.com.br
                  emailFrom: formulario@dominio.com.br
                  emailTo: destinatario@dominio.com.br
                  status: sent
                  subject: =?utf-8?B?Q3JpYcOnw6NvIGRlIHNpdGUgZXN0w6EgcGVuZGVudGUgbm8g?=#012 =?utf-8?B?V2ViYml6?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:03'
                  statusMsg: '(250 2.0.0 Ok: queued as 10B3B3116BBD)'
                - emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: rh.recrutamento1@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Erro_E-mail_Destinat=E1rio?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as C68743116BB9)'
                - emailAuth: nfe@dominio.com.br
                  emailFrom: sistema@dominio.com.br
                  emailTo: rh.recrutamento1@dominio.com.br
                  status: sent
                  subject: =?ISO-8859-1?Q?Erro_E-mail_Destinat=E1rio?=
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:02'
                  statusMsg: '(250 2.0.0 Ok: queued as F29B63116BBE)'
                - emailAuth: nfe@dominio.com.br
                  emailFrom: nfe@dominio.com.br
                  emailTo: destinatario@gmail.com
                  status: sent
                  subject: NFe Empresa's Alimentos
                  sentDate: '2022-11-10 01:00:02'
                  dateDelivery: '2022-11-10 01:00:08'
                  statusMsg: (250 2.0.0 OK  1668052808 u19-20020a056870305300b0013c765f07e0si17833904oau.260 - gsmtp)
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/smtp/details?dateFrom=2022-02-05&dateTo=2022-02-05&clientId=8420&query[s_emailAuth]=remetente@dominio.com.br&query[sd_emailTo]=destinatario@dominio.com.br&status=sent'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /report/smtp/count:
    get:
      tags:
      - Envios SMTP
      summary: Contagem especifica por status (Deprecated)
      deprecated: true
      description: >
        Endpoint descontinuado. Esta rota deixou de retornar resultados. As informacoes
        foram migradas para o ClickHouse. Para consultar entregas SMTP, utilize
        os endpoints atuais em /smtp-out/{clientId}/delivery.
      operationId: get_report_smtp_count
      parameters:
      - name: dateFrom
        in: query
        required: true
        schema:
          type: string
      - name: dateTo
        in: query
        required: true
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Define o status de retorno do Envio SMTP
        required: false
        schema:
          type: string
          enum:
          - sent
          - bounced
          - deferred
          example: sent
      - name: query
        in: query
        description: Filtro do e-mail que se autenticou para disparo do envio SMTP [s_emailAuth] ou quem recebeu o e-mail enviado [sd_emailTo]
        required: false
        schema:
          type: string
          example: '[s_emailAuth]=remetente@dominio.com.br'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  canDownload:
                    type: boolean
              example:
                count: 4458277
                canDownload: false
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/smtp/count?dateFrom=2022-11-10 01:00:00&dateTo=2022-11-20 01:59:59&status=sent'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /report/smtp/send-csv:
    post:
      tags:
      - Envios SMTP
      summary: Envio do relatorio para o e-mail do usuario logado (Deprecated)
      deprecated: true
      description: >
        Endpoint descontinuado. Esta rota deixou de retornar resultados. As informacoes
        foram migradas para o ClickHouse. Para solicitar o envio do relatorio atual,
        utilize /smtp-out/{clientId}/delivery/details/send.
      operationId: post_report_smtp_send_csv
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                dateFrom:
                  type: string
                  example: YYYY-MM-DD`  ... Data inicial da pesquisa.
                dateTo:
                  type: string
                  example: YYYY-MM-DD`  ... Data final da pesquisa.
                clientId:
                  type: number
                  example: 1`  Filtro de cliente id da empresa do usuário do Grupo. Caso não seja enviado, retorna informação de todos os clientes que possui permissão
                query:
                  type: string
                  description: Filtro do e-mail que se autenticou para disparo do envio SMTP [s_emailAuth] ou quem recebeu o e-mail enviado [sd_emailTo]
                  example: '[s_emailAuth]=remetente@dominio.com.br'
                status:
                  type: string
                  enum:
                  - sent
                  - bounced
                  - deferred
                  description: Define o status de retorno do Envio SMTP
                  example: 'true'
              required:
              - dateFrom
              - dateTo
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: true
                message: request_ok
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/report/smtp/send-csv'' -H ''Authorization: bearer jwt.token.generated''  ''cache-control: no-cache --data=?dateFrom=2022-11-10 01:00:00&dateTo=2022-11-20 01:59:59&status=sent'''
  /smtp-out/product:
    get:
      tags:
      - Envios SMTP
      summary: Lista de Produtos SMTP
      description: Essa é a chamada que retorna todos os produtos de Envios SMTP
      operationId: get_smtp_out_product
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        productId:
                          type: integer
                        name:
                          type: string
                        cost:
                          type: integer
                        costRevenue:
                          type: integer
                        costUnity:
                          type: number
                        costUnityRevenue:
                          type: number
                        plan:
                          type: integer
              example:
                success: true
                data:
                - productId: 428
                  name: Envios SMTP - Plano 1.000/mês
                  cost: 70
                  costRevenue: 56
                  costUnity: 0.07
                  costUnityRevenue: 0.056
                  plan: 1000
                - productId: 322
                  name: Envios SMTP - Plano 2.000/mês
                  cost: 85
                  costRevenue: 68
                  costUnity: 0.0425
                  costUnityRevenue: 0.034
                  plan: 2000
                - productId: 323
                  name: Envios SMTP - Plano 5.000/mês
                  cost: 100
                  costRevenue: 80
                  costUnity: 0.02
                  costUnityRevenue: 0.016
                  plan: 5000
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/product'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /smtp-out/product/{clientId}:
    get:
      tags:
      - Envios SMTP
      summary: Consultar Produto SMTP de Cliente
      description: Essa é a chamada que retorna o Produto SMTP contratado por um cliente
      operationId: get_smtp_out_product_clientId
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: string
              example:
                success: false
                data: Smtp product not found.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/product/1'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /smtp-out/product/{clientId}/update:
    post:
      tags:
      - Envios SMTP
      summary: Alterar Produto SMTP de Cliente
      description: Essa é a chamada que alterar o produto SMTP contratado de um cliente.
      operationId: post_smtp_out_product_clientId_update
      parameters:
      - name: clientId
        in: path
        description: Identificador da zona
        required: true
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                old_product_id:
                  type: number
                  description: ID do produto atualmente contratado
                  example: 428
                new_product_id:
                  type: number
                  description: ID do novo produto a ser contratado
                  example: 322
              required:
              - old_product_id
              - new_product_id
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        product_id:
                          type: integer
                        product_name:
                          type: string
                        client_payment_info_id:
                          type: integer
                        plan:
                          type: integer
                        cost:
                          type: integer
                        costUnity:
                          type: number
                        qtty_contracted:
                          type: integer
              example:
                success: true
                total: 1000
                data:
                - product_id: 428
                  product_name: Envios SMTP - Plano 1.000/mês
                  client_payment_info_id: 88
                  plan: 1000
                  cost: 70
                  costUnity: 0.07
                  qtty_contracted: 1
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Purchase of old_product_id not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/product/{clientId}/update'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /smtp-out/message/send:
    post:
      tags:
      - Envios SMTP
      summary: Enviar e-mails via API
      description: Essa é a chamada que permite o envio de e-mails via API para produto Envios SMTP.
      operationId: post_smtp_out_message_send
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                from:
                  type: string
                  description: Identificação do remetente, permite apenas o e-mail ou nome + e-mail
                  example: Remetente <remetente@dominio.com.br>
                to[]:
                  type: string
                  description: Pelo menos um destinatário é obrigatório, permite apenas o e-mail ou nome + e-mail. Duplique esse campo para adicionar mais de um.
                  example: Destinatario <destinatario@cliente.com.br>
                subject:
                  type: string
                  description: Assunto do e-mail
                  example: Assunto do e-mail
                html:
                  type: string
                  description: Conteúdo em formato HTML, é opcional caso `text` seja enviado
                  example: <p>Conteúdo HTML Teste</p>
                text:
                  type: string
                  description: Conteúdo em formato texto simples, é opcional caso `html` seja enviado
                  example: Conteúdo texto Teste
                cc[]:
                  type: string
                  description: Um ou mais destinatários em cópia, permite apenas o e-mail ou nome + e-mail. Duplique esse campo para adicionar mais de um.
                  example: cc1@teste.com.br
                auth:
                  type: string
                  description: Permite autenticar o envio por uma caixa postal diferente da informada no campo `from`
                  example: auth@dominio.com.br
              required:
              - from
              - to[]
              - subject
              - html
              - text
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      status:
                        type: string
              example:
                success: true
                data:
                  id: a9a86bbb-9983-44f4-b9a0-9375a7d3804f
                  status: pending
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à validação, ex: [from] Mailbox not found ou [auth] Mailbox not allowed to send emails using the from address'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/message/send'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /smtp-out/message/status/{messageId}:
    get:
      tags:
      - Envios SMTP
      summary: Consultar status de envio
      description: Essa é a chamada que consulta o status de um envio SMTP
      operationId: get_smtp_out_message_status_messageId
      parameters:
      - name: messageId
        in: path
        description: Identificador da mensagem
        required: true
        schema:
          type: string
          example: a9a86bbb-9983-44f4-b9a0-9375a7d3804f
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      status:
                        type: string
                      updatedAt:
                        type: string
              example:
                success: true
                data:
                  id: a2e0b3b8-5f66-4703-a913-89a91bccab10
                  status: sent
                  updatedAt: '2025-11-24T10:30:28-02:00'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/message/status/{messageId}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /group:
    get:
      tags:
      - Grupos de e-mail
      summary: Listar Grupos de e-mail
      description: Esta é a chamada que retorna a lista das Grupos de e-mail do ambiente do usuário identificado na autorização tem a permissão de visualizar. Por padrão são retornados 50 items, sem paginação e ordenados por ordem alfabético pelo atributo mail
      operationId: get_group
      parameters:
      - name: query
        in: query
        required: false
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: string
      - name: perPage
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        mail:
                          type: string
                        creationdate:
                          type: string
                        clientId:
                          type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                - mail: financeiro@suaempresa.com.br
                  creationdate: '2017-05-02 11:02:03-03:00'
                  clientId: 8080
                - mail: financeiro@outraempresa.com.br
                  creationdate: '2017-05-02 11:02:03-03:00'
                  clientId: 8080
                total: 2
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/group?query=.com'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Grupos de e-mail
      summary: Criar Grupo de E-mail
      description: Esta é a chamada para criação de Grupo de E-mail.
      operationId: post_group
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                mail:
                  type: string
                  description: E-mail completo da Grupo de E-mail. Formato de email.
                displayname:
                  type: string
                  description: Nome do usuáro da Grupo de E-mail.
                showonaddressbook:
                  type: boolean
                  description: 'Exibir e-mail do gurpo no catálogo de endereços. Default: true'
                subjectappend:
                  type: string
                  description: 'Identificador do grupo no assunto do e-mail recebido. Ex: [FINANC] Assunto do email. | Onde FINANC é o subjectappend'
                membersonly:
                  type: boolean
                  description: Grupo privado. Somente os membros podem enviar e-mail
                groupreplyto:
                  type: boolean
                  description: Utilizar o e-mail do grupo como resposta do remetente da resposta à mensagem do grupo
                senderconfirm:
                  type: boolean
                  description: Solicitar confirmação de envio para o remetente da mensagem ao grupo
                rfc822member:
                  type: array
                  items:
                    type: string
                  description: Atributo de membros de grupo. Verifique a tabela de tipos de membros nesta documentação
                rfc822sender:
                  type: array
                  items:
                    type: string
                  description: Atributo de escritores de grupo. Verifique a tabela de tipos de membros nesta documentação
                rfc822moderator:
                  type: array
                  items:
                    type: string
                  description: Atributo de moderadores de grupo. Verifique a tabela de tipos de membros nesta documentação
                bounceadmin:
                  type: array
                  items:
                    type: string
                  description: Atributo de administrador de bounde do grupo. Verifique a tabela de tipos de membros nesta documentação
                mailalternateaddress:
                  type: array
                  items:
                    type: string
                  description: Apelidos do grupo
              required:
              - mail
              - displayname
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      rfc822member:
                        type: array
                        items: {}
                      rfc822sender:
                        type: array
                        items: {}
                      rfc822moderator:
                        type: array
                        items: {}
                      bounceadmin:
                        type: array
                        items: {}
                      mailalternateaddress:
                        type: array
                        items: {}
                      subjectappend:
                        type: string
                      membersonly:
                        type: boolean
                      groupreplyto:
                        type: boolean
                      senderconfirm:
                        type: boolean
                      showinaddressbook:
                        type: boolean
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  mail: financeiro@suaempresa.com.br
                  displayname: Financeiro Sua Empresa
                  rfc822member: []
                  rfc822sender: []
                  rfc822moderator: []
                  bounceadmin: []
                  mailalternateaddress: []
                  subjectappend: FINANC
                  membersonly: false
                  groupreplyto: false
                  senderconfirm: false
                  showinaddressbook: true
                  clientId: 8080
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de e-mail inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/group'' --data="mail=grupo@dominio.com.br&displayname=Nome%20do%20Grupo" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /group/{group}:
    get:
      tags:
      - Grupos de e-mail
      summary: Recuperar infomações de Grupo de E-mail
      description: Esta é a chamada que retorna as informações completas da Grupo de E-mail selecionada. | Atributo | Tipo | Descrição | | -------- | ---- | -------- | | rfc822member | Participante | Mero participante, não tem nenhuma configuração excepcional | | rfc822sender | Escritor | Quando se existe um escritor, somente eles podem enviar e-mail para o grupo | | rfc822moderator | Moderador | Autoriza as mensagens que serão entregues ao grupo | | bounceadmin | Adm. de Bounce | Membros que irão receber as mensagens de bounce dos servidores de e-mail dos membros do grupo |
      operationId: get_group_group
      parameters:
      - name: group
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      rfc822member:
                        type: array
                        items:
                          type: string
                      rfc822sender:
                        type: array
                        items:
                          type: string
                      rfc822moderator:
                        type: array
                        items: {}
                      bounceadmin:
                        type: array
                        items: {}
                      mailalternateaddress:
                        type: array
                        items: {}
                      subjectappend:
                        type: string
                      membersonly:
                        type: boolean
                      groupreplyto:
                        type: boolean
                      senderconfirm:
                        type: boolean
                      showonaddressbook:
                        type: boolean
                      creationDate:
                        type: string
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  mail: financeiro@suaempresa.com.br
                  displayname: Financeiro
                  rfc822member:
                  - lucas@suaempresa.com.br
                  - abcde@empresa.com.br
                  rfc822sender:
                  - lucas@suaempresa.com.br
                  rfc822moderator: []
                  bounceadmin: []
                  mailalternateaddress: []
                  subjectappend: FINANC
                  membersonly: false
                  groupreplyto: false
                  senderconfirm: false
                  showonaddressbook: true
                  creationDate: '2017-05-02 11:02:03-03:00'
                  clientId: 8080
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/group/financeiro@suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Grupos de e-mail
      summary: Atualizar infomações de Grupo de E-mail
      description: Esta é a chamada que atualiza uma ou mais informações da Grupo de E-mail. > Valores de atributos enviados como vazio serão considerados como exclusão do mesmo. Adicionar membro ao grupo Remover membro ao grupo Remover todos os membros de um grupo
      operationId: put_group_group
      parameters:
      - name: group
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                mail:
                  type: string
                  description: E-mail completo da Grupo de E-mail. Formato de email.
                displayname:
                  type: string
                  description: Nome do usuáro da Grupo de E-mail.
                showonaddressbook:
                  type: boolean
                  description: 'Exibir e-mail do gurpo no catálogo de endereços. Default: true'
                subjectappend:
                  type: string
                  description: 'Identificador do grupo no assunto do e-mail recebido. Ex: [FINANC] Assunto do email. | Onde FINANC é o subjectappend'
                membersonly:
                  type: boolean
                  description: Grupo privado. Somente os membros podem enviar e-mail
                groupreplyto:
                  type: boolean
                  description: Utilizar o e-mail do grupo como resposta do remetente da resposta à mensagem do grupo
                senderconfirm:
                  type: boolean
                  description: Solicitar confirmação de envio para o remetente da mensagem ao grupo
                rfc822member:
                  type: array
                  items:
                    type: string
                  description: Atributo de membros de grupo. Verifique a tabela de tipos de membros nesta documentação
                rfc822sender:
                  type: array
                  items:
                    type: string
                  description: Atributo de escritores de grupo. Verifique a tabela de tipos de membros nesta documentação
                rfc822moderator:
                  type: array
                  items:
                    type: string
                  description: Atributo de moderadores de grupo. Verifique a tabela de tipos de membros nesta documentação
                bounceadmin:
                  type: array
                  items:
                    type: string
                  description: Atributo de administrador de bounde do grupo. Verifique a tabela de tipos de membros nesta documentação
                mailalternateaddress:
                  type: array
                  items:
                    type: string
                  description: Apelidos do grupo
              required:
              - mail
              - displayname
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      mail:
                        type: string
                      displayname:
                        type: string
                      rfc822member:
                        type: array
                        items:
                          type: string
                      rfc822sender:
                        type: array
                        items: {}
                      rfc822moderator:
                        type: array
                        items: {}
                      bounceadmin:
                        type: array
                        items: {}
                      mailalternateaddress:
                        type: array
                        items: {}
                      subjectappend:
                        type: string
                      membersonly:
                        type: boolean
                      groupreplyto:
                        type: boolean
                      senderconfirm:
                        type: boolean
                      showinaddressbook:
                        type: boolean
                      clientId:
                        type: integer
              example:
                success: true
                data:
                  mail: financeiro@suaempresa.com.br
                  displayname: Financeiro Sua Empresa
                  rfc822member:
                  - rolinho@suaempresa.com.br
                  rfc822sender: []
                  rfc822moderator: []
                  bounceadmin: []
                  mailalternateaddress: []
                  subjectappend: FINANC
                  membersonly: false
                  groupreplyto: false
                  senderconfirm: false
                  showinaddressbook: true
                  clientId: 8080
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Accountstatus inválido'
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/group/financeiro@suaempresa.com.br'' --data="rfc822member[novoemail@financeiro.com.br]=true" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Grupos de e-mail
      summary: Excluir Grupo de E-mail
      description: Esta é a chamada para exclusão de Grupo de E-mail.
      operationId: delete_group_group
      parameters:
      - name: group
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: true
                message: Item excluido com sucesso
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/group/financeiro@suaempresa.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting:
    get:
      tags:
      - Hospedagem
      summary: Listar sites
      description: Esta é a chamada que retorna a lista dos sites do ambiente do usuário identificado
      operationId: get_hosting
      parameters:
      - name: filters
        in: query
        description: Filtros disponíveis para a listagem
        required: false
        schema:
          type: string
          example: '[name]=email@dominio.com.br'
      - name: clientId
        in: query
        description: Filtro de cliente id da empresa do usuário do Grupo.
        required: false
        schema:
          type: string
          example: '1'
      - name: sort_field
        in: query
        description: Referência do campo pelo qual se deseja ordenar
        required: false
        schema:
          type: string
          example: name
      - name: sort_direction
        in: query
        description: Ordeam a retornar os valor
        required: false
        schema:
          type: string
          example: ASC
      - name: page_number
        in: query
        description: Número da página a retornar
        required: false
        schema:
          type: string
          example: '1'
      - name: page_size
        in: query
        description: Quantidade de registros para retornar
        required: false
        schema:
          type: string
          example: '30'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        client_id:
                          type: integer
                        creation_date:
                          type: string
                        name:
                          type: string
                        status:
                          type: string
                  total:
                    type: integer
              example:
                success: true
                data:
                - client_id: 8
                  creation_date: '2019-08-16T11:42:58-03:00'
                  name: guilhermeteste.com.br
                  status: active
                - client_id: 16817
                  creation_date: '2019-03-19T20:53:25-03:00'
                  name: reteste-rio.com.br
                  status: active
                - client_id: 8
                  creation_date: '2019-02-25T13:18:19-03:00'
                  name: testecriacaodev.com.br
                  status: active
                - client_id: 18617
                  creation_date: '2019-04-19T18:55:32-03:00'
                  name: testefoinix.com.br
                  status: active
                - client_id: 8
                  creation_date: '2019-02-06T15:35:56-02:00'
                  name: testehion.com.br
                  status: active
                - client_id: 8
                  creation_date: '2018-11-26T16:41:10-02:00'
                  name: testeluizdemo.com.br
                  status: active
                - client_id: 8
                  creation_date: '2017-01-23T18:32:24-02:00'
                  name: demo.com.br
                  status: active
                - client_id: 7980
                  creation_date: '2019-11-11T12:13:03-02:00'
                  name: teste-ssd2.demo.com.br
                  status: active
                - client_id: 8
                  creation_date: '2019-11-11T12:11:51-02:00'
                  name: teste-ssd.demo.com.br
                  status: active
                - client_id: 9510
                  creation_date: '2019-09-12T17:29:52-03:00'
                  name: testesururu.com.br
                  status: active
                - client_id: 18539
                  creation_date: '2019-04-19T18:20:02-03:00'
                  name: teste.1234.com.br
                  status: active
                total: 11
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting?filter[name]=meudominio.com'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Hospedagem
      summary: Criar site
      description: Esta chamada específica para criar um site. Basta completar os campos abaixo e o seu ambiente já estará preparado com um usuário ftp configurado para você transferir os arquivos.
      operationId: post_hosting
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome desejado do site a ser criado
                  example: meudominio.com.br
                client_id:
                  type: number
                  description: Id do cliente que o site deve ser referenciado
                  example: 100
                product_id:
                  type: number
                  description: Id do produto relacionado ao produto de hospedagem desejado para o site
                  example: 22
                ftp_login:
                  type: string
                  description: Nome do usuário ftp principal do site
                  example: usuario
                ftp_password:
                  type: string
                  description: Senha do usuário ftp principal do site
                  example: senha
                operation_system:
                  type: string
                  enum:
                  - '`linux`'
                  - '`windows`'
                  description: Sistema operacional no qual deseja instalar o site
                  example: linux
                payment_info_id:
                  type: number
                  description: Caso o cliente possua o produto em mais de um ciclo de pagamento, deve-se referenciar o ciclo de pagamento desejado neste campo
                  example: 222
                confirm_purchase:
                  type: string
                  enum:
                  - 'Default: `false`'
                  - '`true`'
                  - '`false`'
                  - '`1`'
                  - '`0`'
                  - '`on`'
                  - '`off`'
                  description: Se por acaso o número de assinaturas não for suficiente, deve-se enviar este campo com um valor que represente verdadeiro para confirmar a criação
                  example: 'true'
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      active:
                        type: boolean
                      ftp_user:
                        type: array
                        items:
                          type: object
                          properties:
                            login:
                              type: string
                            root_path:
                              type: string
                            owner_of_domain:
                              type: boolean
                      database:
                        type: array
                        items: {}
                      php_info:
                        type: object
                        properties:
                          error_reporting:
                            type: string
                          short_open_tag:
                            type: string
                          log_errors:
                            type: string
                          file_uploads:
                            type: string
                          php_version:
                            type: object
                            properties:
                              name:
                                type: string
                              minor_version:
                                type: string
                              major_version:
                                type: integer
                              php_processor:
                                type: string
                              full_version:
                                type: string
                              status:
                                type: string
                      disk_usage_statistics:
                        type: object
                        properties:
                          usage_percent:
                            type: number
                          items_they_use:
                            type: array
                            items:
                              type: string
                          total_used:
                            type: number
                          total_available:
                            type: number
                          usage_percent_by_items:
                            type: object
                            properties:
                              httpdocs:
                                type: number
                              httpsdocs:
                                type: integer
                              subdomains:
                                type: integer
                              web_users:
                                type: integer
                              anonftp:
                                type: integer
                              logs:
                                type: number
                              dbases:
                                type: integer
                              mailboxes:
                                type: number
                              maillists:
                                type: integer
                              domaindumps:
                                type: integer
                              configs:
                                type: number
                              chroot:
                                type: number
                      traffic_statistics:
                        type: object
                        properties:
                          usage_percent:
                            type: number
                          items_they_use:
                            type: array
                            items: {}
                          total_used:
                            type: number
                          total_available:
                            type: number
                          usage_percent_by_items:
                            type: array
                            items: {}
                      alias:
                        type: array
                        items: {}
                      sub_domain:
                        type: array
                        items: {}
                      client_id:
                        type: integer
                      creation_date:
                        type: string
              example:
                success: true
                data:
                  name: guilhermeteste.com.br
                  active: true
                  ftp_user:
                  - login: demonstration
                    root_path: /
                    owner_of_domain: true
                  database: []
                  php_info:
                    error_reporting: 'off'
                    short_open_tag: 'off'
                    log_errors: 'off'
                    file_uploads: 'off'
                    php_version:
                      name: 7.3.13 (fpm)
                      minor_version: '7.3'
                      major_version: 7
                      php_processor: fpm
                      full_version: 7.3.13
                      status: enabled
                  disk_usage_statistics:
                    usage_percent: 0.006103515625
                    items_they_use:
                    - httpdocs
                    - httpsdocs
                    - subdomains
                    - web_users
                    - anonftp
                    - logs
                    - dbases
                    - mailboxes
                    - maillists
                    - domaindumps
                    - configs
                    - chroot
                    total_used: 65536.0
                    total_available: 1073741824.0
                    usage_percent_by_items:
                      httpdocs: 6.25
                      httpsdocs: 0
                      subdomains: 0
                      web_users: 0
                      anonftp: 0
                      logs: 68.75
                      dbases: 0
                      mailboxes: 6.25
                      maillists: 0
                      domaindumps: 0
                      configs: 12.5
                      chroot: 6.25
                  traffic_statistics:
                    usage_percent: 0.0
                    items_they_use: []
                    total_used: 0.0
                    total_available: 5368709120.0
                    usage_percent_by_items: []
                  alias: []
                  sub_domain: []
                  client_id: 8
                  creation_date: '2019-08-16T11:42:58-03:00'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="name=meusite.com.br&operation_system=linux&&client_id=100&product_id=100&ftp_login_id=usuarioftp&password=minhasenha&payment_info_id=100&confirm_purchase=true"'
  /hosting/{domain}:
    get:
      tags:
      - Hospedagem
      summary: Recuperar informação de um site
      description: Esta chamada recupera as informações de um site específico
      operationId: get_hosting_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      active:
                        type: boolean
                      ftp_user:
                        type: array
                        items:
                          type: object
                          properties:
                            login:
                              type: string
                            root_path:
                              type: string
                            owner_of_domain:
                              type: boolean
                      database:
                        type: array
                        items: {}
                      php_info:
                        type: object
                        properties:
                          error_reporting:
                            type: string
                          short_open_tag:
                            type: string
                          log_errors:
                            type: string
                          file_uploads:
                            type: string
                          php_version:
                            type: object
                            properties:
                              name:
                                type: string
                              minor_version:
                                type: string
                              major_version:
                                type: integer
                              php_processor:
                                type: string
                              full_version:
                                type: string
                              status:
                                type: string
                      disk_usage_statistics:
                        type: object
                        properties:
                          usage_percent:
                            type: number
                          items_they_use:
                            type: array
                            items:
                              type: string
                          total_used:
                            type: number
                          total_available:
                            type: number
                          usage_percent_by_items:
                            type: object
                            properties:
                              httpdocs:
                                type: number
                              httpsdocs:
                                type: integer
                              subdomains:
                                type: integer
                              web_users:
                                type: integer
                              anonftp:
                                type: integer
                              logs:
                                type: number
                              dbases:
                                type: integer
                              mailboxes:
                                type: number
                              maillists:
                                type: integer
                              domaindumps:
                                type: integer
                              configs:
                                type: number
                              chroot:
                                type: number
                      traffic_statistics:
                        type: object
                        properties:
                          usage_percent:
                            type: number
                          items_they_use:
                            type: array
                            items: {}
                          total_used:
                            type: number
                          total_available:
                            type: number
                          usage_percent_by_items:
                            type: array
                            items: {}
                      alias:
                        type: array
                        items: {}
                      sub_domain:
                        type: array
                        items: {}
                      client_id:
                        type: integer
                      creation_date:
                        type: string
              example:
                success: true
                data:
                  name: guilhermeteste.com.br
                  active: true
                  ftp_user:
                  - login: demonstration
                    root_path: /
                    owner_of_domain: true
                  database: []
                  php_info:
                    error_reporting: 'off'
                    short_open_tag: 'off'
                    log_errors: 'off'
                    file_uploads: 'off'
                    php_version:
                      name: 7.3.13 (fpm)
                      minor_version: '7.3'
                      major_version: 7
                      php_processor: fpm
                      full_version: 7.3.13
                      status: enabled
                  disk_usage_statistics:
                    usage_percent: 0.006103515625
                    items_they_use:
                    - httpdocs
                    - httpsdocs
                    - subdomains
                    - web_users
                    - anonftp
                    - logs
                    - dbases
                    - mailboxes
                    - maillists
                    - domaindumps
                    - configs
                    - chroot
                    total_used: 65536.0
                    total_available: 1073741824.0
                    usage_percent_by_items:
                      httpdocs: 6.25
                      httpsdocs: 0
                      subdomains: 0
                      web_users: 0
                      anonftp: 0
                      logs: 68.75
                      dbases: 0
                      mailboxes: 6.25
                      maillists: 0
                      domaindumps: 0
                      configs: 12.5
                      chroot: 6.25
                  traffic_statistics:
                    usage_percent: 0.0
                    items_they_use: []
                    total_used: 0.0
                    total_available: 5368709120.0
                    usage_percent_by_items: []
                  alias: []
                  sub_domain: []
                  client_id: 8
                  creation_date: '2019-08-16T11:42:58-03:00'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Hospedagem
      summary: Atualizar informações de status de um site
      description: Nesta chamada você pode habilitar ou desabilitar um site específico. Desabilitar um site
      operationId: put_hosting_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                active:
                  type: string
                  enum:
                  - '`true`'
                  - '`false`'
                  description: Indicação de status ativo do site.
                  example: 'true'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      active:
                        type: boolean
                      ftp_user:
                        type: array
                        items:
                          type: object
                          properties:
                            login:
                              type: string
                            root_path:
                              type: string
                            owner_of_domain:
                              type: boolean
                      database:
                        type: array
                        items: {}
                      php_info:
                        type: object
                        properties:
                          error_reporting:
                            type: string
                          short_open_tag:
                            type: string
                          log_errors:
                            type: string
                          file_uploads:
                            type: string
                          php_version:
                            type: object
                            properties:
                              name:
                                type: string
                              minor_version:
                                type: string
                              major_version:
                                type: integer
                              php_processor:
                                type: string
                              full_version:
                                type: string
                              status:
                                type: string
                      disk_usage_statistics:
                        type: object
                        properties:
                          usage_percent:
                            type: number
                          items_they_use:
                            type: array
                            items:
                              type: string
                          total_used:
                            type: number
                          total_available:
                            type: number
                          usage_percent_by_items:
                            type: object
                            properties:
                              httpdocs:
                                type: number
                              httpsdocs:
                                type: integer
                              subdomains:
                                type: integer
                              web_users:
                                type: integer
                              anonftp:
                                type: integer
                              logs:
                                type: number
                              dbases:
                                type: integer
                              mailboxes:
                                type: number
                              maillists:
                                type: integer
                              domaindumps:
                                type: integer
                              configs:
                                type: number
                              chroot:
                                type: number
                      traffic_statistics:
                        type: object
                        properties:
                          usage_percent:
                            type: number
                          items_they_use:
                            type: array
                            items: {}
                          total_used:
                            type: number
                          total_available:
                            type: number
                          usage_percent_by_items:
                            type: array
                            items: {}
                      alias:
                        type: array
                        items: {}
                      sub_domain:
                        type: array
                        items: {}
                      client_id:
                        type: integer
                      creation_date:
                        type: string
              example:
                success: true
                data:
                  name: guilhermeteste.com.br
                  active: true
                  ftp_user:
                  - login: demonstration
                    root_path: /
                    owner_of_domain: true
                  database: []
                  php_info:
                    error_reporting: 'off'
                    short_open_tag: 'off'
                    log_errors: 'off'
                    file_uploads: 'off'
                    php_version:
                      name: 7.3.13 (fpm)
                      minor_version: '7.3'
                      major_version: 7
                      php_processor: fpm
                      full_version: 7.3.13
                      status: enabled
                  disk_usage_statistics:
                    usage_percent: 0.006103515625
                    items_they_use:
                    - httpdocs
                    - httpsdocs
                    - subdomains
                    - web_users
                    - anonftp
                    - logs
                    - dbases
                    - mailboxes
                    - maillists
                    - domaindumps
                    - configs
                    - chroot
                    total_used: 65536.0
                    total_available: 1073741824.0
                    usage_percent_by_items:
                      httpdocs: 6.25
                      httpsdocs: 0
                      subdomains: 0
                      web_users: 0
                      anonftp: 0
                      logs: 68.75
                      dbases: 0
                      mailboxes: 6.25
                      maillists: 0
                      domaindumps: 0
                      configs: 12.5
                      chroot: 6.25
                  traffic_statistics:
                    usage_percent: 0.0
                    items_they_use: []
                    total_used: 0.0
                    total_available: 5368709120.0
                    usage_percent_by_items: []
                  alias: []
                  sub_domain: []
                  client_id: 8
                  creation_date: '2019-08-16T11:42:58-03:00'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="active=false"'
    delete:
      tags:
      - Hospedagem
      summary: Remover site
      description: Nesta chamada você consegue remover a hospedagem de um site. Muito cuidado, pois todas as informações relacionadas ao site como banco de dados, usuários ftp, apelidos, os arquivos contidos nele e etc... também serão removidas.
      operationId: delete_hosting_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting/{domain}/php-version:
    get:
      tags:
      - Hospedagem
      summary: Recuperar Versões PHP disponíveis para instalar no site
      description: Nesta chamada você consegue listar quais são as versões disponíveis de PHP para ser configurada em um site.
      operationId: get_hosting_domain_php_version
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        minor_version:
                          type: string
                        major_version:
                          type: integer
                        php_processor:
                          type: string
                        full_version:
                          type: string
                        status:
                          type: string
              example:
                success: true
                data:
                - name: 7.3.9 (fpm)
                  minor_version: '7.3'
                  major_version: 7
                  php_processor: fpm
                  full_version: 7.3.9
                  status: enabled
                - name: 5.4.16 (fpm)
                  minor_version: '5.4'
                  major_version: 5
                  php_processor: fpm
                  full_version: 5.4.16
                  status: enabled
                - name: 5.6.40 (fpm)
                  minor_version: '5.6'
                  major_version: 5
                  php_processor: fpm
                  full_version: 5.6.40
                  status: enabled
                - name: 7.0.33 (fpm)
                  minor_version: '7.0'
                  major_version: 7
                  php_processor: fpm
                  full_version: 7.0.33
                  status: enabled
                - name: 7.1.33 (fpm)
                  minor_version: '7.1'
                  major_version: 7
                  php_processor: fpm
                  full_version: 7.1.33
                  status: enabled
                - name: 7.2.26 (fpm)
                  minor_version: '7.2'
                  major_version: 7
                  php_processor: fpm
                  full_version: 7.2.26
                  status: enabled
                - name: 7.3.13 (fpm)
                  minor_version: '7.3'
                  major_version: 7
                  php_processor: fpm
                  full_version: 7.3.13
                  status: enabled
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/php-version'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting/{domain}/php-info:
    get:
      tags:
      - Hospedagem
      summary: Listar Informações do PHP no Site
      description: Nesta chamada você consegue recuperar as informações do PHP instalado no site.
      operationId: get_hosting_domain_php_info
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      upload_max_file_size:
                        type: string
                      error_reporting:
                        type: string
                      short_open_tag:
                        type: string
                      log_errors:
                        type: string
                      file_uploads:
                        type: string
                      php_version:
                        type: object
                        properties:
                          name:
                            type: string
                          minor_version:
                            type: string
                          major_version:
                            type: integer
                          php_processor:
                            type: string
                          full_version:
                            type: string
                          status:
                            type: string
              example:
                success: true
                data:
                  upload_max_file_size: 8M
                  error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
                  short_open_tag: 'on'
                  log_errors: 'off'
                  file_uploads: 'off'
                  php_version:
                    name: 7.3.13 (fpm)
                    minor_version: '7.3'
                    major_version: 7
                    php_processor: fpm
                    full_version: 7.3.13
                    status: enabled
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/php-info'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Hospedagem
      summary: Atualizar Informações do PHP no Site
      description: Esta é a chamada que atualiza uma ou mais informações de php de um site. Atualizar o atributo upload_max_file_size
      operationId: put_hosting_domain_php_info
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                upload_max_file_size:
                  type: string
                  description: Tamanho máximo de upload de arquivo
                  example: 10M
                error_reporting:
                  type: string
                  enum:
                  - 'Default: `E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED`'
                  - '`E_ALL`'
                  - '`E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED`'
                  description: Nível de log de erros para exibição no log
                  example: E_ALL
                short_open_tag:
                  type: string
                  enum:
                  - 'Default: `on`'
                  - '`on`'
                  - '`off`'
                  description: Habilitar ou desabilitar reconhecer um script php com <?
                  example: 'on'
                max_input_time:
                  type: number
                  description: Tempo máximo de execução de um script em segundos
                  example: 10
                log_errors:
                  type: string
                  enum:
                  - 'Default: `on`'
                  - '`on`'
                  - '`off`'
                  description: Habilitar gravar log dos erros
                  example: 'on'
                file_uploads:
                  type: string
                  enum:
                  - 'Default: `on`'
                  - '`on`'
                  - '`off`'
                  description: Habilitar ou desabilitar upload de arquivos
                  example: 'on'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      upload_max_file_size:
                        type: string
                      error_reporting:
                        type: string
                      short_open_tag:
                        type: string
                      log_errors:
                        type: string
                      file_uploads:
                        type: string
                      php_version:
                        type: object
                        properties:
                          name:
                            type: string
                          minor_version:
                            type: string
                          major_version:
                            type: integer
                          php_processor:
                            type: string
                          full_version:
                            type: string
                          status:
                            type: string
              example:
                success: true
                data:
                  upload_max_file_size: 8M
                  error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
                  short_open_tag: 'on'
                  log_errors: 'off'
                  file_uploads: 'off'
                  php_version:
                    name: 7.3.13 (fpm)
                    minor_version: '7.3'
                    major_version: 7
                    php_processor: fpm
                    full_version: 7.3.13
                    status: enabled
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato inválido de atributo'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i PUT ''https://api.skymail.net.br//hosting/meudominio.com.br/php-info'' --data="upload_max_file_size=10M" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting/{domain}/alias:
    get:
      tags:
      - Hospedagem
      summary: Listar Apelidos de Site
      description: Nesta chamada você consegue listar todos os apelidos que o site possue.
      operationId: get_hosting_domain_alias
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        seo_redirect:
                          type: boolean
                        creation_date:
                          type: string
              example:
                success: true
                data:
                - name: dominio1.com.br
                  seo_redirect: true
                  creation_date: '2019-12-17T17:39:36-03:00'
                - name: dominio2.com.br
                  seo_redirect: true
                  creation_date: '2019-12-17T17:39:20-03:00'
                - name: dominio3.com.br
                  seo_redirect: true
                  creation_date: '2019-12-17T17:39:36-03:00'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/alias'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Hospedagem
      summary: Criar Apelido de Site
      description: Nesta chamada você consegue criar um apelido para o site.
      operationId: post_hosting_domain_alias
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome desejado do apelido a ser criado
                  example: meudominio.com.br
                seo_redirect:
                  type: string
                  enum:
                  - '`true`'
                  - '`false`'
                  - '`1`'
                  - '`0`'
                  - '`on`'
                  - '`off`'
                  description: Caso queria já configurar um redirecionamento 301 para o apelido
                  example: 'true'
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      seo_redirect:
                        type: boolean
              example:
                success: true
                data:
                  name: skydemo.com.br
                  seo_redirect: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i POST ''https://api.skymail.net.br/hosting/meudominio.com.br/alias'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="name=meudominio.com.br&seo_redirect=false"'
  /hosting/{domain}/alias/{aliasDomain}:
    get:
      tags:
      - Hospedagem
      summary: Recuperar informações de um Apelido de Site
      description: Nesta chamada você consegue recuperar as informações de um apelido específico de um site.
      operationId: get_hosting_domain_alias_aliasDomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: aliasDomain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      seo_redirect:
                        type: boolean
              example:
                success: true
                data:
                  name: skydemo.com.br
                  seo_redirect: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/alias/dominio1.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Hospedagem
      summary: Atualizar informações de apelido de um site
      description: Atualizar informação de seo_redirect Atualizar nome do apelido
      operationId: put_hosting_domain_alias_aliasDomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: aliasDomain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome desejado do apelido a ser atualizado
                  example: meudominio.com.br
                seo_redirect:
                  type: string
                  enum:
                  - '`true`'
                  - '`false`'
                  - '`1`'
                  - '`0`'
                  - '`on`'
                  - '`off`'
                  description: Caso queria modificar o redirecionamento 301 para o apelido
                  example: 'true'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      seo_redirect:
                        type: boolean
              example:
                success: true
                data:
                  name: novonomedoapelido.com.br
                  seo_redirect: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i PUT ''https://api.skymail.net.br/hosting/meudominio.com.br/alias/apelido.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache''  --data="seo_redirect=true"'
    delete:
      tags:
      - Hospedagem
      summary: Remover apelido de um site
      description: Nesta chamada você consegue remover o apelido de um site.
      operationId: delete_hosting_domain_alias_aliasDomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: aliasDomain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/alias/nomedoapelido.com.br'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting/{domain}/ftp-user:
    get:
      tags:
      - Hospedagem
      summary: Listar Usuários FTP
      description: Nesta chamada você consegue listar todos os usuários ftp que o site possue.
      operationId: get_hosting_domain_ftp_user
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: query
        in: query
        required: false
        schema:
          type: string
      - name: clientId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        login:
                          type: string
                        root_path:
                          type: string
                        owner_of_domain:
                          type: boolean
              example:
                success: true
                data:
                - login: novosite
                  root_path: /
                  owner_of_domain: true
                - login: dir_novosite
                  root_path: /httpdocs/novosite
                - login: dir_atual
                  root_path: /
                - login: marketing1
                  root_path: /marketing
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/ftp-user'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Hospedagem
      summary: Criar Usuário FTP
      description: Nesta chamada você consegue criar um usuário ftp para o site.
      operationId: post_hosting_domain_ftp_user
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                login:
                  type: string
                  description: Nome desejado do usuário ftp a ser criado
                  example: meuuserftp
                password:
                  type: string
                  description: Senha do usuário ftp a ser criado
                  example: senhadousuario
                root_path:
                  type: string
                  description: Diretório que o usuário terá permissão de visualização/escrita
                  example: /marketing
                create_dir:
                  type: string
                  enum:
                  - 'Default: `false`'
                  - '`true`'
                  - '`false`'
                  - '`1`'
                  - '`0`'
                  - '`on`'
                  - '`off`'
                  description: Caso queria já criar o diretório referenciado no atributo de diretório
                  example: 'true'
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                      seo_redirect:
                        type: boolean
              example:
                success: true
                data:
                  name: skydemo.com.br
                  seo_redirect: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i POST ''https://api.skymail.net.br/hosting/meudominio.com.br/ftp-user'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="login=meuuserftp&password=senhadousuario&root_path=/marketing&create_dir=true"'
  /hosting/{domain}/ftp-user/{login}:
    get:
      tags:
      - Hospedagem
      summary: Recuperar informações de um Usuário FTP
      description: Nesta chamada você consegue listar as informações de um usuário ftp do site
      operationId: get_hosting_domain_ftp_user_login
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: login
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      login:
                        type: string
                      root_path:
                        type: string
                      owner_of_domain:
                        type: boolean
              example:
                success: true
                data:
                  login: novosite
                  root_path: /
                  owner_of_domain: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/ftp-user'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Hospedagem
      summary: Atualizar senha do usuário FTP
      description: Nesta chamada você consegue atualizar a senha de um usuário FTP
      operationId: put_hosting_domain_ftp_user_login
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: login
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                password:
                  type: string
                  description: Nova senha do usuário ftp a ser atualizado
                  example: novasenhadousuario
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      login:
                        type: string
                      root_path:
                        type: string
                      owner_of_domain:
                        type: boolean
              example:
                success: true
                data:
                  login: novosite
                  root_path: /
                  owner_of_domain: true
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i PUT ''https://api.skymail.net.br/hosting/meudominio.com.br/ftp-user/usuarioftp'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="password=minhanovasenha"'
    delete:
      tags:
      - Hospedagem
      summary: Remover Usuário FTP
      operationId: delete_hosting_domain_ftp_user_login
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: login
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/ftp-user/usuarioftp'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting/{domain}/database:
    get:
      tags:
      - Hospedagem
      summary: Listar Bancos de Dados
      description: Nesta chamada você consegue listar todos os bancos de dados que o site possue.
      operationId: get_hosting_domain_database
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        name:
                          type: string
                        users:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                              login:
                                type: string
                              acl_host:
                                type: string
                        type:
                          type: string
                        host:
                          type: string
              example:
                success: true
                data:
                - id: 134
                  name: bancosdedados1
                  users:
                  - id: 135
                    login: login1
                    acl_host: 192.168.51.%
                  type: mysql
                  host: mysql4.site.local:3306
                - id: 149
                  name: wp_bancosdedados1
                  users:
                  - id: 150
                    login: login2
                    acl_host: 192.168.51.%
                  type: mysql
                  host: mysql4.site.local:3306
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Hospedagem
      summary: Criar Banco de Dados
      description: Nesta chamada você consegue criar um banco de dados para o site. Posteriormente para acesso, você precisa criar um usuário pra ele.
      operationId: post_hosting_domain_database
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome desejado do banco de dados a ser criado
                  example: meubancodedados
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      name:
                        type: string
                      users:
                        type: array
                        items: {}
                      type:
                        type: string
                      host:
                        type: string
              example:
                success: true
                data:
                  id: 149
                  name: meubancodedados
                  users: []
                  type: mysql
                  host: mysql4.site.local:3306
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i POST ''https://api.skymail.net.br/hosting/meudominio.com.br/database'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="name=meubancodedados"'
  /hosting/{domain}/database/{name}:
    get:
      tags:
      - Hospedagem
      summary: Recuperar informações de um Banco de Dados
      description: Nesta chamada você consegue listar as informações de um banco de dados do site
      operationId: get_hosting_domain_database_name
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    {\n        \"id\": 149,\n        \"name\": \"meubancodedados\",\n        \"users\": [\n            {\n                \"id\": 150,\n                \"login\": \"login2\",\n                \"acl_host\": \"192.168.51.%\"\n            }\n        ],\n        \"type\": \"mysql\",\n        \"host\": \"mysql4.site.local:3306\"\n    }\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meubancodedados'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Hospedagem
      summary: Remover Banco de Dados
      operationId: delete_hosting_domain_database_name
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meubancodedados'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /hosting/{domain}/database/{name}/user:
    get:
      tags:
      - Hospedagem
      summary: Listar Usuários de Bancos de Dados
      description: Nesta chamada você consegue listar todos usuários de um bancos de dados que o site possue.
      operationId: get_hosting_domain_database_name_user
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        login:
                          type: string
                        acl_host:
                          type: string
              example:
                success: true
                data:
                - id: 135
                  login: login1
                  acl_host: 192.168.51.%
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meubancodedados/user'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Hospedagem
      summary: Criar Usuário de Banco de Dados
      description: Nesta chamada você consegue criar um Usuário de banco de dados para o banco de dados
      operationId: post_hosting_domain_database_name_user
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                login:
                  type: string
                  description: Nome desejado do usuário a ser criado
                  example: usuariodobanco
                password:
                  type: string
                  description: Senha do usuário a ser criado
                  example: senhadousuário
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      login:
                        type: string
                      acl_host:
                        type: string
              example:
                success: true
                data:
                  id: 135
                  login: login1
                  acl_host: 192.168.51.%
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i POST ''https://api.skymail.net.br/hosting/meudominio.com.br/database'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="login=usuariodobanco&password=senhadousuario"'
  /hosting/{domain}/database/{name}/user/{login}:
    get:
      tags:
      - Hospedagem
      summary: Recuperar informações de um Usuário de Banco de Dados
      description: Nesta chamada você consegue listar as informações de um Usuário de banco de dados do site
      operationId: get_hosting_domain_database_name_user_login
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: login
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      login:
                        type: string
                      acl_host:
                        type: string
              example:
                success: true
                data:
                  id: 135
                  login: login1
                  acl_host: 192.168.51.%
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meubancodedados/user/meulogin'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Hospedagem
      summary: Atualizar um Usuário de Banco de Dados
      description: Nesta chamada você consegue atualizar as informação de usuário e senha de um Usuário de banco de dados
      operationId: put_hosting_domain_database_name_user_login
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: login
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                login:
                  type: string
                  description: Nome desejado do usuário a ser atualizado
                  example: usuariodobanco
                password:
                  type: string
                  description: Senha do usuário a ser atualizado
                  example: senhadousuário
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      login:
                        type: string
                      acl_host:
                        type: string
              example:
                success: true
                data:
                  id: 135
                  login: usuarioatualizado
                  acl_host: 192.168.51.%
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i PUT ''https://api.skymail.net.br/hosting/meudominio.com.br/database/user/usuariodobanco'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'' --data="login=novousuariodobanco&password=novasenha"'
    delete:
      tags:
      - Hospedagem
      summary: Remover Usuário de Banco de Dados
      description: Nesta chamada você consegue remover um Usuário de banco de dados
      operationId: delete_hosting_domain_database_name_user_login
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: login
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meubancodedados/user/meuusuariodebanco'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client:
    post:
      tags:
      - Clientes
      summary: Criar Cliente
      description: Esta é a chamada para criação de Cliente. > Disponível somente para revendedores.
      operationId: post_client
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome (Razão Social) do cliente a ser criado.
                taxNumber:
                  type: string
                  description: CPF/CNPJ do cliente a ser criado. Sem pontuação.
              required:
              - name
              - taxNumber
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n    \"data\" : {\n        \"clientId\": 1215\n        \"name\" : \"Meu primeiro cliente\",\n        \"taxNumber\": \"1615454515115\",\n        \"status\": \"active\"\n    }\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de cpf/cnpj inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/client'' --data="name=Meu primeiro cliente&taxNumber=54555154000142&parentId=1577" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    get:
      tags:
      - Clientes
      summary: Listar Clientes
      description: Esta é a chamada para listar seus clientes.
      operationId: get_client
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items: {}
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
              example:
                success: true
                data: []
                page: 1
                perPage: 1
                numPages: 0
                total: 0
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client?page=1&perPage=2&query=teste'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}:
    get:
      tags:
      - Clientes
      summary: Informações de Cliente
      description: Esta é a chamada para visualizar informações do cliente.
      operationId: get_client_clientId
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja consultar
        required: true
        schema:
          type: integer
          example: '1'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      client_id:
                        type: integer
                      tax_number:
                        type: string
                      client_status:
                        type: string
                      creation_date:
                        type: string
                      client_type:
                        type: string
                      name:
                        type: string
                      client_account_manager:
                        type: object
                        properties: {}
                      logradouro:
                        type: string
                      numero:
                        type: string
                      charge_used_only:
                        type: boolean
                      client_category:
                        type: object
                        properties: {}
              example:
                success: true
                data:
                  client_id: 1
                  tax_number: '0000000001'
                  client_status: ACTIVE
                  creation_date: '2026-01-01T00:00:00-02:00'
                  client_type: REVENUE
                  name: CLIENTE TESTE
                  client_account_manager: {}
                  logradouro: Endereço Teste
                  numero: '1'
                  charge_used_only: true
                  client_category: {}
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Client not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/1'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/block:
    put:
      tags:
      - Clientes
      summary: Bloquear cliente
      description: Esta é a chamada para o bloqueio de cliente. > Disponível somente para revendedores.
      operationId: put_client_clientId_block
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja bloquear
        required: true
        schema:
          type: integer
          example: '33342'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                reason:
                  type: string
                  enum:
                  - '`Inadimplência financeira`'
                  - '`Solicitação de cancelamento`'
                  - '`Fim de contrato`'
                  - '`Rescisão de contrato`'
                  - '`Outros motivos`'
                  example: Inadimplência financeira  Razão do bloqueio
              required:
              - reason
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Client not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/client/3331/block'' --data="reason=Outros motivos" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/unblock:
    put:
      tags:
      - Clientes
      summary: Desbloquear cliente
      description: Esta é a chamada para o desbloqueio de clientes que estão bloqueados no sistema. > Disponível somente para revendedores.
      operationId: put_client_clientId_unblock
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja desbloquear
        required: true
        schema:
          type: integer
          example: '33342'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Client not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/client/3331/unblock'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/product:
    get:
      tags:
      - Clientes
      summary: Listar produtos de cliente
      description: Esta é a chamada para listagem de produtos de um Cliente.
      operationId: get_client_clientId_product
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja retornar as informações de produtos
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        productId:
                          type: integer
                        name:
                          type: string
                        creationDate:
                          type: string
                        amount:
                          type: integer
                        total:
                          type: integer
              example:
                success: true
                data:
                - productId: 19
                  name: Backup 30 dias
                  creationDate: '2015-09-04T00:00:00-03:00'
                  amount: 123
                  total: 0
                - productId: 31
                  name: Sala de Reunião
                  creationDate: '2015-10-22T00:00:00-02:00'
                  amount: 5
                  total: 0
                - productId: 11
                  name: DNS
                  creationDate: '2013-06-03T00:00:00-03:00'
                  amount: 16
                  total: 0
                - productId: 61
                  name: E-mail Admin Sharepoint
                  creationDate: '2014-09-22T00:00:00-03:00'
                  amount: 1
                  total: 0
                - productId: 4
                  name: Grupo de E-mail
                  creationDate: '2013-05-16T00:00:00-03:00'
                  amount: 30
                  total: 0
                - productId: 7
                  name: SkyMail 50GB
                  creationDate: '2016-02-24T00:00:00-03:00'
                  amount: 500
                  total: 0
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de cpf/cnpj inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/9999/product'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Clientes
      summary: Contratar um novo produto para o cliente
      description: Esta é a chamada para realizar uma nova contratação de produto.
      operationId: post_client_clientId_product
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                product:
                  type: number
                  description: Id do produto a ser contratado
                amount:
                  type: number
                  description: Quantidade a ser contratada
              required:
              - product
              - amount
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      productId:
                        type: integer
                      name:
                        type: string
                      creationDate:
                        type: string
                      amount:
                        type: integer
                      count:
                        type: integer
                      items:
                        type: array
                        items: {}
              example:
                success: true
                data:
                  productId: 1
                  name: Domínio
                  creationDate: '2016-02-24T00:00:00-03:00'
                  amount: 10
                  count: 10
                  items: []
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de quantidade ou produto inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Produto ou cliente não encontrado
        '409':
          description: O item a ser criado ja existe (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Erro relacionado a contratação do produto, produto já contratado ou não pode contratar esse produto.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/client/1/product'' --data="product=1&amount=10" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/product/{productId}:
    get:
      tags:
      - Clientes
      summary: Listar informações de um produto do cliente
      description: Esta é a chamada para listagem informações de um produto de um Cliente.
      operationId: get_client_clientId_product_productId
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja retornar as informações de produtos
        required: true
        schema:
          type: integer
      - name: productId
        in: path
        description: Id do produto que deseja retornar as informações
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n    \"data\" : {\n        \"productId\": 7,\n        \"name\": \"SkyMail 50GB\",\n        \"creationDate\": \"2016-02-24T00:00:00-03:00\",\n        \"amount\": 500,\n        \"total\": 0\n        \"count\": 10,\n        \"items\": [{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta2@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta3@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta4@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta5@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta6@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta7@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta8@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta9@dominio.com\"\n        },{\n            \"creationDate\": \"2015-09-04T00:00:00-03:00\",\n            \"item\": \"testedeconta10@dominio.com\"\n        }]\n    }\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de cpf/cnpj inválido'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/9999/product/292'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Clientes
      summary: Modificar a quantidade contratada do produto para o cliente
      description: Esta é a chamada para realizar a alteração de quantidade contratada de um produto para um cliente
      operationId: put_client_clientId_product_productId
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: string
      - name: productId
        in: path
        required: true
        schema:
          type: string
      - name: payment-info
        in: query
        description: Caso tenha o produto contratado em mais de um ciclo de pagamento/contrato, informar
        required: false
        schema:
          type: number
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                amount:
                  type: number
                  description: Quantidade a ser contratada
              required:
              - amount
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      productId:
                        type: integer
                      name:
                        type: string
                      creationDate:
                        type: string
                      amount:
                        type: integer
                      count:
                        type: integer
                      items:
                        type: array
                        items: {}
              example:
                success: true
                data:
                  productId: 1
                  name: Domínio
                  creationDate: '2016-02-24T00:00:00-03:00'
                  amount: 22
                  count: 22
                  items: []
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato de quantidade ou produto inválido, valor menor que o valor mínimo contratado, valor menor que o valor de cortesia concedido.'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Produto ou cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/client/1/product/22'' --data="amount=22" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Clientes
      summary: Remover a contratação do produto para o cliente
      description: Esta é a chamada para realizar a remoção da contratação de um produto para um cliente
      operationId: delete_client_clientId_product_productId
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: string
      - name: productId
        in: path
        required: true
        schema:
          type: string
      - name: payment-info
        in: query
        description: Caso tenha o produto contratado em mais de um ciclo de pagamento/contrato, informar
        required: false
        schema:
          type: number
          example: '1'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: O produto possui contratação mínima definida, possui serviços atrelados ao produto.'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Produto ou cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/client/1/product/22'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/app-feature:
    get:
      tags:
      - Clientes
      summary: Listar funcionalidade
      description: Esta chamada retorna a lista completa de aplicações ou funcionalidades associadas ao cliente.
      operationId: get_client_clientId_app_feature
      parameters:
      - name: clientId
        in: path
        description: ID do Cliente
        required: true
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": [\n        \"skybox.enabledeck\": \"Enable skybox deck app\",\n        \"skybox.enabletalk\": \"Enable conference/talk app\"\n    ]\n}"
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: App Feature not found
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/1/app-feature'' -H ''Authorization: bearer jwt.token.generated'''
  /client/{clientId}/app-feature/{featurekey}:
    get:
      tags:
      - Clientes
      summary: Consultar funcionalidade
      description: Esta chamada verifica se uma determinada aplicação ou funcionalidade está ativa para o cliente informado.
      operationId: get_client_clientId_app_feature_featurekey
      parameters:
      - name: clientId
        in: path
        description: ID do Cliente
        required: true
        schema:
          type: string
          example: '1'
      - name: featurekey
        in: path
        description: Nome da feature a ser consultada
        required: true
        schema:
          type: string
          example: deck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      isEnable:
                        type: boolean
                      flag:
                        type: string
                      details:
                        type: string
                      message:
                        type: string
              example:
                success: true
                data:
                  isEnable: true
                  flag: skybox.enabledeck
                  details: Enable skybox deck app
                  message: It has the skybox.enabledeck enabled.
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Feature não encontrada para este cliente
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/1/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Clientes
      summary: Habilitar funcionalidade
      description: Esta chamada habilita a aplicação ou funcionalidade desejada para o cliente.
      operationId: post_client_clientId_app_feature_featurekey
      parameters:
      - name: clientId
        in: path
        description: ID do Cliente
        required: true
        schema:
          type: string
          example: '1'
      - name: featurekey
        in: path
        description: Feature a ser habilitada.
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: string
              example:
                success: true
                data:
                - skybox.enabledeck
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/client/1/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Clientes
      summary: Desabilitar funcionalidade
      description: Esta chamada desabilita a aplicação ou funcionalidade desejada para o cliente.
      operationId: delete_client_clientId_app_feature_featurekey
      parameters:
      - name: clientId
        in: path
        description: ID do Cliente
        required: true
        schema:
          type: string
          example: '1'
      - name: featurekey
        in: path
        description: Feature a ser desabilitada
        required: true
        schema:
          type: string
          example: skybox.enabledeck
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: string
              example:
                success: true
                data:
                - skybox.enabledeck
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Item not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/client/1/app-feature/skybox.enabledeck'' -H ''Authorization: bearer jwt.token.generated'''
  /client/{clientId}/web-hook:
    get:
      tags:
      - Clientes
      summary: Listar os webhooks cadastrados
      description: Chamada para retorno dos webhooks cadastrados para o cliente.
      operationId: get_client_clientId_web_hook
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja retornar as informações de produtos
        required: true
        schema:
          type: integer
          example: '8'
      - name: filters
        in: query
        description: Busca por valores do resultado. Aceita os parâmetros httpMethod, url, enabled.
        required: false
        schema:
          type: array
          example: '[httpMethod]=POST'
      - name: page
        in: query
        description: Filtro da página a ser apresentada no resultado.
        required: false
        schema:
          type: integer
          example: '1'
      - name: perPage
        in: query
        description: Número de itens por página
        required: false
        schema:
          type: integer
          example: '20'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            text/plain:
              example: "{\n    \"success\": true,\n    \"data\": {\n            \"id\": 5076,\n            \"httpMethod\": \"POST\",\n            \"createdAt\": \"2019-01-23T02:40:37-02:00\",\n            \"basicAuthentication\": \"dXNlcm5hbWU6cGFzc3dvcmQ=\",\n            \"url\": \"http://xptop.com.br\",\n            \"enabled\": true,\n            \"clientId\": 8,\n            \"webHook\": \"client_hire_update\"\n        },\n        {\n            \"id\": 5077,\n            \"httpMethod\": \"GET\",\n            \"createdAt\": \"2019-01-23T02:41:05-02:00\",\n            \"basicAuthentication\": \"\",\n            \"url\": \"http://xptop2.com.br\",\n            \"enabled\": true,\n            \"clientId\": 8,\n            \"webHook\": \"client_hire_update\"\n        },\n        {\n            \"id\": 7047,\n            \"httpMethod\": \"POST\",\n            \"createdAt\": \"2019-01-24T11:36:06-02:00\",\n            \"basicAuthentication\": \"\",\n            \"url\": \"http://sa.com\",\n            \"enabled\": true,\n            \"clientId\": 8,\n            \"webHook\": \"client_hire_update\"\n        },\n        {\n            \"id\": 7048,\n            \"httpMethod\": \"POST\",\n            \"createdAt\": \"2019-01-24T11:39:53-02:00\",\n            \"basicAuthentication\": \"\",\n            \"url\": \"http://sa.com\",\n            \"enabled\": true,\n            \"clientId\": 8,\n            \"webHook\": \"client_hire_create\"\n        },\n        {\n            \"id\": 8045,\n            \"httpMethod\": \"POST\",\n            \"createdAt\": \"2019-01-24T14:38:00-02:00\",\n            \"basicAuthentication\": \"\",\n            \"url\": \"http://sa2.com\",\n            \"enabled\": true,\n            \"clientId\": 8,\n            \"webHook\": \"client_hire_create\"\n        },\n        {\n            \"id\": 8046,\n            \"httpMethod\": \"POST\",\n            \"createdAt\": \"2019-01-24T14:47:37-02:00\",\n            \"basicAuthentication\": \"\",\n            \"url\": \"http://sa22.com\",\n            \"enabled\": true,\n            \"clientId\": 8,\n            \"webHook\": \"client_hire_create\"\n        }\n    ],\n    \"page\": 1,\n    \"perPage\": 20,\n    \"numPages\": 1,\n    \"total\": 6\n}"
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/8/web-hook?filters[httpMethod]=POST'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Clientes
      summary: Cadastrar um novo webhook para o cliente
      description: Esta é a chamada para realizar o cadastro de um novo webhook para um cliente.
      operationId: post_client_clientId_web_hook
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja cadastrar o webHook
        required: true
        schema:
          type: integer
          example: '8'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Url que o webhook deve chamar
                  example: http://minhaurl.com
                httpMethod:
                  type: string
                  description: Método http da chamada
                  example: POST
                webHook:
                  type: string
                  description: Nome do evento do webhook para que se deseja cadastrar. Pode ser recuperada as possibilidades pela chamada GET /web-hook
                  example: client_hire_create
                basicAuthentication:
                  type: string
                  description: 'base64 de usuário e senha separados por : para autenticação na url do webhookClient.'
                  example: dXNlcm5hbWU6cGFzc3dvcmQ=
                enabled:
                  type: number
                  description: Flag para apontamento se o webHookClient está ativo ou não. 1 = true, 0 = false
                  example: 1
              required:
              - url
              - httpMethod
              - webHook
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      httpMethod:
                        type: string
                      createdAt:
                        type: string
                      basicAuthentication:
                        type: string
                      url:
                        type: string
                      enabled:
                        type: boolean
                      clientId:
                        type: integer
                      webHook:
                        type: string
              example:
                success: true
                data:
                  id: 10816
                  httpMethod: POST
                  createdAt: '2019-01-24T19:00:50-02:00'
                  basicAuthentication: ''
                  url: http://sa2x2.com
                  enabled: true
                  clientId: 8
                  webHook: client_hire_create
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato da url inválida'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Evento de webHook não encontrado
        '409':
          description: O item a ser criado ja existe (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Não se pode cadastrar um webhookClient com o mesmo webhook, cliente e url.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/client/1/web-hook'' --data="url=http://sa2x2.com&httpMethod=POST&webHook=client_hire_create" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/web-hook/{webHookClientId}:
    get:
      tags:
      - Clientes
      summary: Recuperar dados de um web hook cadastrado
      description: Chamada para retorno dos webhooks cadastrados para o cliente.
      operationId: get_client_clientId_web_hook_webHookClientId
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja retornar as informações de produtos
        required: true
        schema:
          type: integer
          example: '8'
      - name: webHookClientId
        in: path
        description: Id do webhook presenta no retorno da listagem de webhooks cadastrados
        required: true
        schema:
          type: integer
          example: '5076'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      httpMethod:
                        type: string
                      createdAt:
                        type: string
                      basicAuthentication:
                        type: string
                      url:
                        type: string
                      enabled:
                        type: boolean
                      clientId:
                        type: integer
                      webHook:
                        type: string
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                  id: 5076
                  httpMethod: POST
                  createdAt: '2019-01-23T02:40:37-02:00'
                  basicAuthentication: dXNlcm5hbWU6cGFzc3dvcmQ=
                  url: http://xptop.com.br
                  enabled: true
                  clientId: 8
                  webHook: client_hire_update
                page: 1
                perPage: 20
                numPages: 1
                total: 6
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/8/web-hook/5076'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    put:
      tags:
      - Clientes
      summary: Atualizar um webhook do cliente
      description: Esta é a chamada para realizar a atualização de um webhook do cliente.
      operationId: put_client_clientId_web_hook_webHookClientId
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja atualizar o webHook
        required: true
        schema:
          type: integer
          example: '8'
      - name: webHookClientId
        in: path
        description: Id do webhook que deseja atualizar. Presente no retorno da listagem de webhooks cadastrados
        required: true
        schema:
          type: integer
          example: '10815'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Url que o webhook deve chamar
                  example: http://minhaurl.com
                httpMethod:
                  type: string
                  description: Método http da chamada
                  example: POST
                webHook:
                  type: string
                  description: Nome do evento do webhook para que se deseja cadastrar. Pode ser recuperada as possibilidades pela chamada GET /web-hook
                  example: client_hire_create
                basicAuthentication:
                  type: string
                  description: 'base64 de usuário e senha separados por : para autenticação na url do webhookClient.'
                  example: dXNlcm5hbWU6cGFzc3dvcmQ=
                enabled:
                  type: number
                  description: Flag para apontamento se o webHookClient está ativo ou não. 1 = true, 0 = false
                  example: 1
              required:
              - url
              - httpMethod
              - webHook
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      httpMethod:
                        type: string
                      createdAt:
                        type: string
                      basicAuthentication:
                        type: string
                      url:
                        type: string
                      enabled:
                        type: boolean
                      clientId:
                        type: integer
                      webHook:
                        type: string
              example:
                success: true
                data:
                  id: 10816
                  httpMethod: POST
                  createdAt: '2019-01-24T19:00:50-02:00'
                  basicAuthentication: ''
                  url: http://sa2x2.com
                  enabled: true
                  clientId: 8
                  webHook: client_hire_update
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato da url inválida'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Evento de webHook não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/client/1/web-hook/10816'' --data="url=http://sa2x2.com&httpMethod=POST&webHook=client_hire_create" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Clientes
      summary: Excluir um webhook do cliente
      description: Esta é a chamada para realizar a exclusão de um webhook do cliente.
      operationId: delete_client_clientId_web_hook_webHookClientId
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja excluir o webHook
        required: true
        schema:
          type: integer
          example: '8'
      - name: webHookClientId
        in: path
        description: Id do webhook que deseja excluir. Presente no retorno da listagem de webhooks cadastrados
        required: true
        schema:
          type: integer
          example: '10815'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      httpMethod:
                        type: string
                      createdAt:
                        type: string
                      basicAuthentication:
                        type: string
                      url:
                        type: string
                      enabled:
                        type: boolean
                      clientId:
                        type: integer
                      webHook:
                        type: string
              example:
                success: true
                data:
                  id: 10816
                  httpMethod: POST
                  createdAt: '2019-01-24T19:00:50-02:00'
                  basicAuthentication: ''
                  url: http://sa2x2.com
                  enabled: true
                  clientId: 8
                  webHook: client_hire_update
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Formato da url inválida'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Evento de webHook não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/client/1/web-hook/10816''  -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/web-hook/{webHookClientId}/response:
    get:
      tags:
      - Clientes
      summary: Recuperar respostas das chamadas de um web hook
      description: Chamada para retorno dos webhooks cadastrados para o cliente.
      operationId: get_client_clientId_web_hook_webHookClientId_response
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja retornar as informações de produtos
        required: true
        schema:
          type: integer
          example: '8'
      - name: webHookClientId
        in: path
        description: Id do webhook presenta no retorno da listagem de webhooks cadastrados
        required: true
        schema:
          type: integer
          example: '10815'
      - name: filters
        in: query
        description: Busca por valores do resultado. Aceita os parâmetros httpMethod, url, enabled.
        required: false
        schema:
          type: array
          example: '[httpMethod]=POST'
      - name: page
        in: query
        description: Filtro da página a ser apresentada no resultado.
        required: false
        schema:
          type: integer
          example: '1'
      - name: perPage
        in: query
        description: Número de itens por página
        required: false
        schema:
          type: integer
          example: '20'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        httpStatus:
                          type: integer
                        body:
                          type: string
                        attempt:
                          type: integer
                        date:
                          type: string
                        webHookClientId:
                          type: integer
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                - httpStatus: 200
                  body: Consequatur provident nulla officia quidem consequatur. Excepturi sit in laboriosam iusto nemo vero. Est qui sed ut autem.
                  attempt: 10
                  date: '1972-12-25T01:42:19-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Distinctio voluptatem quia mollitia facilis dolor sit voluptatum expedita. Voluptas blanditiis id iure odio fuga. Quia consequatur vero nihil et recusandae. Et veniam earum fuga eos. Cum nam error quidem qui cum sed quia.
                  attempt: 7
                  date: '1974-12-23T01:11:19-03:00'
                  webHookClientId: 10815
                - httpStatus: 200
                  body: Tenetur nihil sunt est qui eos sit. Vitae vel corrupti consectetur et similique itaque. Numquam consequuntur nisi facilis ipsa ut exercitationem voluptates.
                  attempt: 9
                  date: '1977-09-26T22:48:09-03:00'
                  webHookClientId: 10815
                - httpStatus: 401
                  body: Ipsa tempore necessitatibus explicabo repellendus. Molestiae omnis aspernatur perspiciatis. Consequatur accusantium ut voluptate sapiente sed architecto. Voluptas voluptas veritatis tenetur iure nam inventore ea.
                  attempt: 4
                  date: '1980-09-15T18:04:13-03:00'
                  webHookClientId: 10815
                - httpStatus: 400
                  body: Nulla et nemo autem voluptas quod. Temporibus ipsam ut aut et quasi quas. Facere sapiente voluptate nostrum dolore porro deleniti mollitia sit.
                  attempt: 8
                  date: '1981-01-08T22:29:51-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Est aut et magni et amet sint. Unde maxime nemo in praesentium perferendis id quo et. Animi officiis quis est ab error optio quae.
                  attempt: 7
                  date: '1982-03-26T02:18:58-03:00'
                  webHookClientId: 10815
                - httpStatus: 200
                  body: In molestiae nam quaerat et. In repellat dolor aut libero qui eos dolore. Et ut et labore eveniet nam. Nisi veritatis dolor nihil enim optio suscipit est.
                  attempt: 2
                  date: '1985-03-29T10:53:49-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Delectus ullam deleniti iste eos doloremque consequatur vel. Dignissimos expedita quasi accusantium omnis ut eaque est. Sit et nesciunt ab deleniti consequatur rerum.
                  attempt: 2
                  date: '1986-09-02T14:03:20-03:00'
                  webHookClientId: 10815
                - httpStatus: 200
                  body: Delectus nobis repudiandae tenetur accusamus et. Aperiam aut nemo provident placeat. Aut minima minus qui voluptatem et cumque ipsam. Nobis numquam porro ut rerum.
                  attempt: 1
                  date: '1990-07-09T02:43:44-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: In sunt a accusantium asperiores inventore. Consequatur et explicabo ut aliquam saepe. Nisi aliquid quam ea eos. Aut molestiae repellendus deserunt nulla id sit. Consequatur repudiandae numquam numquam assumenda.
                  attempt: 6
                  date: '1991-12-15T05:36:46-02:00'
                  webHookClientId: 10815
                - httpStatus: 401
                  body: Harum est facere quasi et nostrum. Reiciendis et porro quo ab consequuntur.
                  attempt: 10
                  date: '2004-06-19T22:01:28-03:00'
                  webHookClientId: 10815
                - httpStatus: 200
                  body: Modi porro culpa ducimus et nulla excepturi. Occaecati itaque sunt quo error. Omnis dolorem quo dolor saepe ipsum minus quae. Reprehenderit omnis nemo est vero et.
                  attempt: 8
                  date: '2004-12-15T20:57:34-02:00'
                  webHookClientId: 10815
                - httpStatus: 400
                  body: Delectus non sed debitis voluptatum. Ut harum molestiae voluptate quia. Architecto doloremque omnis voluptas.
                  attempt: 1
                  date: '2005-08-01T01:47:11-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Non hic officia adipisci tenetur dolor et. Quia nobis voluptatem voluptas voluptas et sit iste ipsum. Eaque ut rem omnis optio.
                  attempt: 8
                  date: '2006-07-14T01:57:31-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Nihil necessitatibus id non voluptas ratione rem nobis. Quibusdam sapiente blanditiis velit recusandae officia. Dolor ad corporis perspiciatis praesentium sunt.
                  attempt: 6
                  date: '2006-07-15T09:12:49-03:00'
                  webHookClientId: 10815
                - httpStatus: 403
                  body: Et harum dolores sint ut rerum dolore porro. Aut sunt magni dicta nesciunt fugit autem nihil. Autem architecto temporibus possimus nulla provident et dolorum.
                  attempt: 6
                  date: '2010-08-15T07:40:07-03:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Velit aut porro nihil aperiam nihil. Ipsa illo sit sit et. Et ut libero accusamus consequatur.
                  attempt: 3
                  date: '2012-08-27T01:04:11-03:00'
                  webHookClientId: 10815
                - httpStatus: 200
                  body: Quia nostrum optio itaque iusto voluptatem sunt eos. Eius perspiciatis culpa hic accusamus consequuntur rerum. Quod consequatur voluptate ipsa corrupti quaerat repellat possimus. Aliquam quam saepe incidunt accusantium sit sed sint.
                  attempt: 1
                  date: '2012-10-29T04:14:39-02:00'
                  webHookClientId: 10815
                - httpStatus: 404
                  body: Natus praesentium quam veniam. Libero ea deleniti voluptatibus sit quo. Eos cumque aut dignissimos et possimus quia. Animi minus commodi molestias quo corporis consequatur.
                  attempt: 10
                  date: '2016-02-12T01:48:54-02:00'
                  webHookClientId: 10815
                - httpStatus: 200
                  body: Vero quae pariatur qui dicta est. Ea quisquam perferendis voluptatem fugit.
                  attempt: 10
                  date: '2016-05-24T16:32:50-03:00'
                  webHookClientId: 10815
                page: 1
                perPage: 20
                numPages: 1
                total: 20
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/8/web-hook/10815/response'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/custom-field:
    get:
      tags:
      - Clientes
      summary: Listar os campos personalizados cadastrados
      description: Chamada para retorno dos campos personalizados cadastrados para o cliente.
      operationId: get_client_clientId_custom_field
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja retornar as informações de produtos
        required: true
        schema:
          type: integer
          example: '1'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      campo_1:
                        type: object
                        properties:
                          label:
                            type: string
                          type:
                            type: string
                      campo_2:
                        type: object
                        properties:
                          label:
                            type: string
                          type:
                            type: string
              example:
                success: true
                data:
                  campo_1:
                    label: Nome do campo 1
                    type: string
                  campo_2:
                    label: Nome do campo 2
                    type: integer
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/client/1/custom-field'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    post:
      tags:
      - Clientes
      summary: Cadastrar um novo campo personalizado para o cliente
      description: Esta é a chamada para realizar o cadastro de um novo campo personalizado para um cliente.
      operationId: post_client_clientId_custom_field
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja cadastrar o campo personalizado
        required: true
        schema:
          type: integer
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome único do campo personalizado. Aceita apenas caracteres de `A-Z`, `a-z`, `0-9` e `_` (underscore)
                  example: nome_campo
                label:
                  type: string
                  description: Título do campo personalizado
                  example: Título do campo
                type:
                  type: string
                  description: Tipo de valor a ser preenchido nesse campo
                  example: string
              required:
              - name
              - label
              - type
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      campo_teste:
                        type: object
                        properties:
                          label:
                            type: string
                          type:
                            type: string
              example:
                success: true
                data:
                  campo_teste:
                    label: Nome do campo teste
                    type: string
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/client/1/custom-field'' --data="name=campo_teste&label=Nome%20do%20campo%20teste&type=string" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /client/{clientId}/custom-field/{customFieldName}:
    put:
      tags:
      - Clientes
      summary: Atualizar um campo personalizado do cliente
      description: Esta é a chamada para realizar a atualização de um campo personalizado do cliente.
      operationId: put_client_clientId_custom_field_customFieldName
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja atualizar o campo personalizado
        required: true
        schema:
          type: integer
          example: '1'
      - name: customFieldName
        in: path
        description: Id do campo personalizado que deseja atualizar. Presente no retorno da listagem de campo personalizados cadastrados
        required: true
        schema:
          type: integer
          example: campo_teste
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                label:
                  type: string
                  description: Título do campo personalizado
                  example: Título do campo
                type:
                  type: string
                  description: Tipo de valor a ser preenchido nesse campo
                  example: string
              required:
              - label
              - type
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      campo_teste:
                        type: object
                        properties:
                          label:
                            type: string
                          type:
                            type: string
              example:
                success: true
                data:
                  campo_teste:
                    label: Nome do campo teste modificado
                    type: string
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/client/1/custom-field/campo_teste'' --data="label=Nome%20do%20campo%20teste%20modificado&type=string" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
    delete:
      tags:
      - Clientes
      summary: Excluir um campo personalizado do cliente
      description: Esta é a chamada para realizar a exclusão de um campo personalizado do cliente.
      operationId: delete_client_clientId_custom_field_customFieldName
      parameters:
      - name: clientId
        in: path
        description: Id do cliente que deseja excluir o campo personalizado
        required: true
        schema:
          type: integer
          example: '1'
      - name: customFieldName
        in: path
        description: Id do campo personalizado que deseja excluir. Presente no retorno da listagem de campo personalizados cadastrados
        required: true
        schema:
          type: integer
          example: campo_teste
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items: {}
              example:
                success: true
                data: []
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/client/1/custom-field/campo_teste''  -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /useradmin:
    post:
      tags:
      - Usuários Administrativos
      summary: Criar Usuário Administrativo
      description: Esta é a chamada para criação de um usuário administrativo.
      operationId: post_useradmin
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: Nome de usuário do usuário administrativo. O que ele poderá utilizar para realizar login.
                email:
                  type: string
                  description: E-mail do usuário administrativo. Ele também pode utilizar para realizar login.
                password:
                  type: string
                  description: Senha do usuário administrativo. Existem restrições quanto a força da senha dependendo da política de cada ambiente.
                client:
                  type: number
                  description: Id do cliente a ter o usuário criado. É opcional, caso não seja enviado o cliente considerado será o cliente do token.
                mailbox:
                  type: string
                  description: Caso queira criar um usuário administrativo a partir de uma caixa postal, basta preencher este campo com o email desta caixa postal e os demais campos serão ignorados.
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            text/plain:
              example: "{\n    \"success\" : true,\n    \"data\" : {\n        \"id\": 1215\n        \"username\" : \"UserAdmin1\",\n        \"email\": \"teste@useradmin.com.br\",\n        \"is_active\": true\n    }\n}"
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Nome de usuário inválido; Senha muita fraca.'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/useradmin'' --data="username=useradmin1&email=useradmin1@useradmin.com&password=Test@S3nh@" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /useradmin/password:
    put:
      tags:
      - Usuários Administrativos
      summary: Alterar Senha de Usuário Administrativo
      description: Esta é a chamada para alteração de senha de um usuário administrativo.
      operationId: put_useradmin_password
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: Nome de usuário do usuário administrativo. O que ele poderá utilizar para realizar login. Caso não seja informado, será assumido o usuário requisitante.
                password:
                  type: string
                  description: Nova senha do usuário administrativo. Existem restrições quanto a força da senha dependendo da política de cada ambiente.
                actual:
                  type: string
                  description: Senha atual do usuário administrativo
              required:
              - password
              - actual
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
              example:
                success: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Exemplo: Nome de usuário inválido; Senha muita fraca.'
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Você não tem permissão para executar esta operação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/useradmin/password'' --data="username=useradmin1&password=n0vAS3nh4S3gIIr4&actual=Test@S3nh@" -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /useradmin/{email}/two-factor/random-config:
    get:
      tags:
      - Usuários Administrativos
      summary: Obter configuração MFA/2FA
      description: Esta é a chamada para obter as configurações iniciais da autenticação de dois fatores para um usuário administrativo. Você pode exibir na sua aplicação um QR Code e os códigos de recuperação com os dados retornados por essa consulta. Essas informações não ficam gravadas e devem ser utilizadas no endpoint de ativação.
      operationId: get_useradmin_email_two_factor_random_config
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      secret:
                        type: string
                      uri:
                        type: string
                      recovery_codes:
                        type: array
                        items:
                          type: string
                  message:
                    type: string
              example:
                success: true
                data:
                  secret: 24PGFQUBUEI63T5L
                  uri: otpauth://totp/Skynova:usuario@example.com?secret=24PGFQUBUEI63T5L&issuer=Skynova&digits=6
                  recovery_codes:
                  - WJQQXSD3JW
                  - WLRKJD2YUE
                  - T2B5FBPKRD
                message: This is just only a config data generate randomly to help the apps to create the interface with correctly formatted data
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to manage 2FA for this user.
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: User email not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -i -X GET 'https://api.skymail.net.br/useradmin/usuario@example.com/two-factor/random-config' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'cache-control: no-cache'"
  /useradmin/{email}/two-factor:
    post:
      tags:
      - Usuários Administrativos
      summary: Ativar MFA/2FA
      description: Esta é a chamada para habilitar a autenticação de dois fatores para um usuário administrativo. Utilize os dados obtidos no endpoint Obter configuração MFA/2FA para gravar as configurações e ativar o MFA/2FA para um usuário administrativo.
      operationId: post_useradmin_email_two_factor
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                secret:
                  type: string
                  description: 'Secret. Padrão: 16 caracteres alfanuméricos em maiúsculas.'
                code:
                  type: string
                  description: Código TOTP de 6 dígitos numéricos gerado após a leitura do QR Code.
                recovery_codes:
                  type: string
                  description: Array com códigos de recuperação. Cada código deve ter 10 caracteres alfanuméricos em maiúsculas.
              required:
              - secret
              - code
              - recovery_codes
      responses:
        '201':
          description: Recurso criado com sucesso (retornado apenas em metodos POST).
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      secret:
                        type: string
                      issuer:
                        type: string
                      recovery_codes:
                        type: array
                        items:
                          type: string
                  message:
                    type: string
              example:
                success: true
                data:
                  secret: 24PGFQUBUEI63T5L
                  issuer: Skynova
                  recovery_codes:
                  - WJQQXSD3JW
                  - WLRKJD2YUE
                  - T2B5FBPKRD
                message: Two-Factor Authentication enabled successfully
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Wrong The Two-Factor Authentication code provided based on secret request param. Please use the random config to help you to complete these parameters and generate correct QRCode to get right code on TOTP app
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to manage 2FA for this user.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -i -X POST 'https://api.skymail.net.br/useradmin/usuario@example.com/two-factor' \\\n  --data=\"secret=JBSWY3DPEBLW64TMMQ======&code=123456&recovery_codes[]=ABC1234567&recovery_codes[]=XYZ9876543\" \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'cache-control: no-cache'"
    delete:
      tags:
      - Usuários Administrativos
      summary: Desativar MFA/2FA
      description: Esta é a chamada para desabilitar a autenticação de dois fatores de um usuário administrativo.
      operationId: delete_useradmin_email_two_factor
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: true
                message: Two-Factor Authentication disabled successfully
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You do not have permission to manage 2FA for this user.
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Two-Factor Authentication Config not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -i -X DELETE 'https://api.skymail.net.br/useradmin/usuario@example.com/two-factor' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'cache-control: no-cache'"
  /useradmin/{email}/two-factor/mandatory:
    post:
      tags:
      - Usuários Administrativos
      summary: Ativar Obrigatoriedade MFA/2FA
      description: Esta é a chamada para habilitar a obrigatoriedade da autenticação de dois fatores para um usuário administrativo.
      operationId: post_useradmin_email_two_factor_mandatory
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  is_mandatory:
                    type: boolean
                  message:
                    type: string
              example:
                success: true
                is_mandatory: true
                message: Two-Factor Authentication mandatory option successfully set
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: User email not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -i -X POST 'https://api.skymail.net.br/useradmin/usuario@example.com/two-factor/mandatory' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'cache-control: no-cache'"
    delete:
      tags:
      - Usuários Administrativos
      summary: Desativar Obrigatoriedade MFA/2FA
      description: Esta é a chamada para desabilitar a obrigatoriedade da autenticação de dois fatores de um usuário administrativo.
      operationId: delete_useradmin_email_two_factor_mandatory
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: true
                message: Two-Factor Authentication mandatory option successfully removed
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: User email not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -i -X DELETE 'https://api.skymail.net.br/useradmin/usuario@example.com/two-factor/mandatory' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'cache-control: no-cache'"
  /dashboard:
    get:
      tags:
      - Dashboard
      summary: Recuperar dados de Dashboard
      description: Esta chamada retorna as informações relacionadas ao ambiente do usuário que esta realizando. Retornará informações tipo número de contas, grupos, domínios ou clientes cadastrados.
      operationId: get_dashboard
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      totalMailbox:
                        type: integer
                      totalDomain:
                        type: integer
                      totalGroup:
                        type: integer
                      totalClient:
                        type: integer
              example:
                success: true
                data:
                  totalMailbox: 100
                  totalDomain: 2
                  totalGroup: 15
                  totalClient: 0
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dashboard'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain-register/{provider}/domain/{domain}/check:
    get:
      tags:
      - Registro de Domínio
      summary: Validar disponibilidade de domínio
      description: Esta chamada verifica a disponibilidade de um domínio.
      operationId: get_domain_register_provider_domain_domain_check
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
      - name: domain
        in: path
        description: Domínio que será validado quanto à disponibilidade
        required: true
        schema:
          type: string
          example: skymail-teste.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        domainname:
                          type: string
                        available:
                          type: boolean
              example:
                success: true
                data:
                - domainname: skymail-teste.com.br
                  available: true
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: 'Erro relacionado à operação. Ex: erro na formatação de dados'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -i -X GET 'https://api.skymail.net.br/domain-register/1/domain/{domain}/check' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'cache-control: no-cache'"
  /domain-register/domain/{domain}:
    get:
      tags:
      - Registro de Domínio
      summary: Recuperar informações de domínio
      description: Esta é a chamada para obter os detalhes de um domínio específico para um cliente.
      operationId: get_domain_register_domain_domain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: '"exemplo.com.br"'
      - name: clientId
        in: query
        required: false
        schema:
          type: string
          example: '"12345"'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  total:
                    type: integer
                  page:
                    type: integer
                  perPage:
                    type: integer
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      name:
                        type: string
                      created_at:
                        type: string
                      expire_at:
                        type: string
                      auto_renew:
                        type: boolean
                      status:
                        type: integer
                      ticket:
                        type: string
              example:
                success: true
                total: 1
                page: 1
                perPage: 10
                data:
                  id: 1
                  name: exemplo.com.br
                  created_at: '2000-01-30T18:36:25-03:00'
                  expire_at: '2001-01-30T18:36:25-03:00'
                  auto_renew: true
                  status: 12
                  ticket: '1'
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X GET 'https://api.skymail.net.br/domain-register/domain/{domain}?clientId={clientId}' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'Content-Type: application/x-www-form-urlencoded'\n  -H 'cache-control: no-cache'"
  /domain-register/domain:
    get:
      tags:
      - Registro de Domínio
      summary: Listar domínios por cliente
      description: Esta chamada retorna a lista de domínios vinculados ao cliente informado.
      operationId: get_domain_register_domain
      parameters:
      - name: clientId
        in: query
        required: true
        schema:
          type: string
          example: '"12345"'
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  total:
                    type: integer
                  page:
                    type: integer
                  perPage:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        name:
                          type: string
                        created_at:
                          type: string
                        expire_at:
                          type: string
                        auto_renew:
                          type: boolean
                        status:
                          type: integer
                        ticket:
                          type: string
              example:
                success: true
                total: 1
                page: 1
                perPage: 10
                data:
                - id: 1
                  name: exemplo.com.br
                  created_at: '2000-01-30T18:36:25-03:00'
                  expire_at: '2001-01-30T18:36:25-03:00'
                  auto_renew: true
                  status: 12
                  ticket: '1'
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Cliente não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/domain?clientId={clientId}'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain-register/{provider}/domain:
    post:
      tags:
      - Registro de Domínio
      summary: Registrar domínio
      description: Esta chamada realiza o registro de um novo domínio para um cliente.
      operationId: post_domain_register_provider_domain
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientId:
                  type: integer
                document:
                  type: string
                name:
                  type: string
                domains:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      period:
                        type: integer
                      renovation:
                        type: boolean
                street:
                  type: string
                number:
                  type: string
                complement:
                  type: string
                city:
                  type: string
                state:
                  type: string
                postalCode:
                  type: string
                phone:
                  type: string
                email:
                  type: string
            examples:
              cliente_de_revenda:
                summary: Cliente de Revenda
                value:
                  clientId: 6959
                  document: 08594428707
                  name: Empresa Teste 7
                  domains:
                  - name: exemplo.com.br
                    period: 1
                    renovation: true
                  street: Av. Pedroso de Morais
                  number: '433'
                  complement: 14 andar
                  city: São Paulo
                  state: SP
                  postalCode: 05419-902
                  phone: '1137778410'
                  email: suporte@empresa.com.br
              revenda:
                summary: Revenda
                value:
                  clientId: 455
                  document: 08594428707
                  name: Empresa Teste 7
                  domains:
                  - name: exemplo.com.br
                    period: 1
                    renovation: true
              corporativo:
                summary: Corporativo
                value:
                  clientId: 8
                  document: '11111111111111'
                  name: Empresa Teste 10347475000102
                  domains:
                  - name: exemplo.com.br
                    period: 1
                    renovation: true
                  payment:
                    type: 4
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
        '400':
          description: Erro de validação.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -X POST ''https://api.skymail.net.br/domain-register/{provider}/domain'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /domain-register/{provider}/nameserver/{domain}:
    patch:
      tags:
      - Registro de Domínio
      summary: Atualizar nameservers do domínio
      description: Esta chamada realiza a atualização dos servidores de nome (nameservers) de um domínio.
      operationId: patch_domain_register_provider_nameserver_domain
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
      - name: domain
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nameservers:
                  type: array
                  items:
                    type: object
                    properties:
                      ip:
                        type: string
            example:
              nameservers:
              - ip: ns1.exemplo.com
              - ip: ns2.exemplo.com
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      domain:
                        type: string
              example:
                success: true
                data:
                  domain: published
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Dados inválidos para atualização
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Domínio não encontrado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X PATCH 'https://api.skymail.net.br/domain-register/1/nameserver/{domain}' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'Content-Type: application/json' \\"
    get:
      tags:
      - Registro de Domínio
      summary: Listar nameservers do domínio
      description: Esta chamada retorna os nameservers configurados para um domínio específico.
      operationId: get_domain_register_provider_nameserver_domain
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
      - name: domain
        in: path
        description: Nome do domínio
        required: true
        schema:
          type: string
          example: exemplo.com.br
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        ip:
                          type: string
              example:
                success: true
                data:
                - ip: ns1.exemplo.com
                - ip: ns2.exemplo.com
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X GET 'https://api.skymail.net.br/domain-register/1/nameserver/{domain}' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'Content-Type: application/json'"
  /domain-register/{provider}/organization/check:
    get:
      tags:
      - Registro de Domínio
      summary: Verificar organização a partir do documento
      description: Esta chamada verifica se há uma organização vinculada ao documento informado.
      operationId: get_domain_register_provider_organization_check
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
      - name: document
        in: query
        description: CPF ou CNPJ da organização
        required: true
        schema:
          type: string
          example: 11.111.111/0001-11
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      available:
                        type: boolean
                      reason:
                        type: string
                      document:
                        type: string
              example:
                success: true
                data:
                  available: false
                  reason: Document linked to another provider
                  document: 00.000.000/0001-00
        '404':
          description: Item not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: Organização não encontrada para o documento informado
        '400':
          description: Erro na requisição. Geralmente um campo foi enviado em formato invalido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: O documento não possui a estrutura necessária.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X GET 'https://api.skymail.net.br/domain-register/1/organization/check?document={document}' \\\n  -H 'Authorization: bearer jwt.token.generated' \\\n  -H 'Content-Type: application/x-www-form-urlencoded'"
  /web-hook:
    get:
      tags:
      - WebHooks
      summary: Recuperar webhooks disponíveis para cadastro
      description: Chamada para retorno dos webhooks disponíveis para ser cadastro para um cliente. Ao cadastrar um webhook para um cliente em [Chamadas de Web Hook Client](#client_client_clientId_web_hook), quando ocorrer um evento na nossa estrutura referente à este webhook, será enviada para a url cadastrada o payload do webhook com os valores referentes. Verifique nesta chamada quais são os webhooks disponíveis para cadastro dos seus endpoints.
      operationId: get_web_hook
      responses:
        '200':
          description: Requisicao efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        event:
                          type: string
                        description:
                          type: string
                        payload:
                          type: object
                          properties:
                            productId:
                              type: string
                            clientId:
                              type: string
                            oldQtty:
                              type: string
                            newQtty:
                              type: string
                            creationDate:
                              type: string
                            createdBy:
                              type: string
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
              example:
                success: true
                data:
                - event: client_hire_create
                  description: Webhook triggered when a product is hired to client.
                  payload:
                    productId: integer
                    clientId: integer
                    oldQtty: integer
                    newQtty: integer
                    creationDate: datetime
                    createdBy: string
                - event: client_hire_update
                  description: Webhook triggered when a product is updated to client.
                  payload:
                    productId: integer
                    clientId: integer
                    oldQtty: integer
                    newQtty: integer
                    creationDate: datetime
                    createdBy: string
                page: 1
                perPage: 20
                numPages: 1
                total: 2
        '403':
          description: O usuario nao possui as permissoes necessarias para a operacao.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/web-hook)'' -H ''Authorization: bearer jwt.token.generated'' ''cache-control: no-cache'''
  /migration:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Listar migração
      operationId: get_migration
      parameters:
      - name: client_id
        in: query
        required: false
        schema:
          type: string
      - name: migration_id
        in: query
        required: false
        schema:
          type: string
      - name: migration_name
        in: query
        required: false
        schema:
          type: string
      - name: migration_status
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: true
        schema:
          type: string
      - name: per_page
        in: query
        required: true
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                result:
                - id: 1
                  client_id: 1234
                  name: Teste Novo Banco
                  contacts:
                  - usuario@exemplo.com.br
                  status: f
                  date_create: '2021-11-19T13:32:52-02:00'
                  date_start: '2021-11-19T16:36:39-02:00'
                  date_finish: '2021-11-19T16:37:24-02:00'
                  details:
                    '0':
                      total: '1'
                      mailStatus: New
                    '1':
                      total: '1'
                      mailStatus: Ended in error
                    totalErrors: 1
                    totalSuccess: 0
                    totalMailboxes: 2
                    isValidated: false
                  removed: false
                  migration_domain: ''
                  src_host: imap.exemplo.com.br
                  src_port: 993
                  src_ssl: true
                  provider: 0
                  notification_type: summary
                  mailbox_notify: 1
                - id: 3
                  client_id: 1234
                  name: teste01
                  contacts:
                  - usuario@exemplo.com.br
                  status: n
                  date_create: '2022-01-12T14:37:23-02:00'
                  details:
                    totalErrors: 0
                    totalSuccess: 0
                    totalMailboxes: 0
                    isValidated: true
                  removed: false
                  migration_domain: ''
                  provider: 0
                  notification_type: summary
                  mailbox_notify: 1
                page: 1
                perPage: 20
                numPages: 394
                total: 7862
                success: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    post:
      tags:
      - Caixas Postais - Migração
      summary: Criar migração
      operationId: post_migration
      responses:
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 7899
                  client_id: 1234
                  name: DocExemplo95665
                  contacts:
                  - usuario@exemplo.com.br
                  status: n
                  date_create: '2026-06-19T10:36:33-03:00'
                  removed: false
                  migration_domain: exemplo.com.br
                  src_host: imap.exemplo.com.br
                  src_port: 143
                  src_ssl: true
                  provider: 1
                  notification_type: summary
                  mailbox_notify: 1
                message: Migration created successfully
  /migration/{migrationId}:
    put:
      tags:
      - Caixas Postais - Migração
      summary: Atualizar migração
      operationId: put_migration_migrationId
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 7899
                  client_id: 1234
                  name: DocExemplo95665Edit
                  contacts:
                  - usuario@exemplo.com.br
                  status: n
                  date_create: '2026-06-19T10:36:33-03:00'
                  cmd: r
                  removed: false
                  migration_domain: exemplo.com.br
                  src_host: imap.exemplo.com.br
                  src_port: 143
                  src_ssl: true
                  provider: 1
                  notification_type: summary
                  mailbox_notify: 1
                message: Migration updated successfully
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    delete:
      tags:
      - Caixas Postais - Migração
      summary: Remover migração
      operationId: delete_migration_migrationId
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 7899
                  client_id: 1234
                  name: DocExemplo95665Edit
                  contacts:
                  - usuario@exemplo.com.br
                  status: n
                  date_create: '2026-06-19T10:36:33-03:00'
                  cmd: r
                  removed: true
                  migration_domain: exemplo.com.br
                  src_host: imap.exemplo.com.br
                  src_port: 143
                  src_ssl: true
                  provider: 1
                  notification_type: summary
                  mailbox_notify: 1
                message: Migration removed successfully
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /mailbox/{mailbox}/identity:
    get:
      tags:
        - Caixas Postais - Identidades
      summary: Listar Caixas Postais - Identidades
      operationId: get_mailbox_mailbox_identity
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  - name: nome identidade
                    email: email@email.com
                    organization: sua organização
                    reply_to: reply_to@email.com
                    bcc: bcc@email.com
                    signature: 1
                    standard: 1
                    html_signature: 1

                  - name: outra identidade
                    email: outra@email.com
                    organization: outra organização
                    reply_to: reply_to@email.com
                    bcc: bcc@email.com
                    signature: 1
                    standard: 0
                    html_signature: 0
    post:
      tags:
        - Caixas Postais - Identidades
      summary: Criar identidade da caixa postal
      operationId: post_mailbox_mailbox_identity
      parameters:
      - name: mailbox
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - name
                - email
              properties:
                name:
                  type: string
                email:
                  type: string
                  format: email
                organization:
                  type: string
                reply_to:
                  type: string
                  format: email
                bcc:
                  type: string
                  format: email
                signature:
                  type: integer
                standard:
                  type: integer
                html_signature:
                  type: integer
            example:
              name: nome identidade
              email: email@email.com
              organization: sua organização
              reply_to: reply_to@email.com
              bcc: bcc@email.com
              signature: 1
              standard: 1
              html_signature: 1
      responses:
        '201':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  - name: nome identidade
                    email: email@email.com
                    organization: sua organização
                    reply_to: reply_to@email.com
                    bcc: bcc@email.com
                    signature: 1
                    standard: 1
                    html_signature: 1
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /mailbox/{mailbox}/identity/{identityId}:
    patch:
      tags:
        - Caixas Postais - Identidades
      summary: Atualizar identidade da caixa postal
      operationId: patch_mailbox_mailbox_identity_identityId
      parameters:
        - name: mailbox
          in: path
          required: true
          schema:
            type: string
        - name: identityId
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                email:
                  type: string
                organization:
                  type: string
                reply_to:
                  type: string
                bcc:
                  type: string
                signature:
                  type: integer
                standard:
                  type: integer
                html_signature:
                  type: integer
            example:
              name: nome identidade editado
              email: email@email.com
              organization: sua organização
              reply_to: reply_to@email.com
              bcc: bcc@email.com
              signature: 1
              standard: 1
              html_signature: 0
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  - name: nome identidade
                    email: email@email.com
                    organization: sua organização
                    reply_to: reply_to@email.com
                    bcc: bcc@email.com
                    signature: 1
                    standard: 1
                    html_signature: 1
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    delete:
      tags:
        - Caixas Postais - Identidades
      summary: Remover identidade da caixa postal
      operationId: delete_mailbox_mailbox_identity_identityId
      parameters:
        - name: mailbox
          in: path
          required: true
          schema:
            type: string
        - name: identityId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/logs:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Recuperar log da migração
      operationId: get_migration_migrationId_logs
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: true
        schema:
          type: string
      - name: per_page
        in: query
        required: true
        schema:
          type: string
      - name: log_type
        in: query
        required: false
        schema:
          type: string
      - name: order_by
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - migration_log_id: 8
                  log_time: '2021-11-19T16:37:24-02:00'
                  log_type: INFO
                  log_message: SyncJob finalizado
                - migration_log_id: 7
                  log_time: '2021-11-19T16:36:38-02:00'
                  log_type: INFO
                  log_message: SyncJob alterado para rodando
                total: 8
                page: 1
                per_page: 20
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/mailbox:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Listar caixas postais da migração
      operationId: get_migration_migrationId_mailbox
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: migration_mailbox_id
        in: query
        required: false
        schema:
          type: string
      - name: client_id
        in: query
        required: false
        schema:
          type: string
      - name: src_mail
        in: query
        required: false
        schema:
          type: string
      - name: src_host
        in: query
        required: false
        schema:
          type: string
      - name: src_pw
        in: query
        required: false
        schema:
          type: string
      - name: src_ssl
        in: query
        required: false
        schema:
          type: string
      - name: src_port
        in: query
        required: false
        schema:
          type: string
      - name: dst_mail
        in: query
        required: false
        schema:
          type: string
      - name: mail_status
        in: query
        required: false
        schema:
          type: string
      - name: data_login
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: true
        schema:
          type: string
      - name: per_page
        in: query
        required: true
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                page: 1
                perPage: 10
                numPages: 1
                totalPerPage: 2
                total: 2
                totalMailboxes: 2
                totalMailboxSuccess: 0
                totalMailboxErrors: 1
                totalMailboxRuning: 0
                result:
                - migration_mailbox_id: 1
                  migration_id: 1
                  migration:
                    id: 1
                    client_id: 1234
                    name: Teste Novo Banco
                    contacts:
                    - usuario@exemplo.com.br
                    status: f
                    date_create: '2021-11-19T13:32:52-02:00'
                    date_start: '2021-11-19T16:36:39-02:00'
                    date_finish: '2021-11-19T16:37:24-02:00'
                    removed: false
                    migration_domain: ''
                    src_host: imap.exemplo.com.br
                    src_port: 993
                    src_ssl: true
                    provider: 0
                    notification_type: summary
                    mailbox_notify: 1
                  migration_mailbox_stats:
                  - id: 19
                    mailbox_id: 1
                    src_folder: INBOX
                    dst_folder: INBOX
                    src_msgs: 2093
                    dst_msgs: 2093
                    copy_msgs: 187
                    err_msgs: 0
                    all_msgs: 2093
                    dup_msgs: 0
                  - id: 20
                    mailbox_id: 1
                    src_folder: INBOX.Archive
                    dst_folder: Archive
                    src_msgs: 41
                    dst_msgs: 41
                    copy_msgs: 1
                    err_msgs: 0
                    all_msgs: 41
                    dup_msgs: 0
                  - id: 21
                    mailbox_id: 1
                    src_folder: INBOX.Comments
                    dst_folder: Comments
                    src_msgs: 0
                    dst_msgs: 0
                    copy_msgs: 0
                    err_msgs: 0
                    all_msgs: 0
                    dup_msgs: 0
                  - id: 22
                    mailbox_id: 1
                    src_folder: INBOX.Drafts
                    dst_folder: Rascunhos
                    src_msgs: 28
                    dst_msgs: 28
                    copy_msgs: 2
                    err_msgs: 0
                    all_msgs: 28
                    dup_msgs: 0
                  - id: 23
                    mailbox_id: 1
                    src_folder: INBOX.Sent
                    dst_folder: Itens Enviados
                    src_msgs: 914
                    dst_msgs: 914
                    copy_msgs: 374
                    err_msgs: 0
                    all_msgs: 914
                    dup_msgs: 0
                  - id: 24
                    mailbox_id: 1
                    src_folder: INBOX.nao lidos
                    dst_folder: nao lidos
                    src_msgs: 0
                    dst_msgs: 0
                    copy_msgs: 0
                    err_msgs: 0
                    all_msgs: 0
                    dup_msgs: 0
                  mail_status: f
                  src_mail: usuario@exemplo.com.br
                  src_pw: as1ca1sc65a1sc65
                  src_host: imap.exemplo.com.br
                  src_ssl: false
                  dst_mail: usuario@exemplo.com.br
                  mailbox_order: 0
                  date_create: '2021-11-19T13:37:53-02:00'
                  date_start: '2021-11-19T16:36:42-02:00'
                  date_finish: '2021-11-19T16:37:21-02:00'
                  data_conn: s
                  data_login: s
                  data_progress: 100.0
                  folders: 6
                  skip_msgs: 2512
                  est_msgs: 3076
                  f_excludes: INBOX.Trash,INBOX.Junk,INBOX.spam
                  data_valid: true
                - migration_mailbox_id: 2
                  migration_id: 1
                  migration:
                    id: 1
                    client_id: 1234
                    name: Teste Novo Banco
                    contacts:
                    - usuario@exemplo.com.br
                    status: f
                    date_create: '2021-11-19T13:32:52-02:00'
                    date_start: '2021-11-19T16:36:39-02:00'
                    date_finish: '2021-11-19T16:37:24-02:00'
                    removed: false
                    migration_domain: ''
                    src_host: imap.exemplo.com.br
                    src_port: 993
                    src_ssl: true
                    provider: 0
                    notification_type: summary
                    mailbox_notify: 1
                  migration_mailbox_stats: []
                  mail_status: e
                  src_mail: usuario@exemplo.com.br
                  src_pw: GCDWqp.Es6
                  src_host: imap.exemplo.com.br
                  src_ssl: false
                  dst_mail: usuario@exemplo.com.br
                  mailbox_order: 0
                  date_create: '2021-11-19T14:19:09-02:00'
                  data_conn: s
                  data_login: s
                  data_progress: 0.0
                  skip_msgs: 0
                  est_msgs: 0
                  data_valid: false
                success: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    post:
      tags:
      - Caixas Postais - Migração
      summary: Inserir caixa postal na migração
      operationId: post_migration_migrationId_mailbox
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                src_mail:
                  type: string
                src_pw:
                  type: string
                dst_mail:
                  type: string
              required:
              - src_mail
              - src_pw
              - dst_mail
      responses:
        '201':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  migration_mailbox_id: 100
                  migration_id: 31
                  migration:
                    id: 1
                    client_id: 23049
                    name: Migração meu domínio
                    contacts:
                    - meucontato@meudominio.com.br
                    status: f
                    date_create: '2025-11-19T13:32:52-02:00'
                    date_start: '2025-11-19T16:36:39-02:00'
                    date_finish: '2025-11-19T16:37:24-02:00'
                    cmd: r
                    removed: false
                    migration_domain: meudominio.com.br
                    src_host: 192.168.1.42
                    src_port: 143
                    src_ssl: true
                    provider: 1
                    notification_type: summary
                    mailbox_notify: 1
                  mail_status: f
                  src_mail: meuusuario1@meudominio.com.br
                  src_pw: '*************'
                  src_host: cpanel.dominioorigem.com.br
                  src_ssl: false
                  dst_mail: meuusuario1@meudominio.com.br
                  mailbox_order: 0
                  date_create: '2025-11-19T13:37:53-02:00'
                message: Operação realizada com sucesso
        '200':
          description: ATENÇÃO!! Erro de usuário não encontrado localmente.
          content:
            application/json:
              example:
                success: false
                message: Mailbox not found. %thiago@xicas.com%
                data:
                  errors:
                  - src_mail: xicas@meudominio.com.br
                    src_pw: '************'
                    dst_mail: thiago@meudominio.com.br
                    migration_id: '1'
                    mail_status: n
                    mailbox_order: '1'
                    reason_not_validate: "Mailbox not found. \n"
                    data_valid: false
                    date_create: '2026-06-19 11:27:02'
                    src_host: 177.101.150.40
                    src_port: '143'
                    src_ssl: '1'
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/mailbox/{mailboxId}:
    put:
      tags:
      - Caixas Postais - Migração
      summary: Atualizar informações de caixa postal na migração
      operationId: put_migration_migrationId_mailbox_mailboxId
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: mailboxId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                src_mail:
                  type: string
                src_pw:
                  type: string
                dst_mail:
                  type: string
              required:
              - src_mail
              - src_pw
              - dst_mail
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  migration_mailbox_id: 100
                  migration_id: 31
                  migration:
                    id: 1
                    client_id: 23049
                    name: Migração meu domínio
                    contacts:
                    - meucontato@meudominio.com.br
                    status: f
                    date_create: '2025-11-19T13:32:52-02:00'
                    date_start: '2025-11-19T16:36:39-02:00'
                    date_finish: '2025-11-19T16:37:24-02:00'
                    cmd: r
                    removed: false
                    migration_domain: meudominio.com.br
                    src_host: 192.168.1.42
                    src_port: 143
                    src_ssl: true
                    provider: 1
                    notification_type: summary
                    mailbox_notify: 1
                  migration_mailbox_stats:
                  - id: 19
                    mailbox_id: 1
                    src_folder: INBOX
                    dst_folder: INBOX
                    src_msgs: 2093
                    dst_msgs: 2093
                    copy_msgs: 187
                    err_msgs: 0
                    all_msgs: 2093
                    dup_msgs: 0
                  - id: 20
                    mailbox_id: 1
                    src_folder: INBOX.Archive
                    dst_folder: Archive
                    src_msgs: 41
                    dst_msgs: 41
                    copy_msgs: 1
                    err_msgs: 0
                    all_msgs: 41
                    dup_msgs: 0
                  - id: 21
                    mailbox_id: 1
                    src_folder: INBOX.Comments
                    dst_folder: Comments
                    src_msgs: 0
                    dst_msgs: 0
                    copy_msgs: 0
                    err_msgs: 0
                    all_msgs: 0
                    dup_msgs: 0
                  - id: 22
                    mailbox_id: 1
                    src_folder: INBOX.Drafts
                    dst_folder: Rascunhos
                    src_msgs: 28
                    dst_msgs: 28
                    copy_msgs: 2
                    err_msgs: 0
                    all_msgs: 28
                    dup_msgs: 0
                  - id: 23
                    mailbox_id: 1
                    src_folder: INBOX.Sent
                    dst_folder: Itens Enviados
                    src_msgs: 914
                    dst_msgs: 914
                    copy_msgs: 374
                    err_msgs: 0
                    all_msgs: 914
                    dup_msgs: 0
                  - id: 24
                    mailbox_id: 1
                    src_folder: INBOX.nao lidos
                    dst_folder: nao lidos
                    src_msgs: 0
                    dst_msgs: 0
                    copy_msgs: 0
                    err_msgs: 0
                    all_msgs: 0
                    dup_msgs: 0
                  mail_status: f
                  src_mail: meuusuario1@meudominio.com.br
                  src_pw: '*************'
                  src_host: cpanel.dominioorigem.com.br
                  src_ssl: false
                  dst_mail: meuusuario1@meudominio.com.br
                  mailbox_order: 0
                  date_create: '2025-11-19T13:37:53-02:00'
                  date_start: '2025-11-19T16:36:42-02:00'
                  date_finish: '2025-11-19T16:37:21-02:00'
                  data_conn: s
                  data_login: s
                  data_progress: 100
                  folders: 6
                  skip_msgs: 2512
                  est_msgs: 3076
                  f_excludes: INBOX.Trash,INBOX.Junk,INBOX.spam
                  data_valid: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    delete:
      tags:
      - Caixas Postais - Migração
      summary: Remover caixa postal da migração
      operationId: delete_migration_migrationId_mailbox_mailboxId
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: mailboxId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/mailbox/folder-error:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Listar erros de pastas nas migraçoes de caixas postais
      operationId: get_migration_migrationId_mailbox_folder_error
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: migration_mailbox_stats_id
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: true
        schema:
          type: string
      - name: per_page
        in: query
        required: true
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                page: 1
                perPage: 20
                numPages: 1400
                totalPerPage: 20
                total: 28000
                result:
                - migration_mailbox_errors_id: 47597
                  migration_mailbox_stats_id: 2642744
                  migration_mailbox_stats:
                    src_folder: INBOX
                    dst_folder: INBOX
                    src_msgs: 329994
                    dst_msgs: 0
                    copy_msgs: 332714
                    err_msgs: 7
                    all_msgs: 329994
                    dup_msgs: 9
                  msg_subject: Avalie os produtos Puravida
                  msg_size: 50328
                  msg_err: Mensagem com linha muito grande
                  msg_date: '2023-02-09T17:07:57-03:00'
                - migration_mailbox_errors_id: 47596
                  migration_mailbox_stats_id: 2642744
                  migration_mailbox_stats:
                    src_folder: INBOX
                    dst_folder: INBOX
                    src_msgs: 329994
                    dst_msgs: 0
                    copy_msgs: 332714
                    err_msgs: 7
                    all_msgs: 329994
                    dup_msgs: 9
                  msg_subject: Seu pedido da Puravida =?utf-8?b?ZXN0w6E=?= chegando
                  msg_size: 49987
                  msg_err: Mensagem com linha muito grande
                  msg_date: '2023-02-08T19:10:09-03:00'
                success: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/mailbox/spreadsheet:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Baixar planilha com resultados das migrações de caixas postais
      operationId: get_migration_migrationId_mailbox_spreadsheet
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Planilha (XLSX) com as caixas postais da migração.
          content:
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: string
                format: binary
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/mailbox/file:
    post:
      tags:
      - Caixas Postais - Migração
      summary: Inserir caixas postais em lote na migração
      operationId: post_migration_migrationId_mailbox_file
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
                message: Operação realizada com sucesso
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/mailbox/{mailboxId}/logs:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Relatório de migrações de caixas postais
      operationId: get_migration_migrationId_mailbox_mailboxId_logs
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: mailboxId
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: true
        schema:
          type: string
      - name: per_page
        in: query
        required: true
        schema:
          type: string
      - name: log_type
        in: query
        required: false
        schema:
          type: string
      - name: order_by
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - migration_mailbox_id: 24
                  log_time: '2021-11-19T16:37:21-02:00'
                  log_type: INFO
                  log_message: Sync alterado para finalizado
                - migration_mailbox_id: 23
                  log_time: '2021-11-19T16:36:43-02:00'
                  log_type: INFO
                  log_message: 'Ignorando pasta: INBOX.spam'
                total: 24
                page: 1
                per_page: 20
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/schedule:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Listar agendamentos de migração
      operationId: get_migration_migrationId_schedule
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  migration_schedule_id: 113
                  migration_id: 7849
                  date_created: '2024-11-19T16:37:52-02:00'
                  date_start: '2024-11-20T18:00:00-02:00'
                  status: finished
                  date_run: '2024-11-20T18:00:01-02:00'
                  run_count: 1
                  recurring_days: 0
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    post:
      tags:
      - Caixas Postais - Migração
      summary: Criar agendamento de migração
      operationId: post_migration_migrationId_schedule
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                date_start:
                  type: string
                qtty_recurrence:
                  type: string
              required:
              - date_start
      responses:
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  migration_schedule_id: 115
                  migration_id: 7898
                  date_created: '2026-06-19T10:31:13-03:00'
                  date_start: '2030-01-10T23:00:00-02:00'
                  status: scheduled
                  run_count: 0
                  recurring_days: 4
  /migration/{migrationId}/schedule/{migrationScheduleId}:
    put:
      tags:
      - Caixas Postais - Migração
      summary: Atualizar informações de agendamento de migração
      operationId: put_migration_migrationId_schedule_migrationScheduleId
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: migrationScheduleId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                date_start:
                  type: string
                qtty_recurrence:
                  type: string
              required:
              - date_start
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  migration_schedule_id: 116
                  migration_id: 7898
                  date_created: '2026-06-19T10:31:13-03:00'
                  date_start: '2030-02-15T22:00:00-02:00'
                  status: scheduled
                  run_count: 0
                  recurring_days: 5
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
    delete:
      tags:
      - Caixas Postais - Migração
      summary: Remover agendamento de migração
      operationId: delete_migration_migrationId_schedule_migrationScheduleId
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      - name: migrationScheduleId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  migration_schedule_id: 115
                  migration_id: 7898
                  status: canceled
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/{migrationId}/schedule/log:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Recuperar log de agendamento da migração
      operationId: get_migration_migrationId_schedule_log
      parameters:
      - name: migrationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - status: executed
                  migration_log_id: 85909
                  migration_id: 7849
                  log_time: '2024-11-20T18:00:01-02:00'
                  log_type: INFO
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /migration/host:
    get:
      tags:
      - Caixas Postais - Migração
      summary: Listar informações padrões dos hosts de origem
      operationId: get_migration_host
      parameters:
      - name: page
        in: query
        required: true
        schema:
          type: string
      - name: per_page
        in: query
        required: true
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Lista de provedores IMAP de origem suportados na migração.
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        migration_imap_host_id:
                          type: integer
                        src_host_name:
                          type: string
                        mx_namekey:
                          type: string
                        src_host:
                          type: string
                        src_ssl:
                          type: boolean
                        src_port:
                          type: integer
                  page:
                    type: integer
                  perPage:
                    type: integer
                  numPages:
                    type: integer
                  total:
                    type: integer
                  success:
                    type: boolean
              example:
                result:
                - migration_imap_host_id: 1
                  src_host_name: Gmail
                  mx_namekey: .google.com
                  src_host: imap.gmail.com
                  src_ssl: true
                  src_port: 993
                - migration_imap_host_id: 2
                  src_host_name: Outlook/365
                  mx_namekey: protection.outlook.com
                  src_host: outlook.office365.com
                  src_ssl: true
                  src_port: 993
                - migration_imap_host_id: 3
                  src_host_name: AWS
                  mx_namekey: .spfbl.net
                  src_host: imap.mail.us-east-1.awsapps.com
                  src_ssl: true
                  src_port: 993
                page: 1
                perPage: 20
                numPages: 1
                total: 12
                success: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /smtp-out/{clientId}/client/excess:
    get:
      tags:
      - Envios SMTP
      summary: Consultar excedente SMTP do cliente
      description: Verifica o status de excedente de envio SMTP do cliente informado.
      operationId: get_smtp_out_client_excess
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hasExcess: true
                  percentage: 30
                  total: 150000
                  limit: 45000
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/client/excess'' -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Envios SMTP
      summary: Atualizar SMTP cliente excedente
      operationId: put_smtp_out_clientId_client_excess
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                excess: true
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /domain-register/{provider}/domain/{name}/autorenew:
    put:
      tags:
      - Registro de Domínio
      summary: Atualizar registro de domínio (autorenew)
      operationId: put_domain_register_provider_domain_name_autorenew
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: autorenew
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
        '400':
          description: Erro de validação dos dados enviados.
          content:
            application/json:
              example:
                success: false
                message: Invalid format for parameter
        '403':
          description: You are not allowed to perform this operation para a operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
  /antispam/score:
    get:
      tags:
      - Antispam
      summary: Consultar configuração de pontuação
      description: Retorna as configurações de pontuação do antispam para o domínio ou e-mail informado.
      operationId: get_antispam_score
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta (ex. meudominio.com.br ou usuario@meudominio.com.br).
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  addHeader: 99
                  quarantine: null
                  rewriteSubject: 1
                  reject: 25
        '400':
          description: Parâmetro filter em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Parameter filter is not valid
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/score?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Salvar configuração de pontuação
      description: Salva as configurações de pontuação do antispam para o domínio ou e-mail informado. Os campos não enviados permanecem inalterados.
      operationId: post_antispam_score
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo da configuração.
                  example: meudominio.com.br
                addHeader:
                  type: number
                  description: Pontuação para adicionar cabeçalho (0–100). Envie null para remover.
                  example: 99
                quarantine:
                  type: number
                  description: Pontuação para quarentena (0–100). Envie null para remover.
                  example: null
                rewriteSubject:
                  type: number
                  description: Pontuação para reescrever assunto (0–100). Envie null para remover.
                  example: 1
                reject:
                  type: number
                  description: Pontuação para rejeitar mensagem (0–100). Envie null para remover.
                  example: 25
      responses:
        '200':
          description: Configuração salva com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  addHeader: 99
                  quarantine: null
                  rewriteSubject: 1
                  reject: 25
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Parameter filter is not valid
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/score'' --data "filter=meudominio.com.br&addHeader=99&rewriteSubject=1&reject=25" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/score/details:
    get:
      tags:
      - Antispam
      summary: Consultar detalhes da pontuação de mensagem
      description: Retorna os detalhes da pontuação de antispam de uma mensagem específica.
      operationId: get_antispam_score_details
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio ou e-mail para contexto da consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: messageId
        in: query
        required: true
        description: Identificador da mensagem para consulta de detalhes.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  Symbols.Names:
                  - BAYES_SPAM
                  - DKIM_SIGNED
                  - SPF_FAIL
                  Symbols.Scores:
                  - 5.2
                  - -0.1
                  - 3.5
                  Symbols.Options:
                  - []
                  - - skymail.net.br
                  - - mx.skymail.net.br
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Parameter domain is not valid
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/score/details?domain=meudominio.com.br&messageId=abc123'' -H ''Authorization: bearer jwt.token.generated'''
  /antispam/blocked-sender:
    get:
      tags:
      - Antispam
      summary: Listar remetentes bloqueados
      description: Retorna a lista de remetentes bloqueados para o domínio ou e-mail informado.
      operationId: get_antispam_blocked_sender
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: spam@dominio-externo.com
                  original: spam@dominio-externo.com
                - normalized: phishing@malware.net
                  original: phishing@malware.net
                - normalized: noreply@suspicious.xyz
                  original: noreply@suspicious.xyz
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/blocked-sender?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar remetentes bloqueados
      description: Adiciona múltiplos remetentes à lista de bloqueio do domínio ou e-mail informado.
      operationId: post_antispam_blocked_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedSender:
                  type: array
                  items:
                    type: string
                  description: Lista de remetentes a bloquear (enviar como blockedSender[]).
            example:
              filter: meudominio.com.br
              blockedSender:
              - spam@dominio-externo.com
              - phishing@malware.net
      responses:
        '200':
          description: Remetentes adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: spam@dominio-externo.com
                  original: spam@dominio-externo.com
                - normalized: phishing@malware.net
                  original: phishing@malware.net
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/blocked-sender'' --data "filter=meudominio.com.br&blockedSender[]=spam@exemplo.com&blockedSender[]=phishing@exemplo.com" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar remetente bloqueado individual
      description: Adiciona um único remetente à lista de bloqueio do domínio ou e-mail informado.
      operationId: put_antispam_blocked_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedSender:
                  type: string
                  description: Endereço do remetente a bloquear.
                  example: spam@exemplo.com
      responses:
        '200':
          description: Remetente adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/blocked-sender'' --data "filter=meudominio.com.br&blockedSender=spam@exemplo.com" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover remetente bloqueado
      description: Remove um remetente da lista de bloqueio do domínio ou e-mail informado.
      operationId: delete_antispam_blocked_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedSender:
                  type: string
                  description: Endereço do remetente a remover.
                  example: spam@exemplo.com
      responses:
        '200':
          description: Remetente removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/blocked-sender'' --data "filter=meudominio.com.br&blockedSender=spam@exemplo.com" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/allowed-sender:
    get:
      tags:
      - Antispam
      summary: Listar remetentes permitidos
      description: Retorna a lista de remetentes permitidos para o domínio ou e-mail informado.
      operationId: get_antispam_allowed_sender
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: parceiro@skymail.net.br
                  original: parceiro@skymail.net.br
                - normalized: newsletter@servico.com
                  original: newsletter@servico.com
                - normalized: financeiro@fornecedor.com.br
                  original: financeiro@fornecedor.com.br
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/allowed-sender?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar remetentes permitidos
      description: Adiciona múltiplos remetentes à lista de permissão do domínio ou e-mail informado.
      operationId: post_antispam_allowed_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedSender:
                  type: array
                  items:
                    type: string
                  description: Lista de remetentes a permitir (enviar como allowedSender[]).
            example:
              filter: meudominio.com.br
              allowedSender:
              - parceiro@skymail.net.br
              - newsletter@servico.com
      responses:
        '200':
          description: Remetentes adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: parceiro@skymail.net.br
                  original: parceiro@skymail.net.br
                - normalized: newsletter@servico.com
                  original: newsletter@servico.com
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/allowed-sender'' --data "filter=meudominio.com.br&allowedSender[]=parceiro@empresa.com&allowedSender[]=newsletter@servico.com" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar remetente permitido individual
      description: Adiciona um único remetente à lista de permissão do domínio ou e-mail informado.
      operationId: put_antispam_allowed_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedSender:
                  type: string
                  description: Endereço do remetente a permitir.
                  example: parceiro@empresa.com
      responses:
        '200':
          description: Remetente adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/allowed-sender'' --data "filter=meudominio.com.br&allowedSender=parceiro@empresa.com" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover remetente permitido
      description: Remove um remetente da lista de permissão do domínio ou e-mail informado.
      operationId: delete_antispam_allowed_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedSender:
                  type: string
                  description: Endereço do remetente a remover.
                  example: parceiro@empresa.com
      responses:
        '200':
          description: Remetente removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/allowed-sender'' --data "filter=meudominio.com.br&allowedSender=parceiro@empresa.com" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/blocked-domain:
    get:
      tags:
      - Antispam
      summary: Listar domínios bloqueados
      description: Retorna a lista de domínios bloqueados para o domínio ou e-mail informado.
      operationId: get_antispam_blocked_domain
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - spamdominio.com
                - malware.net
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/blocked-domain?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar domínios bloqueados
      description: Adiciona múltiplos domínios à lista de bloqueio.
      operationId: post_antispam_blocked_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedDomain:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a bloquear (enviar como blockedDomain[]).
      responses:
        '200':
          description: Domínios adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - spamdominio.com
                - malware.net
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/blocked-domain'' --data "filter=meudominio.com.br&blockedDomain[]=spamdominio.com&blockedDomain[]=malware.net" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar domínio bloqueado individual
      description: Adiciona um único domínio à lista de bloqueio.
      operationId: put_antispam_blocked_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedDomain:
                  type: string
                  description: Domínio a bloquear.
                  example: spamdominio.com
      responses:
        '200':
          description: Domínio adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/blocked-domain'' --data "filter=meudominio.com.br&blockedDomain=spamdominio.com" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover domínio bloqueado
      description: Remove um domínio da lista de bloqueio.
      operationId: delete_antispam_blocked_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedDomain:
                  type: string
                  description: Domínio a remover.
                  example: spamdominio.com
      responses:
        '200':
          description: Domínio removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/blocked-domain'' --data "filter=meudominio.com.br&blockedDomain=spamdominio.com" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/allowed-domain:
    get:
      tags:
      - Antispam
      summary: Listar domínios permitidos
      description: Retorna a lista de domínios permitidos para o domínio ou e-mail informado.
      operationId: get_antispam_allowed_domain
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - parceiro.com.br
                - provedor.com
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/allowed-domain?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar domínios permitidos
      description: Adiciona múltiplos domínios à lista de permissão.
      operationId: post_antispam_allowed_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedDomain:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a permitir (enviar como allowedDomain[]).
      responses:
        '200':
          description: Domínios adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - parceiro.com.br
                - provedor.com
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/allowed-domain'' --data "filter=meudominio.com.br&allowedDomain[]=parceiro.com.br&allowedDomain[]=provedor.com" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar domínio permitido individual
      description: Adiciona um único domínio à lista de permissão.
      operationId: put_antispam_allowed_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedDomain:
                  type: string
                  description: Domínio a permitir.
                  example: parceiro.com.br
      responses:
        '200':
          description: Domínio adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/allowed-domain'' --data "filter=meudominio.com.br&allowedDomain=parceiro.com.br" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover domínio permitido
      description: Remove um domínio da lista de permissão.
      operationId: delete_antispam_allowed_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedDomain:
                  type: string
                  description: Domínio a remover.
                  example: parceiro.com.br
      responses:
        '200':
          description: Domínio removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/allowed-domain'' --data "filter=meudominio.com.br&allowedDomain=parceiro.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/allowed-ip:
    get:
      tags:
      - Antispam
      summary: Listar IPs permitidos
      description: Retorna a lista de IPs permitidos para o domínio ou e-mail informado.
      operationId: get_antispam_allowed_ip
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - 192.168.0.15
                - 10.0.0.1/24
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/allowed-ip?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar IPs permitidos
      description: Adiciona múltiplos IPs à lista de permissão. Aceita IPs individuais e notação CIDR.
      operationId: post_antispam_allowed_ip
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedIp
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedIp:
                  type: array
                  items:
                    type: string
                  description: Lista de IPs a permitir (enviar como allowedIp[]).
      responses:
        '200':
          description: IPs adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - 192.168.0.15
                - 192.168.0.16
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/allowed-ip'' --data "filter=meudominio.com.br&allowedIp[]=192.168.0.15&allowedIp[]=192.168.0.16" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar IP permitido individual
      description: Adiciona um único IP à lista de permissão. Aceita notação CIDR.
      operationId: put_antispam_allowed_ip
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedIp
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedIp:
                  type: string
                  description: IP a permitir (aceita notação CIDR).
                  example: 192.168.0.15/32
      responses:
        '200':
          description: IP adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedIp cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/allowed-ip'' --data "filter=meudominio.com.br&allowedIp=192.168.0.15/32" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover IP permitido
      description: Remove um IP da lista de permissão.
      operationId: delete_antispam_allowed_ip
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedIp
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedIp:
                  type: string
                  description: IP a remover.
                  example: 192.168.0.15/32
      responses:
        '200':
          description: IP removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedIp cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/allowed-ip'' --data "filter=meudominio.com.br&allowedIp=192.168.0.15/32" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/top-rank/domain:
    get:
      tags:
      - Antispam - Dashboard
      summary: Ranking de domínios remetentes
      description: Retorna o ranking dos domínios que mais enviaram mensagens filtradas pelo antispam no período informado.
      operationId: get_antispam_top_rank_domain
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: dateFrom
        in: query
        required: true
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-01 00:00:00'
      - name: dateTo
        in: query
        required: true
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-07 23:59:59'
      - name: actions[]
        in: query
        required: false
        description: Filtro por ações do antispam (ex. reject, quarantine, add header, rewrite subject).
        schema:
          type: array
          items:
            type: string
      - name: size
        in: query
        required: false
        description: Quantidade de resultados a retornar (padrão 10).
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 1520
                  from: gmail.com
                - total: 843
                  from: outlook.com
                - total: 312
                  from: yahoo.com.br
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/top-rank/domain?domain=meudominio.com.br&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59&actions[]=reject&size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /antispam/top-rank/sender:
    get:
      tags:
      - Antispam - Dashboard
      summary: Ranking de remetentes
      description: Retorna o ranking dos remetentes que mais enviaram mensagens filtradas pelo antispam no período informado.
      operationId: get_antispam_top_rank_sender
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: dateFrom
        in: query
        required: true
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-01 00:00:00'
      - name: dateTo
        in: query
        required: true
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-07 23:59:59'
      - name: actions[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: size
        in: query
        required: false
        description: Quantidade de resultados a retornar (padrão 10).
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 487
                  from: spammer@dominio-externo.com
                - total: 215
                  from: marketing@newsletter.net
                - total: 98
                  from: noreply@promocoes.com.br
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/top-rank/sender?domain=meudominio.com.br&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59&size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /antispam/top-rank/ip:
    get:
      tags:
      - Antispam - Dashboard
      summary: Ranking de IPs remetentes
      description: Retorna o ranking dos IPs que mais enviaram mensagens filtradas pelo antispam no período informado.
      operationId: get_antispam_top_rank_ip
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: dateFrom
        in: query
        required: true
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-01 00:00:00'
      - name: dateTo
        in: query
        required: true
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-07 23:59:59'
      - name: actions[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: size
        in: query
        required: false
        description: Quantidade de resultados a retornar (padrão 10).
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 2340
                  from: 192.168.1.100
                - total: 1105
                  from: 10.0.0.55
                - total: 530
                  from: 203.0.113.42
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/top-rank/ip?domain=meudominio.com.br&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59&actions[]=reject&size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/antispam/history:
    get:
      tags:
      - Antispam - Dashboard
      summary: Histórico de antispam do domínio
      description: Retorna o histórico paginado de mensagens filtradas pelo antispam para o domínio informado.
      operationId: get_domain_antispam_history
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: query
        in: query
        required: false
        description: Termo de busca para filtrar resultados.
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: perPage
        in: query
        required: false
        description: Itens por página (padrão 10).
        schema:
          type: integer
          default: 10
      - name: action[]
        in: query
        required: false
        description: Filtro por ações do antispam (ex. reject, add header, quarantine, rewrite subject).
        schema:
          type: array
          items:
            type: string
      - name: orderBy
        in: query
        required: false
        description: Campo e direção para ordenação (ex. orderBy[DESC]=EnvelopeFrom).
        schema:
          type: string
      - name: dateFrom
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s). Padrão últimas 24 horas.
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s). Padrão momento atual.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                data:
                - MessageId: abc123def456
                  IP: 192.168.1.100
                  from: spammer@dominio-externo.com
                  EnvelopeFrom: spammer@dominio-externo.com
                  EnvelopeTo: usuario@skymail.net.br
                  ToCCBcc:
                  - usuario@skymail.net.br
                  Subject: Oferta imperdivel
                  Action: reject
                  Score: 15.3
                  MsgSize: 4521
                  time: '2024-01-05 14:32:10'
                - MessageId: xyz789ghi012
                  IP: 10.0.0.55
                  from: news@marketing.net
                  EnvelopeFrom: news@marketing.net
                  EnvelopeTo: contato@skymail.net.br
                  ToCCBcc:
                  - contato@skymail.net.br
                  Subject: Newsletter semanal
                  Action: add header
                  Score: 6.8
                  MsgSize: 12045
                  time: '2024-01-05 13:15:42'
                total: 247
                totalPages: 25
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/antispam/history?page=1&perPage=15&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/antispam/graph:
    get:
      tags:
      - Antispam - Dashboard
      summary: Gráfico de antispam do domínio
      description: Retorna dados para geração de gráfico de atividade do antispam para o domínio informado.
      operationId: get_domain_antispam_graph
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: action[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: dateFrom
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s). Padrão últimas 24 horas.
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s). Padrão momento atual.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                reject:
                - x: 1704067200
                  y: 45
                - x: 1704070800
                  y: 32
                add header:
                - x: 1704067200
                  y: 120
                - x: 1704070800
                  y: 98
                rewrite subject:
                - x: 1704067200
                  y: 15
                - x: 1704070800
                  y: 22
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/antispam/graph?action[]=reject&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/antispam/status:
    get:
      tags:
      - Antispam - Dashboard
      summary: Status de antispam do domínio
      description: Retorna o resumo de status das ações do antispam para o domínio informado no período.
      operationId: get_domain_antispam_status
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: action[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: dateFrom
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s). Padrão últimas 24 horas.
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s). Padrão momento atual.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                data:
                - action: reject
                  count: 1520
                  percentage: 45.2
                - action: add header
                  count: 1105
                  percentage: 32.8
                - action: rewrite subject
                  count: 740
                  percentage: 22.0
                total: 3365
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/antispam/status?action[]=reject&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59'' -H ''Authorization: bearer jwt.token.generated'''

  /veeam/backup-agent-jobs/{clientId}/status-backup-jobs:
    get:
      tags:
      - Veeam
      summary: Status dos jobs de backup agent por cliente
      description: Retorna o status dos jobs do backup agent para o cliente informado.
      operationId: get_veeam_backup_agent_jobs_status
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  success: 5
                  running: 1
                  warning: 2
                  failed: 0
                  info: 0
                  none: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent-jobs/1/status-backup-jobs'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent-jobs/{revenueId}/status-backup-jobs/revenue:
    get:
      tags:
      - Veeam
      summary: Status dos jobs de backup agent por receita
      description: Retorna o status dos jobs do backup agent para a receita (revenue) informada.
      operationId: get_veeam_backup_agent_jobs_status_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  success: 12
                  running: 3
                  warning: 4
                  failed: 1
                  info: 0
                  none: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent-jobs/1/status-backup-jobs/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{clientId}/information-agent:
    get:
      tags:
      - Veeam
      summary: Informações do backup agent por cliente
      description: Retorna as informações do backup agent para o cliente informado.
      operationId: get_veeam_backup_agent_information
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 3
                  productName: Servidor
                  managedBySkymail: 0
                  notManagedBySkymail: 3
                - total: 2
                  productName: Workstation
                  managedBySkymail: 0
                  notManagedBySkymail: 2
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/information-agent'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{revenueId}/information-agent/revenue:
    get:
      tags:
      - Veeam
      summary: Informações do backup agent por receita
      description: Retorna as informações do backup agent para a receita (revenue) informada.
      operationId: get_veeam_backup_agent_information_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 8
                  productName: Servidor
                  managedBySkymail: 0
                  notManagedBySkymail: 8
                - total: 5
                  productName: Workstation
                  managedBySkymail: 0
                  notManagedBySkymail: 5
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/information-agent/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{clientId}/managed-by-console:
    get:
      tags:
      - Veeam
      summary: Listar agents gerenciados pelo console por cliente
      description: Retorna a lista paginada de backup agents gerenciados pelo console para o cliente informado.
      operationId: get_veeam_backup_agent_managed_by_console
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status (ex. Failed, Success).
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[computador]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - computador: SRV-SKYMAIL-01
                  licenca: Server
                  tarefa: 3 de 4
                  localizacao: Datacenter SP
                  status: Success
                - computador: WKS-FINANCEIRO-02
                  licenca: Workstation
                  tarefa: 1 de 1
                  localizacao: Datacenter SP
                  status: Warning
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/managed-by-console?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{revenueId}/managed-by-console/revenue:
    get:
      tags:
      - Veeam
      summary: Listar agents gerenciados pelo console por receita
      description: Retorna a lista paginada de backup agents gerenciados pelo console para a receita (revenue) informada.
      operationId: get_veeam_backup_agent_managed_by_console_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status (ex. Failed, Success).
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 3
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  computador: SRV-APP-01
                  licenca: Server
                  tarefa: 2 de 3
                  localizacao: Datacenter SP
                  status: Success
                - client: Empresa XYZ SA
                  computador: SRV-DB-01
                  licenca: Server
                  tarefa: 1 de 1
                  localizacao: Datacenter RJ
                  status: Failed
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/managed-by-console/revenue?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{clientId}/information-backup-replication:
    get:
      tags:
      - Veeam
      summary: Informações do servidor de backup por cliente
      description: Retorna as informações de backup e replicação do servidor para o cliente informado.
      operationId: get_veeam_backup_server_information
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 2
                  productName: Standard
                  managedBySkymail: 0
                  notManagedBySkymail: 2
                - total: 1
                  productName: Enterprise
                  managedBySkymail: 0
                  notManagedBySkymail: 1
                - total: 0
                  productName: Enterprise Plus
                  managedBySkymail: 0
                  notManagedBySkymail: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/information-backup-replication'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{revenueId}/information-backup-replication/revenue:
    get:
      tags:
      - Veeam
      summary: Informações do servidor de backup por receita
      description: Retorna as informações de backup e replicação do servidor para a receita (revenue) informada.
      operationId: get_veeam_backup_server_information_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 5
                  productName: Standard
                  managedBySkymail: 0
                  notManagedBySkymail: 5
                - total: 3
                  productName: Enterprise
                  managedBySkymail: 0
                  notManagedBySkymail: 3
                - total: 1
                  productName: Enterprise Plus
                  managedBySkymail: 0
                  notManagedBySkymail: 1
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/information-backup-replication/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{clientId}/managed-by-backup-server:
    get:
      tags:
      - Veeam
      summary: Listar itens gerenciados pelo servidor de backup por cliente
      description: Retorna a lista paginada de itens gerenciados pelo servidor de backup para o cliente informado.
      operationId: get_veeam_backup_server_managed
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status (ex. Failed, Success).
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[status]=desc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1
                page: 1
                rowsPerPage: 10
                data:
                - tarefa: Backup Diario Servidores
                  status: Success
                  objetos_processados: 3 de 4
                  duracao: 1 Horas 23 Minutos 45 Segundos
                  agendamento: Daily
                  tipo: AgentBackupJob
                  ultima_execucao: 25/06/2024 03:30
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  sistema_operacional: Windows
                  modo_operacao: Server
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/managed-by-backup-server?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{revenueId}/managed-by-backup-server/revenue:
    get:
      tags:
      - Veeam
      summary: Listar itens gerenciados pelo servidor de backup por receita
      description: Retorna a lista paginada de itens gerenciados pelo servidor de backup para a receita (revenue) informada.
      operationId: get_veeam_backup_server_managed_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status.
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  tarefa: Backup Diario Servidores
                  status: Success
                  objetos_processados: 3 de 4
                  duracao: 1 Horas 23 Minutos 45 Segundos
                  agendamento: Daily
                  tipo: AgentBackupJob
                  ultima_execucao: 25/06/2024 03:30
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  sistema_operacional: Windows
                  modo_operacao: Server
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/managed-by-backup-server/revenue?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{clientId}/virtual-machine:
    get:
      tags:
      - Veeam
      summary: Listar máquinas virtuais do servidor de backup por cliente
      description: Retorna a lista paginada de máquinas virtuais associadas ao servidor de backup para o cliente informado.
      operationId: get_veeam_backup_server_virtual_machine
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status.
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[tarefa]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1
                page: 1
                rowsPerPage: 10
                data:
                - tarefa: Backup VM Producao
                  status: Success
                  objetos_processados: 5
                  duracao: 0 Horas 45 Minutos 30 Segundos
                  agendamento: Daily
                  tipo: BackupVm
                  ultima_execucao: 25/06/2024 02:15
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  destino: Default Backup Repository
                  plataforma: VMware
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/virtual-machine?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{revenueId}/virtual-machine/revenue:
    get:
      tags:
      - Veeam
      summary: Listar máquinas virtuais do servidor de backup por receita
      description: Retorna a lista paginada de máquinas virtuais associadas ao servidor de backup para a receita (revenue) informada.
      operationId: get_veeam_backup_server_virtual_machine_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status.
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  tarefa: Backup VM Producao
                  status: Success
                  objetos_processados: 5
                  duracao: 0 Horas 45 Minutos 30 Segundos
                  agendamento: Daily
                  tipo: BackupVm
                  ultima_execucao: 25/06/2024 02:15
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  destino: Default Backup Repository
                  plataforma: VMware
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/virtual-machine/revenue?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{clientId}/storage:
    get:
      tags:
      - Veeam
      summary: Consultar storage da organização por cliente
      description: Retorna as informações de storage da organização Veeam para o cliente informado.
      operationId: get_veeam_organization_storage
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                storage: 107374182400
                data:
                  used: 64424509440
                  available: 42949672960
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{revenueId}/storage/revenue:
    get:
      tags:
      - Veeam
      summary: Consultar storage da organização por receita
      description: Retorna as informações de storage da organização Veeam para a receita (revenue) informada.
      operationId: get_veeam_organization_storage_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                storage: 536870912000
                data:
                  used: 322122547200
                  available: 214748364800
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{revenueId}/storage/revenue/status/count:
    get:
      tags:
      - Veeam
      summary: Contagem de status de storage por receita
      description: Retorna a contagem agrupada por status de storage da organização Veeam para a receita informada.
      operationId: get_veeam_organization_storage_revenue_status_count
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                storage_status:
                  error: 1
                  ok: 8
                  warning: 3
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/revenue/status/count'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{revenueId}/storage/revenue/status/list:
    get:
      tags:
      - Veeam
      summary: Listar status de storage por receita
      description: Retorna a lista paginada de status de storage da organização Veeam para a receita informada.
      operationId: get_veeam_organization_storage_revenue_status_list
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[storage]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  capacidade: 107374182400
                  espaco_utilizado: 64424509440
                  espaco_disponivel: 42949672960
                  status: ok
                - client: Empresa XYZ SA
                  capacidade: 53687091200
                  espaco_utilizado: 48318382080
                  espaco_disponivel: 5368709120
                  status: warning
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/revenue/status/list?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{clientId}/storage/status/list:
    get:
      tags:
      - Veeam
      summary: Listar status de storage por cliente
      description: Retorna a lista paginada de status de storage da organização Veeam para o cliente informado.
      operationId: get_veeam_organization_storage_status_list
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  capacidade: 107374182400
                  espaco_utilizado: 64424509440
                  espaco_disponivel: 42949672960
                  status: ok
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/status/list?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/protected-workloads/{clientId}/protected-machines:
    get:
      tags:
      - Veeam
      summary: Listar máquinas protegidas
      description: Retorna a lista de máquinas protegidas pelo Veeam para o cliente informado.
      operationId: get_veeam_protected_workloads
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 7
                data:
                  success: 5
                  running: 1
                  warning: 1
                  failed: 0
                  undefined: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/protected-workloads/1/protected-machines'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/reseller/{revenueId}:
    get:
      tags:
      - Veeam
      summary: Consultar cliente revenda por receita
      description: Retorna as informações do cliente de revenda Veeam para a receita (revenue) informada.
      operationId: get_veeam_reseller
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: Empresa ABC Ltda
                  clientId: 1001
                  instanceUid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                - name: Empresa XYZ SA
                  clientId: 1002
                  instanceUid: b2c3d4e5-f6a7-8901-bcde-f12345678901
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/reseller/1'' -H ''Authorization: bearer jwt.token.generated'''

  /dns/{name}/entry/default-entries:
    post:
      tags:
      - Dns
      summary: Criar entradas padrão de DNS
      description: Cria as entradas padrão de DNS para a zona informada. Útil para configurar automaticamente os registros mais comuns (MX, CNAME para autodiscover, webmail, etc.).
      operationId: post_dns_entry_default_entries
      parameters:
      - name: name
        in: path
        required: true
        description: Nome da zona de DNS (domínio).
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - force
              properties:
                force:
                  type: string
                  enum:
                  - 'true'
                  - 'false'
                  description: Se true, sobrescreve entradas existentes. Se false, mantém as existentes.
                  example: 'true'
      responses:
        '201':
          description: Entradas padrão criadas com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 1440050
                  name: meudominio.com.br
                  type: MX
                  value: mx.meudominio.com.br
                  ttl: 3600
                - id: 1440051
                  name: autodiscover.meudominio.com.br
                  type: CNAME
                  value: autodiscover-ha.meuprovedor.com.br
                  ttl: 3600
                - id: 1440052
                  name: webmail.meudominio.com.br
                  type: CNAME
                  value: webmail-ha.meuprovedor.com.br
                  ttl: 3600
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns/meudominio.com.br/entry/default-entries'' --data "force=true" -H ''Authorization: bearer jwt.token.generated'''
  /dns/check/{domain}:
    get:
      tags:
      - Dns
      summary: Verificar se DNS pode ser importado
      description: Verifica se existem entradas comuns configuradas externamente para o domínio informado que podem ser importadas para a zona de DNS.
      operationId: get_dns_check
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para verificação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  canImport: true
                  canCreate: false
                  reasons: []
        '500':
          description: Erro interno na verificação.
          content:
            application/json:
              example:
                success: false
                message: Erro na verificação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/check/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /dns/{zone}/lb-health:
    get:
      tags:
      - Dns
      summary: Listar saúde dos alvos DNS LB
      description: Retorna o estado de saúde atual de todos os alvos monitorados pelo dns-lb-prober para a zona informada. Filtro opcional `filters[record_name][]` para limitar a registros específicos.
      operationId: get_dns_lb_health
      parameters:
      - name: zone
        in: path
        required: true
        description: Nome da zona de DNS (domínio).
        schema:
          type: string
          example: meudominio.com.br
      - name: filters[record_name][]
        in: query
        required: false
        description: Filtrar por nome(s) de registro DNS.
        schema:
          type: array
          items:
            type: string
          example: ['lb.meudominio.com.br']
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  stale_after_seconds:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        record_name:
                          type: string
                        ip:
                          type: string
                        port:
                          type: integer
                        url:
                          type: string
                        check_type:
                          type: string
                        health_status:
                          type: string
                          enum: [up, down, unknown, invalid]
                        raw_status:
                          type: string
                        status_since:
                          type: string
                        last_checked_at:
                          type: string
                        last_error:
                          type: string
              example:
                success: true
                count: 3
                stale_after_seconds: 300
                data:
                - record_name: lb.meudominio.com.br
                  ip: 1.2.3.4
                  port: 80
                  url: null
                  check_type: port
                  health_status: up
                  raw_status: up
                  status_since: '2026-08-03T08:31:00-03:00'
                  last_checked_at: '2026-08-03T10:30:42-03:00'
                  last_error: null
        '403':
          description: Acesso negado.
          content:
            application/json:
              example:
                success: false
                message: Acesso negado
        '404':
          description: Zona de DNS não encontrada.
          content:
            application/json:
              example:
                success: false
                message: Zone not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/meudominio.com.br/lb-health?filters[record_name][]=lb.meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /dns/{zone}/lb-health/events:
    get:
      tags:
      - Dns
      summary: Listar incidentes de saúde DNS LB
      description: Retorna os incidentes de saúde pareados (down→up) dos últimos 7 dias para a zona informada. Filtros opcionais `filters[record_name][]` e `filters[ip][]`.
      operationId: get_dns_lb_health_events
      parameters:
      - name: zone
        in: path
        required: true
        description: Nome da zona de DNS (domínio).
        schema:
          type: string
          example: meudominio.com.br
      - name: filters[record_name][]
        in: query
        required: false
        description: Filtrar por nome(s) de registro DNS.
        schema:
          type: array
          items:
            type: string
          example: ['lb.meudominio.com.br']
      - name: filters[ip][]
        in: query
        required: false
        description: Filtrar por IP(s) de destino.
        schema:
          type: array
          items:
            type: string
          example: ['1.2.3.5']
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  count:
                    type: integer
                  window_days:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        record_name:
                          type: string
                        ip:
                          type: string
                        port:
                          type: integer
                        url:
                          type: string
                          nullable: true
                        started_at:
                          type: string
                        ended_at:
                          type: string
                          nullable: true
                        duration_seconds:
                          type: integer
                          nullable: true
                        ongoing:
                          type: boolean
                        reason:
                          type: string
                        recovery_reason:
                          type: string
                          nullable: true
              example:
                success: true
                count: 1
                window_days: 7
                data:
                - record_name: lb.meudominio.com.br
                  ip: 1.2.3.5
                  port: 80
                  url: null
                  started_at: '2026-08-03T10:27:10-03:00'
                  ended_at: null
                  duration_seconds: null
                  ongoing: true
                  reason: timeout connecting to 1.2.3.5:80
                  recovery_reason: null
        '403':
          description: Acesso negado.
          content:
            application/json:
              example:
                success: false
                message: Acesso negado
        '404':
          description: Zona de DNS não encontrada.
          content:
            application/json:
              example:
                success: false
                message: Zone not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/meudominio.com.br/lb-health/events?filters[ip][]=1.2.3.5'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/templates:
    get:
      tags:
      - Dns - Templates
      summary: Listar templates de DNS
      description: Retorna a lista de templates de DNS cadastrados para o cliente informado.
      operationId: get_dns_template_list
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 1234
                  name: meudominio.com.br
                - id: 1235
                  name: outrodominio.com.br
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns-template/1/templates'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/template:
    get:
      tags:
      - Dns - Templates
      summary: Consultar template de DNS com entradas
      description: Retorna o template de DNS e suas entradas para o cliente informado.
      operationId: get_dns_template
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  dns:
                    id: 1234
                    entries:
                    - id: 5678
                      name: mail.meudominio.com.br
                      type: CNAME
                      value: mail-ha.meuprovedor.com.br
                      ttl: 3600
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns-template/1/template'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/entry:
    get:
      tags:
      - Dns - Templates
      summary: Listar entradas do template de DNS
      description: Retorna as entradas do template de DNS para o cliente informado.
      operationId: get_dns_template_entries
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  entries:
                  - id: 5678
                    name: mail.meudominio.com.br
                    type: CNAME
                    value: mail-ha.meuprovedor.com.br
                    ttl: 3600
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns-template/1/entry'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Dns - Templates
      summary: Adicionar entrada ao template de DNS
      description: Adiciona uma nova entrada ao template de DNS do cliente informado.
      operationId: post_dns_template_entry
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - type
              - value
              properties:
                name:
                  type: string
                  description: Nome do registro (obrigatório para CNAME).
                  example: test
                type:
                  type: string
                  description: Tipo do registro DNS.
                  enum:
                  - A
                  - AAAA
                  - CNAME
                  - MX
                  - TXT
                  - SRV
                  - NS
                  - CAA
                  - LB
                  example: CNAME
                value:
                  type: string
                  description: Valor do registro.
                  example: 192.168.0.1
                ttl:
                  type: integer
                  description: TTL em segundos (padrão 3600).
                  default: 3600
                  example: 3600
                priority:
                  type: integer
                  description: Prioridade (para MX e SRV).
                  example: 10
                weight:
                  type: integer
                  description: Peso (para SRV).
                  example: 5
                port:
                  type: integer
                  description: Porta (para SRV).
                  example: 8080
                flag:
                  type: integer
                  description: Flag (para CAA, 0–255).
                  example: 0
                tag:
                  type: string
                  description: Tag (para CAA — issue, issuewild ou iodef).
                  enum:
                  - issue
                  - issuewild
                  - iodef
      responses:
        '200':
          description: Entrada adicionada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns-template/1/entry'' --data "name=test&type=CNAME&value=192.168.0.1&ttl=3600" -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}:
    post:
      tags:
      - Dns - Templates
      summary: Criar template de DNS
      description: Cria um novo template de DNS para o cliente informado.
      operationId: post_dns_template_create
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '201':
          description: Template criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  dns:
                    id: 1234
        '400':
          description: Erro na criação.
          content:
            application/json:
              example:
                success: false
                message: Error creating template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns-template/1'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Dns - Templates
      summary: Excluir template de DNS
      description: Exclui o template de DNS do cliente informado, incluindo todas as suas entradas.
      operationId: delete_dns_template
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Template excluído com sucesso.
          content:
            application/json:
              example:
                success: true
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/dns-template/1'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/import/{dnsName}:
    post:
      tags:
      - Dns - Templates
      summary: Importar template a partir de zona de DNS
      description: Importa as entradas de uma zona de DNS existente para o template do cliente informado.
      operationId: post_dns_template_import
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: dnsName
        in: path
        required: true
        description: Nome da zona de DNS a importar.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Importação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na importação.
          content:
            application/json:
              example:
                success: false
                message: Error importing template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns-template/1/import/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/entry/{entryId}:
    put:
      tags:
      - Dns - Templates
      summary: Atualizar entrada do template de DNS
      description: Atualiza uma entrada existente do template de DNS.
      operationId: put_dns_template_entry
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      - name: entryId
        in: path
        required: true
        description: ID da entrada a atualizar.
        schema:
          type: integer
          example: 5678
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do registro.
                  example: test.meudominio.com.br
                type:
                  type: string
                  description: Tipo do registro DNS.
                  enum:
                  - A
                  - AAAA
                  - CNAME
                  - MX
                  - TXT
                  - SRV
                  - NS
                  - CAA
                  - LB
                value:
                  type: string
                  description: Valor do registro.
                  example: teste.com.br
                ttl:
                  type: integer
                  description: TTL em segundos.
                  example: 3600
                priority:
                  type: integer
                  description: Prioridade (para MX e SRV).
                weight:
                  type: integer
                  description: Peso (para SRV).
                port:
                  type: integer
                  description: Porta (para SRV).
      responses:
        '200':
          description: Entrada atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                message: Entry updated successfully
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/dns-template/1/entry/5678'' --data "name=test.meudominio.com.br&type=CNAME&value=teste.com.br&ttl=3600" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Dns - Templates
      summary: Excluir entrada do template de DNS
      description: Exclui uma entrada específica do template de DNS.
      operationId: delete_dns_template_entry
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      - name: entryId
        in: path
        required: true
        description: ID da entrada a excluir.
        schema:
          type: integer
          example: 5678
      responses:
        '200':
          description: Entrada excluída com sucesso.
          content:
            application/json:
              example:
                success: true
        '404':
          description: Entrada não encontrada.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/dns-template/1/entry/5678'' -H ''Authorization: bearer jwt.token.generated'''

  /report/fields/{report}:
    get:
      tags:
      - Relatórios
      summary: Consultar campos disponíveis de um relatório
      description: Retorna os campos disponíveis para o tipo de relatório informado, permitindo saber quais campos podem ser selecionados na requisição do relatório.
      operationId: get_report_fields
      parameters:
      - name: report
        in: path
        required: true
        description: Nome/tipo do relatório (ex. mailbox, groupmail).
        schema:
          type: string
          example: mailbox
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
              - label: E-mail
                field: mail
              - label: Nome
                field: displayName
              - label: Domínio
                field: domain
              - label: Quota
                field: quota
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/fields/mailbox'' -H ''Authorization: bearer jwt.token.generated'''
  /report/request:
    post:
      tags:
      - Relatórios
      summary: Solicitar geração de relatório
      description: Solicita a geração assíncrona de um relatório. O relatório é processado em background e o resultado enviado por e-mail ao solicitante quando informado.
      operationId: post_report_request
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - report
              properties:
                report:
                  type: string
                  description: Tipo do relatório (ex. mailbox, groupmail, useradmin).
                  example: mailbox
                filter:
                  type: object
                  description: Filtros aplicados ao relatório (ex. filter[domain]=meudominio.com.br).
                fields:
                  type: array
                  items:
                    type: string
                  description: Campos a incluir no relatório (enviar como fields[]).
                file:
                  type: boolean
                  description: Se true, gera arquivo para download.
                  default: false
                requester:
                  type: string
                  format: email
                  description: E-mail do solicitante para receber o resultado.
                requestUrl:
                  type: string
                  description: URL de callback ao finalizar o relatório.
      responses:
        '200':
          description: Relatório solicitado com sucesso.
          content:
            application/json:
              example:
                result: success
                message: Relatório solicitado com sucesso
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                result: fail
                message: Invalid report type
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/report/request'' --data "report=mailbox&filter[domain]=meudominio.com.br&fields[]=mail&fields[]=displayName&requester=admin@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/received:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens recebidas
      description: Retorna as mensagens recebidas com base nos filtros de remetente, destinatário e período informados.
      operationId: get_report_messages_received
      parameters:
      - name: fromEmail
        in: query
        required: false
        description: E-mail do remetente para filtro.
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        description: E-mail do destinatário para filtro.
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual (alternativa a from/to).
        schema:
          type: integer
          example: 604800
      - name: fields
        in: query
        required: false
        description: Campos a retornar, separados por vírgula (ex. De,Para,Motivo,@timestamp).
        schema:
          type: string
          example: De,Para,Motivo,@timestamp
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
          example: 10000
      - name: offset
        in: query
        required: false
        description: Offset para paginação.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                total_count: 150
                data:
                - De: remetente@externo.com
                  Para: usuario@meudominio.com.br
                  Motivo: Recebida
                  '@timestamp': '2024-01-15T10:30:00.000Z'
                - De: contato@empresa.com
                  Para: usuario@meudominio.com.br
                  Motivo: Recebida
                  '@timestamp': '2024-01-15T11:45:22.000Z'
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/received?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/rejected:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens rejeitadas
      description: Retorna as mensagens recebidas que foram rejeitadas, com base nos filtros informados.
      operationId: get_report_messages_rejected
      parameters:
      - name: fromEmail
        in: query
        required: false
        description: E-mail do remetente para filtro.
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        description: E-mail do destinatário para filtro.
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual.
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        description: Campos a retornar, separados por vírgula.
        schema:
          type: string
          example: De,Para,Motivo,@timestamp
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: Offset para paginação.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 35
                data:
                - De: spam@origem.com
                  Para: usuario@meudominio.com.br
                  Motivo: Rejeitada por politica de seguranca
                  '@timestamp': '2024-01-05T08:12:33.000Z'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/rejected?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-07+23:59:59&fields=De,Para,Motivo,@timestamp'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/all-received:
    get:
      tags:
      - Relatórios
      summary: Relatório de todas as mensagens recebidas
      description: Retorna todas as mensagens recebidas (incluindo rejeitadas), com base nos filtros informados.
      operationId: get_report_messages_all_received
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                total_count: 185
                data:
                - De: remetente@externo.com
                  Para: usuario@meudominio.com.br
                  Motivo: Recebida
                  '@timestamp': '2024-01-15T10:30:00.000Z'
                  Tipo: Recebidas
                - De: spam@origem.com
                  Para: usuario@meudominio.com.br
                  Motivo: Rejeitada por politica de seguranca
                  '@timestamp': '2024-01-15T11:02:10.000Z'
                  Tipo: RecebidasMasRejeitadas
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/all-received?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Tipo&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/sent:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens enviadas
      description: Retorna as mensagens enviadas com sucesso, com base nos filtros informados.
      operationId: get_report_messages_sent
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 420
                data:
                - De: usuario@meudominio.com.br
                  Para: destinatario@externo.com
                  Motivo: Enviada
                  '@timestamp': '2024-01-20T14:05:30.000Z'
                  Assunto: Reuniao de alinhamento
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/sent?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,@timestamp,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/sent-failed:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens enviadas com falha
      description: Retorna as mensagens cujo envio falhou, com base nos filtros informados.
      operationId: get_report_messages_sent_failed
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 12
                data:
                - De: usuario@meudominio.com.br
                  Para: invalido@dominio-inexistente.com
                  Motivo: Host not found
                  '@timestamp': '2024-01-18T09:20:15.000Z'
                  Assunto: Proposta comercial
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/sent-failed?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/sent-in-attempt:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens em tentativa de envio
      description: Retorna as mensagens que ainda estão em tentativa de envio, com base nos filtros informados.
      operationId: get_report_messages_sent_in_attempt
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 5
                data:
                - De: usuario@meudominio.com.br
                  Para: destinatario@externo.com
                  Motivo: Em tentativa
                  '@timestamp': '2024-01-25T16:40:00.000Z'
                  Assunto: Documento em anexo
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/sent-in-attempt?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/all-sent:
    get:
      tags:
      - Relatórios
      summary: Relatório de todas as mensagens enviadas
      description: Retorna todas as mensagens enviadas (sucesso, falha e em tentativa), com base nos filtros informados.
      operationId: get_report_messages_all_sent
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                total_count: 437
                data:
                - De: usuario@meudominio.com.br
                  Para: destinatario@externo.com
                  Motivo: Enviada
                  '@timestamp': '2024-01-20T14:05:30.000Z'
                  Tipo: Enviadas
                  Assunto: Reuniao de alinhamento
                  MailBox: usuario@meudominio.com.br
                - De: usuario@meudominio.com.br
                  Para: invalido@dominio-inexistente.com
                  Motivo: Host not found
                  '@timestamp': '2024-01-18T09:20:15.000Z'
                  Tipo: EnviadasComFalha
                  Assunto: Proposta comercial
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/all-sent?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/login:
    get:
      tags:
      - Relatórios
      summary: Relatório de acessos/login
      description: Retorna os registros de acesso (login) de caixas postais no período informado, com possibilidade de filtrar por motivo.
      operationId: get_report_login
      parameters:
      - name: user
        in: query
        required: false
        description: E-mail do usuário para filtro.
        schema:
          type: string
          format: email
          example: usuario@meudominio.com.br
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual (alternativa a from/to).
        schema:
          type: integer
      - name: motivo
        in: query
        required: false
        description: Filtro por motivo do registro (ex. ok, fail).
        schema:
          type: string
          example: ok
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - user: usuario@meudominio.com.br
                  ip: 189.50.100.25
                  date: '2024-01-15T08:30:00.000Z'
                  motivo: ok
                - user: usuario@meudominio.com.br
                  ip: 200.168.0.10
                  date: '2024-01-15T09:15:22.000Z'
                  motivo: fail
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/login?user=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&motivo=ok'' -H ''Authorization: bearer jwt.token.generated'''
  /report/logs/skybox:
    get:
      tags:
      - Relatórios
      summary: Relatório de logs do Skybox
      description: Retorna os logs de auditoria do Skybox (webmail) para o usuário e período informados.
      operationId: get_report_logs_skybox
      parameters:
      - name: user
        in: query
        required: false
        description: E-mail do usuário para filtro.
        schema:
          type: string
          format: email
          example: usuario@meudominio.com.br
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual.
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        description: Campos a retornar, separados por vírgula.
        schema:
          type: string
          example: tipo,action,ip,message,timestamp,type,url,user
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: Offset para paginação.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 78
                data:
                - tipo: skybox-audit
                  action: login
                  ip: 189.50.100.25
                  message: Login efetuado com sucesso
                  timestamp: '2024-01-15T08:30:00.000Z'
                  user: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/logs/skybox?user=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=tipo,action,ip,message,timestamp'' -H ''Authorization: bearer jwt.token.generated'''
  /report/financial/credit-card:
    post:
      tags:
      - Relatórios
      summary: Relatório financeiro de cartão de crédito
      description: Retorna o relatório financeiro de transações de cartão de crédito no período informado.
      operationId: post_report_financial_credit_card
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  type: object
                  properties:
                    dateFrom:
                      type: string
                      format: date
                      description: Data de início do período.
                      example: '2024-01-01'
                    dateUpto:
                      type: string
                      format: date
                      description: Data de fim do período.
                      example: '2024-02-01'
                    clientId:
                      type: integer
                      description: ID do cliente para filtro (opcional).
                      example: null
                    urlFile:
                      type: boolean
                      description: Se true, retorna URL para download do arquivo.
                      default: false
                    onlyConfirmedPayments:
                      type: boolean
                      description: Se true, retorna apenas pagamentos confirmados.
                      default: false
            example:
              filter:
                dateFrom: '2024-01-01'
                dateUpto: '2024-02-01'
                urlFile: false
                onlyConfirmedPayments: false
                clientId: null
      responses:
        '200':
          description: Relatório gerado com sucesso.
          content:
            application/json:
              example:
                status: 200
                urlFile: ''
                count: 1
                total_count: 25
                items:
                - clientId: 100
                  clientName: Empresa Exemplo Ltda
                  value: 199.90
                  date: '2024-01-15'
                  status: confirmed
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                status: 400
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/report/financial/credit-card'' -H ''Content-Type: application/json'' -H ''Authorization: bearer jwt.token.generated'' -d ''{"filter":{"dateFrom":"2024-01-01","dateUpto":"2024-02-01","urlFile":false,"onlyConfirmedPayments":false}}'''

  /smtp-out/{clientId}/client/total-by-month/{month}:
    get:
      tags:
      - Envios SMTP
      summary: Total de envios SMTP por mês
      description: Retorna o total de envios SMTP do cliente no mês informado.
      operationId: get_smtp_out_client_total_by_month
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: month
        in: path
        required: true
        description: Mês no formato YYYYMM.
        schema:
          type: string
          example: '202401'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1500
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/client/total-by-month/202401'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{clientId}/delivery/details:
    get:
      tags:
      - Envios SMTP
      summary: Listar detalhes de entregas SMTP
      description: Retorna a lista paginada de detalhes de entregas SMTP do cliente, com filtros por domínio, caixa postal, destinatário, status e período.
      operationId: get_smtp_out_delivery_details
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: domain
        in: query
        required: false
        description: Domínio para filtro.
        schema:
          type: string
      - name: mailbox
        in: query
        required: false
        description: Caixa postal para filtro.
        schema:
          type: string
      - name: emailTo
        in: query
        required: false
        description: E-mail do destinatário para filtro.
        schema:
          type: string
      - name: status
        in: query
        required: false
        description: Filtro por status da entrega.
        schema:
          type: string
          enum:
          - bounced
          - sent
          - deferred
          - expired
      - name: dateFrom
        in: query
        required: false
        description: Data de início (formato YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS).
        schema:
          type: string
          format: date
      - name: dateTo
        in: query
        required: false
        description: Data de fim.
        schema:
          type: string
          format: date
      - name: dateDeliveryFrom
        in: query
        required: false
        description: Data de início da entrega.
        schema:
          type: string
          format: date
      - name: dateDeliveryTo
        in: query
        required: false
        description: Data de fim da entrega.
        schema:
          type: string
          format: date
      - name: page
        in: query
        required: true
        description: Número da página.
        schema:
          type: integer
          example: 1
      - name: perPage
        in: query
        required: true
        description: Itens por página.
        schema:
          type: integer
          example: 10
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[sentDate]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                page: 1
                perPage: 10
                numPages: 5
                total: 48
                canDownload: true
                data:
                - emailAuth: usuario@meudominio.com.br
                  emailTo: destinatario@externo.com
                  subject: Reuniao de alinhamento
                  status: sent
                  sentDate: '2024-01-15 10:30:00'
                  deliveryDate: '2024-01-15 10:30:05'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/delivery/details?dateFrom=2024-01-01&dateTo=2024-01-31&page=1&perPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{clientId}/delivery/details/download:
    get:
      tags:
      - Envios SMTP
      summary: Download dos detalhes de entregas SMTP
      description: Retorna os dados de entregas SMTP para download, filtrados por domínio, caixa postal, destinatário, status e período.
      operationId: get_smtp_out_delivery_details_download
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: domain
        in: query
        required: false
        schema:
          type: string
      - name: mailbox
        in: query
        required: false
        schema:
          type: string
      - name: emailTo
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - bounced
          - sent
          - deferred
          - expired
      - name: dateFrom
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: dateTo
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Dados para download retornados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - emailAuth: usuario@meudominio.com.br
                  emailTo: destinatario@externo.com
                  subject: Reuniao de alinhamento
                  status: sent
                  sentDate: '2024-01-15 10:30:00'
                  deliveryDate: '2024-01-15 10:30:05'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/delivery/details/download?dateFrom=2024-01-01&dateTo=2024-01-31&status=sent'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{clientId}/delivery/details/send:
    post:
      tags:
      - Envios SMTP
      summary: Enviar detalhes de entregas por e-mail
      description: Solicita o envio por e-mail dos detalhes de entregas SMTP, filtrados por domínio, caixa postal, destinatário, status e período.
      operationId: post_smtp_out_delivery_details_send
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  description: Domínio para filtro.
                mailbox:
                  type: string
                  description: Caixa postal para filtro.
                emailTo:
                  type: string
                  description: E-mail do destinatário para filtro.
                status:
                  type: string
                  enum:
                  - bounced
                  - sent
                  - deferred
                  - expired
                dateFrom:
                  type: string
                  format: date
                  description: Data de início.
                dateTo:
                  type: string
                  format: date
                  description: Data de fim.
      responses:
        '200':
          description: Solicitação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                message: Relatório solicitado com sucesso
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/1/delivery/details/send'' --data "dateFrom=2024-01-01&dateTo=2024-01-31&status=sent" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{domain}/spf:
    get:
      tags:
      - Envios SMTP
      summary: Validar SPF do domínio
      description: Valida a configuração de SPF do domínio informado para envio SMTP.
      operationId: get_smtp_out_dns_validate_spf
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para validação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                valid: true
                record: 'v=spf1 include:spf.skymail.net.br ~all'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/meudominio.com.br/spf'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{domain}/dkim:
    get:
      tags:
      - Envios SMTP
      summary: Validar DKIM do domínio
      description: Valida a configuração de DKIM do domínio informado para envio SMTP.
      operationId: get_smtp_out_dns_validate_dkim
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para validação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                valid: true
                selector: skymail
                record: 'v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/meudominio.com.br/dkim'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/smtp-active:
    get:
      tags:
      - Envios SMTP
      summary: Listar remetentes SMTP ativos
      description: Retorna a lista de remetentes com envio SMTP ativo para o cliente informado.
      operationId: get_smtp_out_box_smtp_active
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: domain
        in: query
        required: false
        description: Domínio para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - mailbox: usuario@meudominio.com.br
                  domain: meudominio.com.br
                  limit: 500
                  sent: 120
                  skySender: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/box/1/smtp-active'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/smtp-sender:
    get:
      tags:
      - Envios SMTP
      summary: Listar remetentes SMTP autorizados
      description: Retorna a lista de remetentes SMTP autorizados para a caixa postal informada.
      operationId: get_smtp_out_box_smtp_sender
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: mailbox
        in: query
        required: false
        description: Caixa postal para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - usuario@meudominio.com.br
                - noreply@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/box/1/smtp-sender?mailbox=usuario@meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Envios SMTP
      summary: Adicionar remetente SMTP autorizado
      description: Adiciona um ou mais remetentes autorizados para envio SMTP de uma caixa postal.
      operationId: post_smtp_out_box_smtp_sender
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - sender
              properties:
                mailbox:
                  type: string
                  description: Caixa postal de origem.
                  example: usuario@meudominio.com.br
                sender:
                  type: string
                  description: E-mail do remetente autorizado.
                  example: noreply@meudominio.com.br
      responses:
        '200':
          description: Remetente adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/smtp-sender'' --data "mailbox=usuario@meudominio.com.br&sender=noreply@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Envios SMTP
      summary: Remover remetente SMTP autorizado
      description: Remove um remetente autorizado para envio SMTP de uma caixa postal.
      operationId: delete_smtp_out_box_smtp_sender
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - sender
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                sender:
                  type: string
                  description: E-mail do remetente a remover.
                  example: noreply@meudominio.com.br
      responses:
        '200':
          description: Remetente removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/smtp-out/box/1/smtp-sender'' --data "mailbox=usuario@meudominio.com.br&sender=noreply@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/smtp-ip:
    get:
      tags:
      - Envios SMTP
      summary: Listar IPs SMTP autorizados
      description: Retorna a lista de IPs autorizados para envio SMTP de uma caixa postal.
      operationId: get_smtp_out_box_smtp_ip
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: mailbox
        in: query
        required: false
        description: Caixa postal para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - 192.168.0.1
                - 10.0.0.0/24
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/box/1/smtp-ip?mailbox=usuario@meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Envios SMTP
      summary: Adicionar IP SMTP autorizado
      description: Adiciona IPs autorizados para envio SMTP de uma caixa postal. Aceita notação CIDR.
      operationId: post_smtp_out_box_smtp_ip
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - ip
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                ip:
                  type: array
                  items:
                    type: string
                  description: Lista de IPs a autorizar (enviar como ip[]).
      responses:
        '200':
          description: IPs adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/smtp-ip'' --data "mailbox=usuario@meudominio.com.br&ip[]=192.168.0.1&ip[]=10.0.0.0/24" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Envios SMTP
      summary: Remover IP SMTP autorizado
      description: Remove um IP autorizado para envio SMTP de uma caixa postal.
      operationId: delete_smtp_out_box_smtp_ip
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: mailbox
        in: query
        required: true
        description: Caixa postal.
        schema:
          type: string
      - name: ip
        in: query
        required: true
        description: IP a remover.
        schema:
          type: string
      responses:
        '200':
          description: IP removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/smtp-out/box/1/smtp-ip?mailbox=usuario@meudominio.com.br&ip=192.168.0.1'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/update-limit:
    post:
      tags:
      - Envios SMTP
      summary: Atualizar limite de envio SMTP
      description: Atualiza o limite de envio SMTP de uma caixa postal.
      operationId: post_smtp_out_box_update_limit
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                limit:
                  type: integer
                  description: Novo limite de envio. Se omitido ou zero, remove o limite personalizado.
                  example: 500
      responses:
        '200':
          description: Limite atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: []
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/update-limit'' --data "mailbox=usuario@meudominio.com.br&limit=500" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/sky-sender/update:
    post:
      tags:
      - Envios SMTP
      summary: Atualizar status do SkySender
      description: Ativa ou desativa o SkySender para uma caixa postal SMTP.
      operationId: post_smtp_out_box_sky_sender_update
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - skySender
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                skySender:
                  type: string
                  enum:
                  - 'true'
                  - 'false'
                  description: Status do SkySender (true para ativar, false para desativar).
                  example: 'true'
      responses:
        '200':
          description: Status atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/sky-sender/update'' --data "mailbox=usuario@meudominio.com.br&skySender=true" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/dkim/{domain}/{selector}:
    get:
      tags:
      - Envios SMTP
      summary: Consultar registro DKIM
      description: Verifica o registro DKIM para o domínio e seletor informados.
      operationId: get_smtp_out_dkim_check
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio.
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        description: Seletor DKIM.
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: Registro encontrado.
          content:
            application/json:
              example:
                success: true
                data:
                  domain: meudominio.com.br
                  selector: skymail
                  publicKey: 'v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...'
        '404':
          description: Registro não encontrado.
          content:
            application/json:
              example:
                success: false
                message: Not found record on redis
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Envios SMTP
      summary: Registrar DKIM
      description: Registra a configuração DKIM para o domínio e seletor informados.
      operationId: post_smtp_out_dkim_register
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: DKIM registrado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  domain: meudominio.com.br
                  selector: skymail
                  publicKey: 'v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...'
        '404':
          description: Erro no registro.
          content:
            application/json:
              example:
                success: false
                data: []
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Envios SMTP
      summary: Remover DKIM
      description: Remove a configuração DKIM (LDAP e DNS) para o domínio e seletor informados.
      operationId: delete_smtp_out_dkim
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: DKIM removido com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/dkim/{domain}/{selector}/configuration:
    post:
      tags:
      - Envios SMTP
      summary: Configuração automática de DKIM
      description: Executa a configuração automática do DKIM para o domínio e seletor informados, incluindo geração de chaves e configuração DNS.
      operationId: post_smtp_out_dkim_auto_configuration
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: Configuração realizada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na configuração.
          content:
            application/json:
              example:
                success: false
                message: Configuration error
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail/configuration'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/dkim/{domain}/{selector}/ldap-validation:
    post:
      tags:
      - Envios SMTP
      summary: Validar DKIM no LDAP
      description: Valida e aplica a configuração DKIM no LDAP para o domínio e seletor informados.
      operationId: post_smtp_out_dkim_ldap_validation
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: Validação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                message: Configuration completed successfully.
        '404':
          description: Não foi possível realizar a configuração.
          content:
            application/json:
              example:
                success: false
                message: Unable to perform configuration.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail/ldap-validation'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/spf/{domain}/is-skymail:
    get:
      tags:
      - Envios SMTP
      summary: Verificar SPF aponta para Skymail
      description: Verifica se a configuração de SPF do domínio aponta para os servidores Skymail.
      operationId: get_smtp_out_spf_is_skymail
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para verificação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Verificação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                isSkymail: true
        '400':
          description: SPF não aponta para Skymail.
          content:
            application/json:
              example:
                success: false
                message: SPF does not point to Skymail
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/spf/meudominio.com.br/is-skymail'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/spf/{domain}:
    post:
      tags:
      - Envios SMTP
      summary: Registrar SPF
      description: Registra a configuração de SPF para o domínio informado.
      operationId: post_smtp_out_spf_register
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para configuração.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: SPF registrado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro no registro.
          content:
            application/json:
              example:
                success: false
                message: Registration error
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/spf/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''

  /hosting/php-version:
    get:
      tags:
      - Hospedagem
      summary: Listar versões de PHP disponíveis
      description: Retorna a lista de versões de PHP disponíveis globalmente para configuração de hospedagem.
      operationId: get_hosting_php_version_all
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - "7.4"
                - "8.0"
                - "8.1"
                - "8.2"
                - "8.3"
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/php-version'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/preview:
    get:
      tags:
      - Hospedagem
      summary: Obter URL de pré-visualização
      description: Retorna a URL de pré-visualização do site de hospedagem.
      operationId: get_hosting_preview
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio da hospedagem.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  preview: "https://preview.meudominio.com.br"
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/preview'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/subdomain:
    get:
      tags:
      - Hospedagem
      summary: Listar subdomínios
      description: Retorna a lista paginada de subdomínios da hospedagem.
      operationId: get_hosting_subdomain_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: name
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: ASC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: blog.meudominio.com.br
                  documentRoot: /var/www/blog
                - name: loja.meudominio.com.br
                  documentRoot: /var/www/loja
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Criar subdomínio
      description: Cria um novo subdomínio para a hospedagem informada.
      operationId: post_hosting_subdomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do subdomínio.
                  example: blog
      responses:
        '201':
          description: Subdomínio criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: blog.meudominio.com.br
                  documentRoot: /var/www/blog
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain'' --data "name=blog" -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/subdomain/{subDomainName}:
    get:
      tags:
      - Hospedagem
      summary: Consultar subdomínio
      description: Retorna as informações de um subdomínio específico.
      operationId: get_hosting_subdomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: subDomainName
        in: path
        required: true
        description: Nome do subdomínio.
        schema:
          type: string
          example: blog
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: blog.meudominio.com.br
                  documentRoot: /var/www/blog
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain/blog'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Hospedagem
      summary: Excluir subdomínio
      description: Exclui um subdomínio da hospedagem.
      operationId: delete_hosting_subdomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: subDomainName
        in: path
        required: true
        schema:
          type: string
          example: blog
      responses:
        '200':
          description: Subdomínio excluído com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain/blog'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/certificate:
    get:
      tags:
      - Hospedagem
      summary: Listar certificados SSL
      description: Retorna a lista de certificados SSL instalados na hospedagem.
      operationId: get_hosting_certificate_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: meudominio.com.br
                  validFrom: '2025-01-01T00:00:00Z'
                  validTo: '2025-12-31T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/certificate/lets-encrypt:
    get:
      tags:
      - Hospedagem
      summary: Consultar certificado Let's Encrypt
      description: Retorna as informações do certificado Let's Encrypt da hospedagem.
      operationId: get_hosting_certificate_lets_encrypt
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  validFrom: '2025-01-01T00:00:00Z'
                  validTo: '2025-12-31T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/lets-encrypt'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Instalar certificado Let's Encrypt
      description: Solicita a instalação de um certificado Let's Encrypt para a hospedagem.
      operationId: post_hosting_certificate_lets_encrypt
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Certificado instalado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  validFrom: '2025-06-25T00:00:00Z'
                  validTo: '2025-09-23T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/lets-encrypt'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Hospedagem
      summary: Excluir certificado Let's Encrypt
      description: Remove o certificado Let's Encrypt da hospedagem.
      operationId: delete_hosting_certificate_lets_encrypt
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                force:
                  type: string
                  enum: ['true', 'false']
                  default: 'false'
                  description: Se true, força a remoção.
      responses:
        '200':
          description: Certificado removido com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/lets-encrypt'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/certificate/{certName}:
    get:
      tags:
      - Hospedagem
      summary: Consultar certificado SSL
      description: Retorna as informações de um certificado SSL específico.
      operationId: get_hosting_certificate
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: certName
        in: path
        required: true
        description: Nome do certificado.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  validFrom: '2025-01-01T00:00:00Z'
                  validTo: '2025-12-31T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Hospedagem
      summary: Excluir certificado SSL
      description: Remove um certificado SSL da hospedagem.
      operationId: delete_hosting_certificate
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: certName
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                force:
                  type: string
                  enum: ['true', 'false']
                  default: 'false'
                  description: Se true, força a remoção.
      responses:
        '200':
          description: Certificado removido com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup:
    get:
      tags:
      - Hospedagem
      summary: Listar backups do site
      description: Retorna a lista paginada de backups do site de hospedagem.
      operationId: get_hosting_backup_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_backup
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 135152
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 524288000
                  status: completed
                - id: 135100
                  date_backup: '2025-06-13T03:00:00Z'
                  size: 512000000
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de backup do site
      description: Retorna a lista paginada de restaurações de backup do site.
      operationId: get_hosting_backup_restore_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 54
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
                - id: 53
                  date_restore: '2025-06-14T09:15:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/restore?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/{name}:
    get:
      tags:
      - Hospedagem
      summary: Consultar backup do site
      description: Retorna as informações de um backup específico do site.
      operationId: get_hosting_backup
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: name
        in: path
        required: true
        description: Nome/ID do backup.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 135152
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 524288000
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/{id}/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de um backup do site
      description: Retorna a lista paginada de restaurações de um backup específico do site.
      operationId: get_hosting_backup_restore_by_id
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        description: ID do backup.
        schema:
          type: integer
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 54
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152/restore'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Restaurar backup do site
      description: Solicita a restauração de um backup específico do site de hospedagem.
      operationId: post_hosting_backup_restore
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        description: ID do backup a restaurar.
        schema:
          type: integer
      responses:
        '200':
          description: Restauração solicitada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 55
                  date_restore: '2025-06-25T14:00:00Z'
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152/restore'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/{id}/restore/{restoreId}:
    get:
      tags:
      - Hospedagem
      summary: Consultar restauração de backup do site
      description: Retorna as informações de uma restauração específica de um backup do site.
      operationId: get_hosting_backup_restore_detail
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: restoreId
        in: path
        required: true
        description: ID da restauração.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 54
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152/restore/54'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/backup:
    get:
      tags:
      - Hospedagem
      summary: Listar backups de todos os bancos de dados
      description: Retorna a lista paginada de backups de todos os bancos de dados da hospedagem.
      operationId: get_hosting_database_backup_all
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_backup
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 6
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 10485760
                  status: completed
                - id: 5
                  date_backup: '2025-06-13T03:00:00Z'
                  size: 10240000
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/backup?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/backup/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de todos os bancos de dados
      description: Retorna a lista paginada de restaurações de backup de todos os bancos de dados.
      operationId: get_hosting_database_backup_restore_all
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/backup/restore?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup:
    get:
      tags:
      - Hospedagem
      summary: Listar backups de um banco de dados
      description: Retorna a lista paginada de backups de um banco de dados específico.
      operationId: get_hosting_database_backup
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        description: Nome do banco de dados.
        schema:
          type: string
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_backup
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 6
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 10485760
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de backup de um banco
      description: Retorna a lista paginada de restaurações de backup de um banco de dados específico.
      operationId: get_hosting_database_backup_restore
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/restore'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/{backupId}:
    get:
      tags:
      - Hospedagem
      summary: Consultar backup de banco de dados
      description: Retorna as informações de um backup específico de um banco de dados.
      operationId: get_hosting_database_backup_detail
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        description: ID do backup.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 6
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 10485760
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/{backupId}/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de um backup de banco
      description: Retorna a lista paginada de restaurações de um backup específico de banco de dados.
      operationId: get_hosting_database_backup_restore_by_id
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: integer
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6/restore'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Restaurar backup de banco de dados
      description: Solicita a restauração de um backup específico de banco de dados.
      operationId: post_hosting_database_backup_restore
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Restauração solicitada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 8
                  date_restore: '2025-06-25T14:00:00Z'
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6/restore'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/{backupId}/restore/{restoreId}:
    get:
      tags:
      - Hospedagem
      summary: Consultar restauração de backup de banco
      description: Retorna as informações de uma restauração específica de um backup de banco de dados.
      operationId: get_hosting_database_backup_restore_detail
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: integer
      - name: restoreId
        in: path
        required: true
        description: ID da restauração.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6/restore/7'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/dns/check:
    get:
      tags:
      - Hospedagem
      summary: Verificar DNS da hospedagem
      description: Verifica o status de configuração DNS para o domínio de hospedagem.
      operationId: get_hosting_dns_check
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  configured: true
                  domain: meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/dns/check'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/dns/zone:
    post:
      tags:
      - Hospedagem
      summary: Criar zona DNS da hospedagem
      description: Cria uma zona de DNS para o domínio de hospedagem.
      operationId: post_hosting_dns_zone
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Zona DNS criada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  zone: meudominio.com.br
                  created: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/dns/zone'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/dns/entries:
    post:
      tags:
      - Hospedagem
      summary: Criar entradas DNS da hospedagem
      description: Cria as entradas de DNS necessárias para o domínio de hospedagem.
      operationId: post_hosting_dns_entries
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do domínio para as entradas DNS.
                  example: meudominio.com.br
      responses:
        '200':
          description: Entradas DNS criadas com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  domain: meudominio.com.br
                  entries_created: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/dns/entries'' --data "name=meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''

  /domain-register/{provider}/domain/{name}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar domínio registrado
      description: Retorna as informações de um domínio registrado no provedor informado.
      operationId: get_domain_register_provider_domain
      parameters:
      - name: provider
        in: path
        required: true
        description: ID do provedor de registro.
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome do domínio.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: active
                  expirationDate: '2026-06-25'
                  autorenew: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Registro de Domínio
      summary: Remover domínio registrado
      description: Remove um domínio do registro no provedor informado.
      operationId: delete_domain_register_domain
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Domínio removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: removed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/detail:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar detalhes de domínio registrado
      description: Retorna os detalhes de um domínio registrado, incluindo informações de organização e status.
      operationId: get_domain_register_domain_detail
      parameters:
      - name: domain
        in: query
        required: true
        description: Nome do domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: active
                  expirationDate: '2026-06-25'
                  autorenew: true
                  organization: Empresa Exemplo Ltda
                  document: '00.000.000/0001-00'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/domain/detail?domain=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/cost/{clientId}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar custo de registro por cliente
      description: Retorna o custo de registro de domínio para o cliente informado.
      operationId: get_domain_register_cost
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  cost: 40.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/cost/1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/domain/{name}/renew:
    post:
      tags:
      - Registro de Domínio
      summary: Renovar domínio
      description: Solicita a renovação de um domínio registrado. O tempo de renovação pode ser de 1 a 10 anos.
      operationId: post_domain_register_domain_renew
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - document
              properties:
                client_id:
                  type: integer
                  description: ID do cliente.
                  example: 1
                document:
                  type: string
                  description: CPF ou CNPJ do titular.
                  example: '00.000.000/0001-00'
                renew_time:
                  type: integer
                  description: Tempo de renovação em anos (1–10, padrão 1).
                  default: 1
                  example: 1
      responses:
        '200':
          description: Domínio renovado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: active
                  expirationDate: '2027-06-25'
                  autorenew: true
        '400':
          description: Parâmetro inválido.
          content:
            application/json:
              example:
                success: false
                message: The parameter client_id was not sent.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br/renew'' --data "client_id=1&document=00.000.000/0001-00&renew_time=1" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/domain/{name}/ticket/{ticket}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar ticket de domínio
      description: Retorna as informações de um ticket associado a um domínio registrado.
      operationId: get_domain_register_domain_ticket
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: ticket
        in: path
        required: true
        description: Identificador do ticket.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: '12345'
                  domain: meudominio.com.br
                  status: pending
                  date: '2025-06-20T10:00:00Z'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br/ticket/12345'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/transfer/check:
    post:
      tags:
      - Registro de Domínio
      summary: Verificar transferência de domínio
      description: Verifica o status de transferência para os domínios informados.
      operationId: post_domain_register_transfer_check
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - domains
              properties:
                domains:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a verificar (enviar como domains[]).
      responses:
        '200':
          description: Verificação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - domain: meudominio.com.br
                  transferable: true
                  status: available
                - domain: outrodominio.com.br
                  transferable: false
                  status: locked
        '400':
          description: Parâmetro inválido.
          content:
            application/json:
              example:
                success: false
                message: The parameter domains must be an array.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/domain/transfer/check'' --data "domains[]=meudominio.com.br&domains[]=outrodominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/transfer/document/check:
    post:
      tags:
      - Registro de Domínio
      summary: Verificar transferência por documento
      description: Verifica o status de transferência de domínios associados ao documento (CPF/CNPJ) informado.
      operationId: post_domain_register_transfer_document_check
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - document
              properties:
                document:
                  type: string
                  description: CPF ou CNPJ para verificação.
                  example: '00.000.000/0001-00'
      responses:
        '200':
          description: Verificação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - domain: meudominio.com.br
                  transferable: true
                  status: available
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/domain/transfer/document/check'' --data "document=00.000.000/0001-00" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/transfer/start:
    post:
      tags:
      - Registro de Domínio
      summary: Iniciar transferência de domínio
      description: Inicia o processo de transferência de domínios para o cliente informado.
      operationId: post_domain_register_transfer_start
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - document
              - domains
              properties:
                client_id:
                  type: integer
                  description: ID do cliente.
                  example: 1
                document:
                  type: string
                  description: CPF ou CNPJ do titular.
                  example: '00.000.000/0001-00'
                domains:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a transferir (enviar como domains[]).
      responses:
        '200':
          description: Transferência iniciada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  client_id: 1
                  document: '00.000.000/0001-00'
                  domains:
                  - meudominio.com.br
        '400':
          description: Parâmetro inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid payload.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/domain/transfer/start'' --data "client_id=1&document=00.000.000/0001-00&domains[]=meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/organization:
    get:
      tags:
      - Registro de Domínio
      summary: Listar organizações
      description: Retorna a lista de organizações cadastradas para o provedor informado, com filtros opcionais por texto, cliente e status.
      operationId: get_domain_register_organization_list
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: query
        in: query
        required: false
        description: Texto para busca.
        schema:
          type: string
      - name: client_id
        in: query
        required: false
        description: ID do cliente para filtro.
        schema:
          type: integer
      - name: status
        in: query
        required: false
        description: Filtro por status (0 = inativo, 1 = ativo).
        schema:
          type: integer
          enum: [0, 1]
      - name: page
        in: query
        required: false
        schema:
          type: integer
      - name: pagesize
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/organization?client_id=1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/organization/{name}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar organização
      description: Retorna as informações de uma organização específica no provedor informado.
      operationId: get_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome/documento da organização.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Registro de Domínio
      summary: Criar organização
      description: Cadastra uma nova organização no provedor de registro de domínio.
      operationId: post_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Documento da organização (CPF ou CNPJ).
        schema:
          type: string
      responses:
        '200':
          description: Organização criada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
    patch:
      tags:
      - Registro de Domínio
      summary: Atualizar organização
      description: Atualiza os dados de uma organização no provedor de registro.
      operationId: patch_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Organização atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PATCH ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Registro de Domínio
      summary: Remover organização
      description: Remove uma organização do provedor de registro.
      operationId: delete_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Organização removida com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 0
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/organization/{domain}/brorg:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar organização BR de um domínio
      description: Retorna o documento e nome da organização associada ao domínio no provedor informado.
      operationId: get_domain_register_organization_brorg
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
        '404':
          description: Domínio não encontrado ou expirado.
          content:
            application/json:
              example:
                success: false
                message: Domain not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/organization/meudominio.com.br/brorg'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact:
    post:
      tags:
      - Registro de Domínio
      summary: Criar contato
      description: Cadastra um novo contato para registro de domínio no provedor informado.
      operationId: post_domain_register_contact
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do contato.
                email:
                  type: string
                  description: E-mail do contato.
                phone:
                  type: string
                  description: Telefone do contato.
      responses:
        '200':
          description: Contato criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: Contato Exemplo
                  email: contato@meudominio.com.br
                  phone: '+5511999990000'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/contact'' --data "name=Contato+Exemplo&email=contato@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact/{name}:
    get:
      tags:
      - Registro de Domínio
      summary: Listar contatos por nome/documento
      description: Retorna a lista de contatos associados ao nome ou documento informado.
      operationId: get_domain_register_contact_list
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome ou documento para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: Contato Exemplo
                  email: contato@meudominio.com.br
                  phone: '+5511999990000'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/contact/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact/{name}/type/{type}/contactName/{contactName}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar contato por tipo
      description: Retorna as informações de um contato específico por tipo e nome.
      operationId: get_domain_register_contact
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome/documento da organização.
        schema:
          type: string
      - name: type
        in: path
        required: true
        description: Tipo do contato.
        schema:
          type: string
      - name: contactName
        in: path
        required: true
        description: Nome do contato.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: Contato Exemplo
                  email: contato@meudominio.com.br
                  phone: '+5511999990000'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/contact/orgname/type/admin/contactName/contato1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact/{name}/contactname/{contactName}:
    delete:
      tags:
      - Registro de Domínio
      summary: Remover contato
      description: Remove um contato de registro de domínio.
      operationId: delete_domain_register_contact
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome/documento da organização.
        schema:
          type: string
      - name: contactName
        in: path
        required: true
        description: Nome do contato a remover.
        schema:
          type: string
      responses:
        '200':
          description: Contato removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: Contato Exemplo
                  removed: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/contact/orgname/contactname/contato1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/nameserver/{name}:
    post:
      tags:
      - Registro de Domínio
      summary: Criar nameserver
      description: Cadastra um novo nameserver para o domínio no provedor informado.
      operationId: post_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome do domínio.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Nameserver criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    patch:
      tags:
      - Registro de Domínio
      summary: Atualizar nameservers
      description: Atualiza os nameservers configurados para o domínio no provedor informado.
      operationId: patch_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome do domínio.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Nameservers atualizados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PATCH ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/nameserver/{name}/hostname/{hostname}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar nameserver
      description: Retorna as informações de um nameserver específico.
      operationId: get_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: hostname
        in: path
        required: true
        description: Hostname do nameserver.
        schema:
          type: string
          example: ns1.meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br/hostname/ns1.meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Registro de Domínio
      summary: Remover nameserver
      description: Remove um nameserver do domínio.
      operationId: delete_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: hostname
        in: path
        required: true
        schema:
          type: string
          example: ns1.meudominio.com.br
      responses:
        '200':
          description: Nameserver removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
                  removed: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br/hostname/ns1.meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/ticket/pending/{clientId}/{document}:
    get:
      tags:
      - Registro de Domínio
      summary: Listar tickets pendentes
      description: Retorna a lista de tickets pendentes de registro de domínio para o cliente e documento informados.
      operationId: get_domain_register_ticket_pending
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: document
        in: path
        required: true
        description: CPF ou CNPJ do titular.
        schema:
          type: string
          example: '00.000.000/0001-00'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: '67890'
                  status: pending
                  date: '2025-06-20T10:00:00Z'
                - id: '67891'
                  status: pending
                  date: '2025-06-22T14:30:00Z'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/ticket/pending/1/00.000.000%2F0001-00'' -H ''Authorization: bearer jwt.token.generated'''

  /cloud/billing:
    get:
      tags:
      - Cloud
      summary: Listar cobranças de Cloud
      description: Retorna as cobranças de Cloud por cliente e contrato, com filtro por competência.
      operationId: get_cloud_billing
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      - name: contract
        in: query
        required: true
        schema:
          type: integer
      - name: reference[]
        in: query
        required: false
        description: Competências para filtro (formato YYYYMM).
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total: 1250.75
                data:
                - competence: '202506'
                  value: 1250.75
                  status: open
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/billing?client=1&contract=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/billing/competences:
    get:
      tags:
      - Cloud
      summary: Listar competências de cobrança
      description: Retorna os períodos de competência de cobrança de Cloud por cliente e contrato.
      operationId: get_cloud_billing_competences
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      - name: contract
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 3
                data:
                - '202504'
                - '202505'
                - '202506'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/billing/competences?client=1&contract=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/billing/summary:
    get:
      tags:
      - Cloud
      summary: Resumo de cobranças de Cloud
      description: Retorna o resumo das últimas cobranças de Cloud por cliente e contrato.
      operationId: get_cloud_billing_summary
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      - name: contract
        in: query
        required: true
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Quantidade de períodos a retornar (padrão 6).
        schema:
          type: integer
          default: 6
      - name: children
        in: query
        required: false
        description: Incluir clientes filhos.
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                data:
                - competence: '202505'
                  value: 1180.00
                  status: closed
                - competence: '202506'
                  value: 1250.75
                  status: open
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/billing/summary?client=1&contract=1&limit=6'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/contract:
    get:
      tags:
      - Cloud
      summary: Listar contratos de Cloud
      description: Retorna os contratos de Cloud (reservado/on-demand/dedutível) para o cliente informado.
      operationId: get_cloud_contract
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - id: 101
                  type: on-demand
                  client: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/contract?client=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/tag/reserved:
    get:
      tags:
      - Cloud
      summary: Listar tags reservadas
      description: Retorna a lista de chaves de tags reservadas do sistema Cloud.
      operationId: get_cloud_tag_reserved
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - billing-group
                - billing-item
                - service-offering
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/tag/reserved'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/{id}:
    put:
      tags:
      - Cloud
      summary: Atualizar projeto
      description: Atualiza a descrição de um projeto CloudStack.
      operationId: put_cloud_zone_project
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: id
        in: path
        required: true
        description: ID do projeto (UUID).
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - displaytext
              - account
              properties:
                displaytext:
                  type: string
                  description: Nova descrição do projeto.
                account:
                  type: integer
                  description: ID da conta CloudStack.
      responses:
        '200':
          description: Projeto atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  displaytext: Projeto Atualizado
                  state: Active
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/1/project/uuid-here'' --data "displaytext=Novo+Nome&account=8" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Excluir projeto
      description: Exclui um projeto CloudStack.
      operationId: delete_cloud_zone_project
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - confirm
              properties:
                confirm:
                  type: string
                  enum: ['true']
                  description: Confirmação de exclusão (deve ser true).
      responses:
        '200':
          description: Projeto excluído com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  state: Disabled
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/1/project/uuid-here'' --data "confirm=true" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/{id}/suspend:
    put:
      tags:
      - Cloud
      summary: Suspender projeto
      description: Suspende um projeto CloudStack ativo.
      operationId: put_cloud_zone_project_suspend
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - confirm
              properties:
                confirm:
                  type: string
                  enum: ['true']
      responses:
        '200':
          description: Projeto suspenso com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  state: Suspended
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/1/project/uuid-here/suspend'' --data "confirm=true" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/{id}/activate:
    put:
      tags:
      - Cloud
      summary: Ativar projeto
      description: Ativa um projeto CloudStack suspenso.
      operationId: put_cloud_zone_project_activate
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - confirm
              properties:
                confirm:
                  type: string
                  enum: ['true']
      responses:
        '200':
          description: Projeto ativado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  state: Active
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/1/project/uuid-here/activate'' --data "confirm=true" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/payment-info:
    post:
      tags:
      - Cloud
      summary: Vincular informação de pagamento ao projeto
      description: Vincula uma informação de pagamento a um projeto CloudStack.
      operationId: post_cloud_zone_project_payment_info
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - project_id
              - payment_info_id
              properties:
                client_id:
                  type: integer
                project_id:
                  type: string
                  format: uuid
                payment_info_id:
                  type: integer
                domainid:
                  type: string
                  format: uuid
      responses:
        '200':
          description: Vinculação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  client_id: 1
                  project_id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  payment_info_id: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/project/payment-info'' --data "client_id=1&project_id=uuid&payment_info_id=1" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Desvincular informação de pagamento do projeto
      description: Remove a vinculação de informação de pagamento de um projeto CloudStack.
      operationId: delete_cloud_zone_project_payment_info
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: client_id
        in: query
        required: true
        schema:
          type: integer
      - name: project_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
      - name: payment_info_id
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Desvinculação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/1/project/payment-info?client_id=1&project_id=uuid&payment_info_id=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/resource-detail:
    get:
      tags:
      - Cloud
      summary: Listar detalhes de recurso
      description: Retorna os detalhes (metadados/tags) de recursos CloudStack.
      operationId: get_cloud_zone_resource_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: resourcetype
        in: query
        required: true
        description: Tipo do recurso.
        schema:
          type: string
      - name: domainid
        in: query
        required: true
        schema:
          type: string
          format: uuid
      - name: account
        in: query
        required: false
        schema:
          type: integer
      - name: resourceid
        in: query
        required: false
        schema:
          type: string
      - name: key
        in: query
        required: false
        schema:
          type: string
      - name: projectid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - key: billing-group
                  value: producao
                  resourceid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/1/resource-detail?resourcetype=UserVm&domainid=uuid&account=8'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Cloud
      summary: Criar detalhe de recurso
      description: Adiciona um detalhe (metadado) a um recurso CloudStack.
      operationId: post_cloud_zone_resource_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - key
              - value
              - resourceid
              - resourcetype
              properties:
                key:
                  type: string
                value:
                  type: string
                resourceid:
                  type: string
                  format: uuid
                resourcetype:
                  type: string
      responses:
        '200':
          description: Detalhe criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  key: billing-group
                  value: producao
                  resourceid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/resource-detail'' --data "key=nome&value=valor&resourceid=uuid&resourcetype=UserVm" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Remover detalhe de recurso
      description: Remove um detalhe (metadado) de um recurso CloudStack.
      operationId: delete_cloud_zone_resource_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - resourceid
              - resourcetype
              properties:
                resourceid:
                  type: string
                  format: uuid
                resourcetype:
                  type: string
                key:
                  type: string
      responses:
        '200':
          description: Detalhe removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  resourceid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  removed: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/1/resource-detail'' --data "resourceid=uuid&resourcetype=UserVm" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/resource-detail/detailoptions:
    get:
      tags:
      - Cloud
      summary: Listar opções de detalhe de recurso
      description: Retorna as opções disponíveis de detalhe para um tipo de recurso.
      operationId: get_cloud_zone_resource_detail_options
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: resourcetype
        in: query
        required: true
        schema:
          type: string
      - name: resourceid
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                data:
                - billing-group
                - billing-item
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/1/resource-detail/detailoptions?resourcetype=UserVm'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/usage/client/{clientId}/contract/{contractId}:
    get:
      tags:
      - Cloud
      summary: Consultar uso de Cloud por contrato
      description: Retorna os dados de uso de Cloud por cliente e contrato no período informado.
      operationId: get_cloud_usage_client_contract
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
      - name: contractId
        in: path
        required: true
        schema:
          type: integer
      - name: datefrom
        in: query
        required: true
        description: Data de início (formato YYYY-MM-DD).
        schema:
          type: string
          format: date
      - name: dateto
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: type[]
        in: query
        required: false
        description: Tipos de uso para filtro.
        schema:
          type: array
          items:
            type: string
      - name: children
        in: query
        required: false
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '0'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - type: compute
                  description: Running VM
                  rawusage: 720.5
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/usage/client/1/contract/1?datefrom=2024-01-01'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/usage/client/{clientId}/contract/{contractId}/forecast:
    get:
      tags:
      - Cloud
      summary: Previsão de uso de Cloud
      description: Retorna a previsão de uso de Cloud para o contrato informado.
      operationId: get_cloud_usage_forecast
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
      - name: contractId
        in: path
        required: true
        schema:
          type: integer
      - name: children
        in: query
        required: false
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '0'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  forecast: 1350.00
                  period: '202506'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/usage/client/1/contract/1/forecast'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/usage/client/{clientId}/open-period-statement:
    get:
      tags:
      - Cloud
      summary: Extrato do período aberto de Cloud
      description: Retorna os dados de uso on-demand do período de cobrança aberto para o cliente informado.
      operationId: get_cloud_usage_open_period
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
      - name: contractId
        in: query
        required: false
        schema:
          type: integer
      - name: children
        in: query
        required: false
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  total: 980.50
                  period: '202506'
                  status: open
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/usage/client/1/open-period-statement'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/vpn-connection/{vpnConnectionId}:
    get:
      tags:
      - Cloud
      summary: Consultar conexão VPN
      description: Retorna as informações de uma conexão VPN específica.
      operationId: get_cloud_zone_vpn_connection_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: vpnConnectionId
        in: path
        required: true
        description: ID da conexão VPN (UUID).
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  state: Connected
                  gateway: 10.0.0.1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/1/vpn-connection/uuid-here'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/virtual-machine/batch:
    post:
      tags:
      - Cloud
      summary: Criar máquinas virtuais em lote
      description: Cria múltiplas máquinas virtuais via workflow assíncrono.
      operationId: post_cloud_zone_virtual_machine_batch
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Payload de criação em lote contendo account ou projectid, templateid, serviceofferingid, domainid e demais configurações das VMs.
      responses:
        '200':
          description: Workflow de criação em lote iniciado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: vm-batch-creation
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/virtual-machine/batch'' -H ''Content-Type: application/json'' -H ''Authorization: bearer jwt.token.generated'' -d ''{}'''
  /cloud/{zone}/virtual-machine/{id}/console:
    post:
      tags:
      - Cloud
      summary: Acessar console da máquina virtual
      description: Gera um endpoint de console (VNC/noVNC) para acesso à máquina virtual.
      operationId: post_cloud_zone_virtual_machine_console
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: id
        in: path
        required: true
        description: ID da máquina virtual (UUID).
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Console criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  url: 'https://console.cloud.meudominio.com.br/vnc?token=abc123'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/virtual-machine/uuid-here/console'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation:
    get:
      tags:
      - Cloud
      summary: Listar cotações de Cloud
      description: Retorna a lista paginada de cotações de recursos Cloud.
      operationId: get_cloud_quotation
      parameters:
      - name: client
        in: query
        required: false
        schema:
          type: integer
      - name: status
        in: query
        required: false
        schema:
          type: integer
      - name: name
        in: query
        required: false
        schema:
          type: string
      - name: id_or_name
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 10
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                limit: 10
                page: 1
                data:
                - id: 1
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation?client=1&limit=10&page=1'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Cloud
      summary: Criar cotação de Cloud
      description: Cria uma nova cotação de recursos Cloud.
      operationId: post_cloud_quotation
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - name
              - toolVersion
              - deductibleAmount
              - itemsAmount
              - status
              - content
              properties:
                name:
                  type: string
                toolVersion:
                  type: integer
                deductibleAmount:
                  type: number
                itemsAmount:
                  type: number
                status:
                  type: integer
                content:
                  type: string
                client:
                  type: integer
      responses:
        '200':
          description: Cotação criada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 2
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation'' --data "name=Cotacao&toolVersion=1&deductibleAmount=100&itemsAmount=200&status=1&content=json" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/status:
    get:
      tags:
      - Cloud
      summary: Listar status de cotação
      description: Retorna os status disponíveis para cotações de Cloud.
      operationId: get_cloud_quotation_status
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 3
                data:
                - id: 1
                  name: Rascunho
                - id: 2
                  name: Aprovado
                - id: 3
                  name: Cancelado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation/status'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}:
    get:
      tags:
      - Cloud
      summary: Consultar cotação
      description: Retorna os detalhes de uma cotação de Cloud específica.
      operationId: get_cloud_quotation_detail
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation/1'' -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Cloud
      summary: Atualizar cotação
      description: Atualiza os dados de uma cotação de Cloud.
      operationId: put_cloud_quotation
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - name
              - toolVersion
              - deductibleAmount
              - itemsAmount
              - status
              - content
              properties:
                name:
                  type: string
                toolVersion:
                  type: integer
                deductibleAmount:
                  type: number
                itemsAmount:
                  type: number
                status:
                  type: integer
                content:
                  type: string
                client:
                  type: integer
      responses:
        '200':
          description: Cotação atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/quotation/1'' --data "name=Cotacao&toolVersion=1&deductibleAmount=100&itemsAmount=200&status=1&content=json" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Excluir cotação
      description: Exclui uma cotação de Cloud.
      operationId: delete_cloud_quotation
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Cotação excluída com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/quotation/1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}/item:
    post:
      tags:
      - Cloud
      summary: Adicionar item à cotação
      description: Adiciona um novo item a uma cotação de Cloud.
      operationId: post_cloud_quotation_item
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - grouping
              - description
              - productId
              - quantity
              - amount
              - toolVersion
              - content
              properties:
                grouping:
                  type: string
                description:
                  type: string
                productId:
                  type: integer
                quantity:
                  type: integer
                amount:
                  type: number
                toolVersion:
                  type: integer
                content:
                  type: string
      responses:
        '200':
          description: Item adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 10
                  grouping: Compute
                  description: vCPU
                  quantity: 4
                  amount: 100.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation/1/item'' --data "grouping=Compute&description=vCPU&productId=1&quantity=4&amount=100&toolVersion=1&content=json" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}/item/{itemId}:
    put:
      tags:
      - Cloud
      summary: Atualizar item da cotação
      description: Atualiza um item existente de uma cotação de Cloud.
      operationId: put_cloud_quotation_item
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: itemId
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grouping:
                  type: string
                description:
                  type: string
                productId:
                  type: integer
                quantity:
                  type: integer
                amount:
                  type: number
                toolVersion:
                  type: integer
                content:
                  type: string
      responses:
        '200':
          description: Item atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 10
                  grouping: Compute
                  description: vCPU
                  quantity: 8
                  amount: 200.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/quotation/1/item/1'' --data "quantity=8&amount=200" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Excluir item da cotação
      description: Remove um item de uma cotação de Cloud.
      operationId: delete_cloud_quotation_item
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: itemId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Item excluído com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/quotation/1/item/1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}/status/{statusId}:
    put:
      tags:
      - Cloud
      summary: Alterar status da cotação
      description: Altera o status de uma cotação de Cloud.
      operationId: put_cloud_quotation_status
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: statusId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Status alterado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: Cotacao Cloud Producao
                  status: 2
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/quotation/1/status/2'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/import/cloudstack:
    post:
      tags:
      - Cloud
      summary: Importar cotação do CloudStack
      description: Cria uma cotação importando os recursos existentes de um projeto ou conta no CloudStack.
      operationId: post_cloud_quotation_import_cloudstack
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client
              - zone
              properties:
                client:
                  type: integer
                zone:
                  type: integer
                projectid:
                  type: string
                  format: uuid
                children:
                  type: string
                  description: IDs de clientes filhos separados por vírgula, ou * para todos.
      responses:
        '200':
          description: Importação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: import-cloudstack
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation/import/cloudstack'' --data "client=1&zone=1" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/import/file:
    get:
      tags:
      - Cloud
      summary: Baixar template de importação de cotação
      description: Retorna o arquivo XLSX modelo para importação de cotação.
      operationId: get_cloud_quotation_import_file_template
      responses:
        '200':
          description: Arquivo XLSX retornado com sucesso.
          content:
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: string
                format: binary
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation/import/file'' -H ''Authorization: bearer jwt.token.generated'' -o template.xlsx'
    post:
      tags:
      - Cloud
      summary: Importar cotação de arquivo
      description: Cria uma cotação importando dados de um arquivo XLSX/ODS.
      operationId: post_cloud_quotation_import_file
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - name
              - file
              properties:
                name:
                  type: string
                  description: Nome da cotação.
                client:
                  type: integer
                file:
                  type: string
                  format: binary
                  description: Arquivo XLSX ou ODS (máx. 50MB).
      responses:
        '200':
          description: Importação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 3
                  name: Cotacao Importada
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation/import/file'' -F "name=Cotacao" -F "file=@planilha.xlsx" -H ''Authorization: bearer jwt.token.generated'''

  /client/{clientId}/block/holiday:
    post:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Criar feriado(s) para bloqueio do cliente
      description: Cria um ou mais feriados agendados para bloqueio de e-mails em todas
        as caixas postais do cliente.
      operationId: post_client_block_holiday
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem criados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 25
                name: Natal
              - type: single
                year: 2025
                month: 1
                day: 1
                name: Ano Novo
      responses:
        '201':
          description: Feriados criados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  created: 2
                message: Feriados cadastrados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request POST \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=25&holidays[0][name]=Natal&holidays[1][type]=single&holidays[1][year]=2025&holidays[1][month]=1&holidays[1][day]=1&holidays[1][name]=Ano\
          \ Novo'"
    get:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Listar feriados de bloqueio do cliente
      description: Retorna a lista de feriados agendados para bloqueio de e-mails do
        cliente.
      operationId: get_client_block_holiday
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Lista de feriados
          content:
            application/json:
              example:
                success: true
                data:
                - type: fixed
                  month: 12
                  day: 25
                  name: Natal
                  startTime: null
                  endTime: null
                - type: single
                  year: 2025
                  month: 1
                  day: 1
                  name: Ano Novo
                  startTime: null
                  endTime: null
                total: 2
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request GET \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /client/{clientId}/block/holiday/{holidayKey}:
    put:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Atualizar feriado de bloqueio do cliente
      description: Atualiza um feriado agendado para bloqueio de e-mails do cliente.
      operationId: put_client_block_holiday_key
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockScheduledHoliday'
            example:
              type: fixed
              month: 12
              day: 25
              name: Natal atualizado
      responses:
        '200':
          description: Feriado atualizado com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado atualizado com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'type=fixed&month=12&day=25&name=Natal\
          \ atualizado'"
    delete:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Remover feriado de bloqueio do cliente
      description: Remove um feriado agendado para bloqueio de e-mails do cliente.
      operationId: delete_client_block_holiday_key
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Feriado removido com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado removido com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request DELETE \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /template/{templateId}/block/holiday:
    post:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Criar feriado(s) para bloqueio do template
      description: Cria um ou mais feriados agendados para bloqueio de e-mails em todas
        as caixas postais do template.
      operationId: post_template_block_holiday
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem criados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 25
                name: Natal
              - type: single
                year: 2025
                month: 1
                day: 1
                name: Ano Novo
      responses:
        '201':
          description: Feriados criados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  created: 2
                message: Feriados cadastrados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request POST \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=25&holidays[0][name]=Natal&holidays[1][type]=single&holidays[1][year]=2025&holidays[1][month]=1&holidays[1][day]=1&holidays[1][name]=Ano\
          \ Novo'"
    get:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Listar feriados de bloqueio do template
      description: Retorna a lista de feriados agendados para bloqueio de e-mails do
        template.
      operationId: get_template_block_holiday
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Lista de feriados
          content:
            application/json:
              example:
                success: true
                data:
                - type: fixed
                  month: 12
                  day: 25
                  name: Natal
                  startTime: null
                  endTime: null
                - type: single
                  year: 2025
                  month: 1
                  day: 1
                  name: Ano Novo
                  startTime: null
                  endTime: null
                total: 2
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request GET \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /template/{templateId}/block/holiday/{holidayKey}:
    put:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Atualizar feriado de bloqueio do template
      description: Atualiza um feriado agendado para bloqueio de e-mails do template.
      operationId: put_template_block_holiday_key
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockScheduledHoliday'
            example:
              type: fixed
              month: 12
              day: 25
              name: Natal atualizado
      responses:
        '200':
          description: Feriado atualizado com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado atualizado com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'type=fixed&month=12&day=25&name=Natal\
          \ atualizado'"
    delete:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Remover feriado de bloqueio do template
      description: Remove um feriado agendado para bloqueio de e-mails do template.
      operationId: delete_template_block_holiday_key
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Feriado removido com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado removido com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request DELETE \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /template/{templateId}/block/holiday/batch:
    put:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Atualizar feriados em lote para bloqueio do template
      description: Atualiza múltiplos feriados agendados para bloqueio de e-mails do
        template em uma única chamada.
      operationId: put_template_block_holiday_batch
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem atualizados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 24
                name: Véspera de Natal
              - type: fixed
                month: 12
                day: 31
                name: Véspera de Ano Novo
      responses:
        '200':
          description: Feriados atualizados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  updated: 2
                message: Feriados atualizados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday/batch\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=24&holidays[0][name]=Véspera\
          \ de Natal&holidays[1][type]=fixed&holidays[1][month]=12&holidays[1][day]=31&holidays[1][name]=Véspera\
          \ de Ano Novo'"
  /mailbox/{mailbox}/block/holiday:
    post:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Criar feriado(s) para bloqueio do mailbox
      description: Cria um ou mais feriados agendados para bloqueio de e-mails em todas
        as caixas postais do mailbox.
      operationId: post_mailbox_block_holiday
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem criados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 25
                name: Natal
              - type: single
                year: 2025
                month: 1
                day: 1
                name: Ano Novo
      responses:
        '201':
          description: Feriados criados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  created: 2
                message: Feriados cadastrados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request POST \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=25&holidays[0][name]=Natal&holidays[1][type]=single&holidays[1][year]=2025&holidays[1][month]=1&holidays[1][day]=1&holidays[1][name]=Ano\
          \ Novo'"
    get:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Listar feriados de bloqueio do mailbox
      description: Retorna a lista de feriados agendados para bloqueio de e-mails do
        mailbox.
      operationId: get_mailbox_block_holiday
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Lista de feriados
          content:
            application/json:
              example:
                success: true
                data:
                - type: fixed
                  month: 12
                  day: 25
                  name: Natal
                  startTime: null
                  endTime: null
                - type: single
                  year: 2025
                  month: 1
                  day: 1
                  name: Ano Novo
                  startTime: null
                  endTime: null
                total: 2
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request GET \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /mailbox/{mailbox}/block/holiday/{holidayKey}:
    put:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Atualizar feriado de bloqueio do mailbox
      description: Atualiza um feriado agendado para bloqueio de e-mails do mailbox.
      operationId: put_mailbox_block_holiday_key
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockScheduledHoliday'
            example:
              type: fixed
              month: 12
              day: 25
              name: Natal atualizado
      responses:
        '200':
          description: Feriado atualizado com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado atualizado com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'type=fixed&month=12&day=25&name=Natal\
          \ atualizado'"
    delete:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Remover feriado de bloqueio do mailbox
      description: Remove um feriado agendado para bloqueio de e-mails do mailbox.
      operationId: delete_mailbox_block_holiday_key
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Feriado removido com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado removido com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request DELETE \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /mailbox/{mailbox}/block/holiday/batch:
    put:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Atualizar feriados em lote para bloqueio do mailbox
      description: Atualiza múltiplos feriados agendados para bloqueio de e-mails do
        mailbox em uma única chamada.
      operationId: put_mailbox_block_holiday_batch
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem atualizados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 24
                name: Véspera de Natal
              - type: fixed
                month: 12
                day: 31
                name: Véspera de Ano Novo
      responses:
        '200':
          description: Feriados atualizados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  updated: 2
                message: Feriados atualizados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday/batch\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=24&holidays[0][name]=Véspera\
          \ de Natal&holidays[1][type]=fixed&holidays[1][month]=12&holidays[1][day]=31&holidays[1][name]=Véspera\
          \ de Ano Novo'"
components:
  schemas:
    BlockScheduledHoliday:
      type: object
      required:
      - type
      - month
      - day
      - name
      properties:
        type:
          type: string
          enum:
          - fixed
          - single
          description: 'Tipo do feriado: ''fixed'' (ocorre todo ano no mesmo dia/mês)
            ou ''single'' (ocorre em uma data específica com ano)'
        year:
          type: integer
          description: Ano do feriado (obrigatório para type=single, opcional para type=fixed)
          minimum: 1900
          maximum: 2200
        month:
          type: integer
          description: Mês do feriado (1-12)
          minimum: 1
          maximum: 12
        day:
          type: integer
          description: Dia do feriado (1-31)
          minimum: 1
          maximum: 31
        name:
          type: string
          description: Nome do feriado
        startTime:
          type: string
          description: Horário de início no formato HH:MM (opcional)
        endTime:
          type: string
          description: Horário de fim no formato HH:MM (opcional)
  /antispam/score:
    get:
      tags:
      - Antispam
      summary: Consultar configuração de pontuação
      description: Retorna as configurações de pontuação do antispam para o domínio ou e-mail informado.
      operationId: get_antispam_score
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta (ex. meudominio.com.br ou usuario@meudominio.com.br).
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  addHeader: 99
                  quarantine: null
                  rewriteSubject: 1
                  reject: 25
        '400':
          description: Parâmetro filter em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Parameter filter is not valid
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/score?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Salvar configuração de pontuação
      description: Salva as configurações de pontuação do antispam para o domínio ou e-mail informado. Os campos não enviados permanecem inalterados.
      operationId: post_antispam_score
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo da configuração.
                  example: meudominio.com.br
                addHeader:
                  type: number
                  description: Pontuação para adicionar cabeçalho (0–100). Envie null para remover.
                  example: 99
                quarantine:
                  type: number
                  description: Pontuação para quarentena (0–100). Envie null para remover.
                  example: null
                rewriteSubject:
                  type: number
                  description: Pontuação para reescrever assunto (0–100). Envie null para remover.
                  example: 1
                reject:
                  type: number
                  description: Pontuação para rejeitar mensagem (0–100). Envie null para remover.
                  example: 25
      responses:
        '200':
          description: Configuração salva com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  addHeader: 99
                  quarantine: null
                  rewriteSubject: 1
                  reject: 25
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Parameter filter is not valid
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/score'' --data "filter=meudominio.com.br&addHeader=99&rewriteSubject=1&reject=25" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/score/details:
    get:
      tags:
      - Antispam
      summary: Consultar detalhes da pontuação de mensagem
      description: Retorna os detalhes da pontuação de antispam de uma mensagem específica.
      operationId: get_antispam_score_details
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio ou e-mail para contexto da consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: messageId
        in: query
        required: true
        description: Identificador da mensagem para consulta de detalhes.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  Symbols.Names:
                  - BAYES_SPAM
                  - DKIM_SIGNED
                  - SPF_FAIL
                  Symbols.Scores:
                  - 5.2
                  - -0.1
                  - 3.5
                  Symbols.Options:
                  - []
                  - - skymail.net.br
                  - - mx.skymail.net.br
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Parameter domain is not valid
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/score/details?domain=meudominio.com.br&messageId=abc123'' -H ''Authorization: bearer jwt.token.generated'''
  /antispam/blocked-sender:
    get:
      tags:
      - Antispam
      summary: Listar remetentes bloqueados
      description: Retorna a lista de remetentes bloqueados para o domínio ou e-mail informado.
      operationId: get_antispam_blocked_sender
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: spam@dominio-externo.com
                  original: spam@dominio-externo.com
                - normalized: phishing@malware.net
                  original: phishing@malware.net
                - normalized: noreply@suspicious.xyz
                  original: noreply@suspicious.xyz
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/blocked-sender?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar remetentes bloqueados
      description: Adiciona múltiplos remetentes à lista de bloqueio do domínio ou e-mail informado.
      operationId: post_antispam_blocked_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedSender:
                  type: array
                  items:
                    type: string
                  description: Lista de remetentes a bloquear (enviar como blockedSender[]).
            example:
              filter: meudominio.com.br
              blockedSender:
              - spam@dominio-externo.com
              - phishing@malware.net
      responses:
        '200':
          description: Remetentes adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: spam@dominio-externo.com
                  original: spam@dominio-externo.com
                - normalized: phishing@malware.net
                  original: phishing@malware.net
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/blocked-sender'' --data "filter=meudominio.com.br&blockedSender[]=spam@exemplo.com&blockedSender[]=phishing@exemplo.com" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar remetente bloqueado individual
      description: Adiciona um único remetente à lista de bloqueio do domínio ou e-mail informado.
      operationId: put_antispam_blocked_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedSender:
                  type: string
                  description: Endereço do remetente a bloquear.
                  example: spam@exemplo.com
      responses:
        '200':
          description: Remetente adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/blocked-sender'' --data "filter=meudominio.com.br&blockedSender=spam@exemplo.com" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover remetente bloqueado
      description: Remove um remetente da lista de bloqueio do domínio ou e-mail informado.
      operationId: delete_antispam_blocked_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedSender:
                  type: string
                  description: Endereço do remetente a remover.
                  example: spam@exemplo.com
      responses:
        '200':
          description: Remetente removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/blocked-sender'' --data "filter=meudominio.com.br&blockedSender=spam@exemplo.com" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/allowed-sender:
    get:
      tags:
      - Antispam
      summary: Listar remetentes permitidos
      description: Retorna a lista de remetentes permitidos para o domínio ou e-mail informado.
      operationId: get_antispam_allowed_sender
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: parceiro@skymail.net.br
                  original: parceiro@skymail.net.br
                - normalized: newsletter@servico.com
                  original: newsletter@servico.com
                - normalized: financeiro@fornecedor.com.br
                  original: financeiro@fornecedor.com.br
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/allowed-sender?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar remetentes permitidos
      description: Adiciona múltiplos remetentes à lista de permissão do domínio ou e-mail informado.
      operationId: post_antispam_allowed_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedSender:
                  type: array
                  items:
                    type: string
                  description: Lista de remetentes a permitir (enviar como allowedSender[]).
            example:
              filter: meudominio.com.br
              allowedSender:
              - parceiro@skymail.net.br
              - newsletter@servico.com
      responses:
        '200':
          description: Remetentes adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - normalized: parceiro@skymail.net.br
                  original: parceiro@skymail.net.br
                - normalized: newsletter@servico.com
                  original: newsletter@servico.com
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/allowed-sender'' --data "filter=meudominio.com.br&allowedSender[]=parceiro@empresa.com&allowedSender[]=newsletter@servico.com" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar remetente permitido individual
      description: Adiciona um único remetente à lista de permissão do domínio ou e-mail informado.
      operationId: put_antispam_allowed_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedSender:
                  type: string
                  description: Endereço do remetente a permitir.
                  example: parceiro@empresa.com
      responses:
        '200':
          description: Remetente adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/allowed-sender'' --data "filter=meudominio.com.br&allowedSender=parceiro@empresa.com" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover remetente permitido
      description: Remove um remetente da lista de permissão do domínio ou e-mail informado.
      operationId: delete_antispam_allowed_sender
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedSender
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedSender:
                  type: string
                  description: Endereço do remetente a remover.
                  example: parceiro@empresa.com
      responses:
        '200':
          description: Remetente removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedSender cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/allowed-sender'' --data "filter=meudominio.com.br&allowedSender=parceiro@empresa.com" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/blocked-domain:
    get:
      tags:
      - Antispam
      summary: Listar domínios bloqueados
      description: Retorna a lista de domínios bloqueados para o domínio ou e-mail informado.
      operationId: get_antispam_blocked_domain
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - spamdominio.com
                - malware.net
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/blocked-domain?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar domínios bloqueados
      description: Adiciona múltiplos domínios à lista de bloqueio.
      operationId: post_antispam_blocked_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedDomain:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a bloquear (enviar como blockedDomain[]).
      responses:
        '200':
          description: Domínios adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - spamdominio.com
                - malware.net
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/blocked-domain'' --data "filter=meudominio.com.br&blockedDomain[]=spamdominio.com&blockedDomain[]=malware.net" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar domínio bloqueado individual
      description: Adiciona um único domínio à lista de bloqueio.
      operationId: put_antispam_blocked_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedDomain:
                  type: string
                  description: Domínio a bloquear.
                  example: spamdominio.com
      responses:
        '200':
          description: Domínio adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/blocked-domain'' --data "filter=meudominio.com.br&blockedDomain=spamdominio.com" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover domínio bloqueado
      description: Remove um domínio da lista de bloqueio.
      operationId: delete_antispam_blocked_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - blockedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                blockedDomain:
                  type: string
                  description: Domínio a remover.
                  example: spamdominio.com
      responses:
        '200':
          description: Domínio removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter blockedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/blocked-domain'' --data "filter=meudominio.com.br&blockedDomain=spamdominio.com" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/allowed-domain:
    get:
      tags:
      - Antispam
      summary: Listar domínios permitidos
      description: Retorna a lista de domínios permitidos para o domínio ou e-mail informado.
      operationId: get_antispam_allowed_domain
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - parceiro.com.br
                - provedor.com
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/allowed-domain?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar domínios permitidos
      description: Adiciona múltiplos domínios à lista de permissão.
      operationId: post_antispam_allowed_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedDomain:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a permitir (enviar como allowedDomain[]).
      responses:
        '200':
          description: Domínios adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - parceiro.com.br
                - provedor.com
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/allowed-domain'' --data "filter=meudominio.com.br&allowedDomain[]=parceiro.com.br&allowedDomain[]=provedor.com" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar domínio permitido individual
      description: Adiciona um único domínio à lista de permissão.
      operationId: put_antispam_allowed_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedDomain:
                  type: string
                  description: Domínio a permitir.
                  example: parceiro.com.br
      responses:
        '200':
          description: Domínio adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/allowed-domain'' --data "filter=meudominio.com.br&allowedDomain=parceiro.com.br" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover domínio permitido
      description: Remove um domínio da lista de permissão.
      operationId: delete_antispam_allowed_domain
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedDomain
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedDomain:
                  type: string
                  description: Domínio a remover.
                  example: parceiro.com.br
      responses:
        '200':
          description: Domínio removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedDomain cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/allowed-domain'' --data "filter=meudominio.com.br&allowedDomain=parceiro.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/allowed-ip:
    get:
      tags:
      - Antispam
      summary: Listar IPs permitidos
      description: Retorna a lista de IPs permitidos para o domínio ou e-mail informado.
      operationId: get_antispam_allowed_ip
      parameters:
      - name: filter
        in: query
        required: true
        description: Domínio ou e-mail para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - 192.168.0.15
                - 10.0.0.1/24
        '404':
          description: Nenhum dado encontrado para o filtro informado.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/allowed-ip?filter=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Antispam
      summary: Adicionar IPs permitidos
      description: Adiciona múltiplos IPs à lista de permissão. Aceita IPs individuais e notação CIDR.
      operationId: post_antispam_allowed_ip
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedIp
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedIp:
                  type: array
                  items:
                    type: string
                  description: Lista de IPs a permitir (enviar como allowedIp[]).
      responses:
        '200':
          description: IPs adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - 192.168.0.15
                - 192.168.0.16
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/antispam/allowed-ip'' --data "filter=meudominio.com.br&allowedIp[]=192.168.0.15&allowedIp[]=192.168.0.16" -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Antispam
      summary: Adicionar IP permitido individual
      description: Adiciona um único IP à lista de permissão. Aceita notação CIDR.
      operationId: put_antispam_allowed_ip
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedIp
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedIp:
                  type: string
                  description: IP a permitir (aceita notação CIDR).
                  example: 192.168.0.15/32
      responses:
        '200':
          description: IP adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedIp cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/antispam/allowed-ip'' --data "filter=meudominio.com.br&allowedIp=192.168.0.15/32" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Antispam
      summary: Remover IP permitido
      description: Remove um IP da lista de permissão.
      operationId: delete_antispam_allowed_ip
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - filter
              - allowedIp
              properties:
                filter:
                  type: string
                  description: Domínio ou e-mail alvo.
                  example: meudominio.com.br
                allowedIp:
                  type: string
                  description: IP a remover.
                  example: 192.168.0.15/32
      responses:
        '200':
          description: IP removido com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                success: false
                message: Parameter allowedIp cannot be an array
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/antispam/allowed-ip'' --data "filter=meudominio.com.br&allowedIp=192.168.0.15/32" -H ''Authorization: bearer jwt.token.generated'''
  /antispam/top-rank/domain:
    get:
      tags:
      - Antispam - Dashboard
      summary: Ranking de domínios remetentes
      description: Retorna o ranking dos domínios que mais enviaram mensagens filtradas pelo antispam no período informado.
      operationId: get_antispam_top_rank_domain
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: dateFrom
        in: query
        required: true
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-01 00:00:00'
      - name: dateTo
        in: query
        required: true
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-07 23:59:59'
      - name: actions[]
        in: query
        required: false
        description: Filtro por ações do antispam (ex. reject, quarantine, add header, rewrite subject).
        schema:
          type: array
          items:
            type: string
      - name: size
        in: query
        required: false
        description: Quantidade de resultados a retornar (padrão 10).
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 1520
                  from: gmail.com
                - total: 843
                  from: outlook.com
                - total: 312
                  from: yahoo.com.br
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/top-rank/domain?domain=meudominio.com.br&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59&actions[]=reject&size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /antispam/top-rank/sender:
    get:
      tags:
      - Antispam - Dashboard
      summary: Ranking de remetentes
      description: Retorna o ranking dos remetentes que mais enviaram mensagens filtradas pelo antispam no período informado.
      operationId: get_antispam_top_rank_sender
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: dateFrom
        in: query
        required: true
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-01 00:00:00'
      - name: dateTo
        in: query
        required: true
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-07 23:59:59'
      - name: actions[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: size
        in: query
        required: false
        description: Quantidade de resultados a retornar (padrão 10).
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 487
                  from: spammer@dominio-externo.com
                - total: 215
                  from: marketing@newsletter.net
                - total: 98
                  from: noreply@promocoes.com.br
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/top-rank/sender?domain=meudominio.com.br&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59&size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /antispam/top-rank/ip:
    get:
      tags:
      - Antispam - Dashboard
      summary: Ranking de IPs remetentes
      description: Retorna o ranking dos IPs que mais enviaram mensagens filtradas pelo antispam no período informado.
      operationId: get_antispam_top_rank_ip
      parameters:
      - name: domain
        in: query
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: dateFrom
        in: query
        required: true
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-01 00:00:00'
      - name: dateTo
        in: query
        required: true
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
          example: '2024-01-07 23:59:59'
      - name: actions[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: size
        in: query
        required: false
        description: Quantidade de resultados a retornar (padrão 10).
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 2340
                  from: 192.168.1.100
                - total: 1105
                  from: 10.0.0.55
                - total: 530
                  from: 203.0.113.42
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/antispam/top-rank/ip?domain=meudominio.com.br&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59&actions[]=reject&size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/antispam/history:
    get:
      tags:
      - Antispam - Dashboard
      summary: Histórico de antispam do domínio
      description: Retorna o histórico paginado de mensagens filtradas pelo antispam para o domínio informado.
      operationId: get_domain_antispam_history
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: query
        in: query
        required: false
        description: Termo de busca para filtrar resultados.
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: perPage
        in: query
        required: false
        description: Itens por página (padrão 10).
        schema:
          type: integer
          default: 10
      - name: action[]
        in: query
        required: false
        description: Filtro por ações do antispam (ex. reject, add header, quarantine, rewrite subject).
        schema:
          type: array
          items:
            type: string
      - name: orderBy
        in: query
        required: false
        description: Campo e direção para ordenação (ex. orderBy[DESC]=EnvelopeFrom).
        schema:
          type: string
      - name: dateFrom
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s). Padrão últimas 24 horas.
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s). Padrão momento atual.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                data:
                - MessageId: abc123def456
                  IP: 192.168.1.100
                  from: spammer@dominio-externo.com
                  EnvelopeFrom: spammer@dominio-externo.com
                  EnvelopeTo: usuario@skymail.net.br
                  ToCCBcc:
                  - usuario@skymail.net.br
                  Subject: Oferta imperdivel
                  Action: reject
                  Score: 15.3
                  MsgSize: 4521
                  time: '2024-01-05 14:32:10'
                - MessageId: xyz789ghi012
                  IP: 10.0.0.55
                  from: news@marketing.net
                  EnvelopeFrom: news@marketing.net
                  EnvelopeTo: contato@skymail.net.br
                  ToCCBcc:
                  - contato@skymail.net.br
                  Subject: Newsletter semanal
                  Action: add header
                  Score: 6.8
                  MsgSize: 12045
                  time: '2024-01-05 13:15:42'
                total: 247
                totalPages: 25
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/antispam/history?page=1&perPage=15&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/antispam/graph:
    get:
      tags:
      - Antispam - Dashboard
      summary: Gráfico de antispam do domínio
      description: Retorna dados para geração de gráfico de atividade do antispam para o domínio informado.
      operationId: get_domain_antispam_graph
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: action[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: dateFrom
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s). Padrão últimas 24 horas.
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s). Padrão momento atual.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                reject:
                - x: 1704067200
                  y: 45
                - x: 1704070800
                  y: 32
                add header:
                - x: 1704067200
                  y: 120
                - x: 1704070800
                  y: 98
                rewrite subject:
                - x: 1704067200
                  y: 15
                - x: 1704070800
                  y: 22
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/antispam/graph?action[]=reject&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59'' -H ''Authorization: bearer jwt.token.generated'''
  /domain/{domain}/antispam/status:
    get:
      tags:
      - Antispam - Dashboard
      summary: Status de antispam do domínio
      description: Retorna o resumo de status das ações do antispam para o domínio informado no período.
      operationId: get_domain_antispam_status
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      - name: action[]
        in: query
        required: false
        description: Filtro por ações do antispam.
        schema:
          type: array
          items:
            type: string
      - name: dateFrom
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s). Padrão últimas 24 horas.
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s). Padrão momento atual.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                data:
                - action: reject
                  count: 1520
                  percentage: 45.2
                - action: add header
                  count: 1105
                  percentage: 32.8
                - action: rewrite subject
                  count: 740
                  percentage: 22.0
                total: 3365
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: dateTo greater than dateFrom
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain/meudominio.com.br/antispam/status?action[]=reject&dateFrom=2024-01-01+00:00:00&dateTo=2024-01-07+23:59:59'' -H ''Authorization: bearer jwt.token.generated'''

  /veeam/backup-agent-jobs/{clientId}/status-backup-jobs:
    get:
      tags:
      - Veeam
      summary: Status dos jobs de backup agent por cliente
      description: Retorna o status dos jobs do backup agent para o cliente informado.
      operationId: get_veeam_backup_agent_jobs_status
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  success: 5
                  running: 1
                  warning: 2
                  failed: 0
                  info: 0
                  none: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent-jobs/1/status-backup-jobs'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent-jobs/{revenueId}/status-backup-jobs/revenue:
    get:
      tags:
      - Veeam
      summary: Status dos jobs de backup agent por receita
      description: Retorna o status dos jobs do backup agent para a receita (revenue) informada.
      operationId: get_veeam_backup_agent_jobs_status_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  success: 12
                  running: 3
                  warning: 4
                  failed: 1
                  info: 0
                  none: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent-jobs/1/status-backup-jobs/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{clientId}/information-agent:
    get:
      tags:
      - Veeam
      summary: Informações do backup agent por cliente
      description: Retorna as informações do backup agent para o cliente informado.
      operationId: get_veeam_backup_agent_information
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 3
                  productName: Servidor
                  managedBySkymail: 0
                  notManagedBySkymail: 3
                - total: 2
                  productName: Workstation
                  managedBySkymail: 0
                  notManagedBySkymail: 2
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/information-agent'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{revenueId}/information-agent/revenue:
    get:
      tags:
      - Veeam
      summary: Informações do backup agent por receita
      description: Retorna as informações do backup agent para a receita (revenue) informada.
      operationId: get_veeam_backup_agent_information_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 8
                  productName: Servidor
                  managedBySkymail: 0
                  notManagedBySkymail: 8
                - total: 5
                  productName: Workstation
                  managedBySkymail: 0
                  notManagedBySkymail: 5
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/information-agent/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{clientId}/managed-by-console:
    get:
      tags:
      - Veeam
      summary: Listar agents gerenciados pelo console por cliente
      description: Retorna a lista paginada de backup agents gerenciados pelo console para o cliente informado.
      operationId: get_veeam_backup_agent_managed_by_console
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status (ex. Failed, Success).
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[computador]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - computador: SRV-SKYMAIL-01
                  licenca: Server
                  tarefa: 3 de 4
                  localizacao: Datacenter SP
                  status: Success
                - computador: WKS-FINANCEIRO-02
                  licenca: Workstation
                  tarefa: 1 de 1
                  localizacao: Datacenter SP
                  status: Warning
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/managed-by-console?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-agent/{revenueId}/managed-by-console/revenue:
    get:
      tags:
      - Veeam
      summary: Listar agents gerenciados pelo console por receita
      description: Retorna a lista paginada de backup agents gerenciados pelo console para a receita (revenue) informada.
      operationId: get_veeam_backup_agent_managed_by_console_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status (ex. Failed, Success).
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 3
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  computador: SRV-APP-01
                  licenca: Server
                  tarefa: 2 de 3
                  localizacao: Datacenter SP
                  status: Success
                - client: Empresa XYZ SA
                  computador: SRV-DB-01
                  licenca: Server
                  tarefa: 1 de 1
                  localizacao: Datacenter RJ
                  status: Failed
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-agent/1/managed-by-console/revenue?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{clientId}/information-backup-replication:
    get:
      tags:
      - Veeam
      summary: Informações do servidor de backup por cliente
      description: Retorna as informações de backup e replicação do servidor para o cliente informado.
      operationId: get_veeam_backup_server_information
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 2
                  productName: Standard
                  managedBySkymail: 0
                  notManagedBySkymail: 2
                - total: 1
                  productName: Enterprise
                  managedBySkymail: 0
                  notManagedBySkymail: 1
                - total: 0
                  productName: Enterprise Plus
                  managedBySkymail: 0
                  notManagedBySkymail: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/information-backup-replication'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{revenueId}/information-backup-replication/revenue:
    get:
      tags:
      - Veeam
      summary: Informações do servidor de backup por receita
      description: Retorna as informações de backup e replicação do servidor para a receita (revenue) informada.
      operationId: get_veeam_backup_server_information_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - total: 5
                  productName: Standard
                  managedBySkymail: 0
                  notManagedBySkymail: 5
                - total: 3
                  productName: Enterprise
                  managedBySkymail: 0
                  notManagedBySkymail: 3
                - total: 1
                  productName: Enterprise Plus
                  managedBySkymail: 0
                  notManagedBySkymail: 1
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/information-backup-replication/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{clientId}/managed-by-backup-server:
    get:
      tags:
      - Veeam
      summary: Listar itens gerenciados pelo servidor de backup por cliente
      description: Retorna a lista paginada de itens gerenciados pelo servidor de backup para o cliente informado.
      operationId: get_veeam_backup_server_managed
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status (ex. Failed, Success).
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[status]=desc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1
                page: 1
                rowsPerPage: 10
                data:
                - tarefa: Backup Diario Servidores
                  status: Success
                  objetos_processados: 3 de 4
                  duracao: 1 Horas 23 Minutos 45 Segundos
                  agendamento: Daily
                  tipo: AgentBackupJob
                  ultima_execucao: 25/06/2024 03:30
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  sistema_operacional: Windows
                  modo_operacao: Server
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/managed-by-backup-server?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{revenueId}/managed-by-backup-server/revenue:
    get:
      tags:
      - Veeam
      summary: Listar itens gerenciados pelo servidor de backup por receita
      description: Retorna a lista paginada de itens gerenciados pelo servidor de backup para a receita (revenue) informada.
      operationId: get_veeam_backup_server_managed_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status.
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  tarefa: Backup Diario Servidores
                  status: Success
                  objetos_processados: 3 de 4
                  duracao: 1 Horas 23 Minutos 45 Segundos
                  agendamento: Daily
                  tipo: AgentBackupJob
                  ultima_execucao: 25/06/2024 03:30
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  sistema_operacional: Windows
                  modo_operacao: Server
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/managed-by-backup-server/revenue?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{clientId}/virtual-machine:
    get:
      tags:
      - Veeam
      summary: Listar máquinas virtuais do servidor de backup por cliente
      description: Retorna a lista paginada de máquinas virtuais associadas ao servidor de backup para o cliente informado.
      operationId: get_veeam_backup_server_virtual_machine
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status.
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[tarefa]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1
                page: 1
                rowsPerPage: 10
                data:
                - tarefa: Backup VM Producao
                  status: Success
                  objetos_processados: 5
                  duracao: 0 Horas 45 Minutos 30 Segundos
                  agendamento: Daily
                  tipo: BackupVm
                  ultima_execucao: 25/06/2024 02:15
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  destino: Default Backup Repository
                  plataforma: VMware
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/virtual-machine?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/backup-server/{revenueId}/virtual-machine/revenue:
    get:
      tags:
      - Veeam
      summary: Listar máquinas virtuais do servidor de backup por receita
      description: Retorna a lista paginada de máquinas virtuais associadas ao servidor de backup para a receita (revenue) informada.
      operationId: get_veeam_backup_server_virtual_machine_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: status
        in: query
        required: false
        description: Filtro por status.
        schema:
          type: string
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  tarefa: Backup VM Producao
                  status: Success
                  objetos_processados: 5
                  duracao: 0 Horas 45 Minutos 30 Segundos
                  agendamento: Daily
                  tipo: BackupVm
                  ultima_execucao: 25/06/2024 02:15
                  localizacao: Datacenter SP
                  backup_server: VBR-SERVER-01
                  destino: Default Backup Repository
                  plataforma: VMware
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/backup-server/1/virtual-machine/revenue?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{clientId}/storage:
    get:
      tags:
      - Veeam
      summary: Consultar storage da organização por cliente
      description: Retorna as informações de storage da organização Veeam para o cliente informado.
      operationId: get_veeam_organization_storage
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                storage: 107374182400
                data:
                  used: 64424509440
                  available: 42949672960
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{revenueId}/storage/revenue:
    get:
      tags:
      - Veeam
      summary: Consultar storage da organização por receita
      description: Retorna as informações de storage da organização Veeam para a receita (revenue) informada.
      operationId: get_veeam_organization_storage_revenue
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                storage: 536870912000
                data:
                  used: 322122547200
                  available: 214748364800
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/revenue'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{revenueId}/storage/revenue/status/count:
    get:
      tags:
      - Veeam
      summary: Contagem de status de storage por receita
      description: Retorna a contagem agrupada por status de storage da organização Veeam para a receita informada.
      operationId: get_veeam_organization_storage_revenue_status_count
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                storage_status:
                  error: 1
                  ok: 8
                  warning: 3
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/revenue/status/count'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{revenueId}/storage/revenue/status/list:
    get:
      tags:
      - Veeam
      summary: Listar status de storage por receita
      description: Retorna a lista paginada de status de storage da organização Veeam para a receita informada.
      operationId: get_veeam_organization_storage_revenue_status_list
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[storage]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 2
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  capacidade: 107374182400
                  espaco_utilizado: 64424509440
                  espaco_disponivel: 42949672960
                  status: ok
                - client: Empresa XYZ SA
                  capacidade: 53687091200
                  espaco_utilizado: 48318382080
                  espaco_disponivel: 5368709120
                  status: warning
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/revenue/status/list?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/organization/{clientId}/storage/status/list:
    get:
      tags:
      - Veeam
      summary: Listar status de storage por cliente
      description: Retorna a lista paginada de status de storage da organização Veeam para o cliente informado.
      operationId: get_veeam_organization_storage_status_list
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: page
        in: query
        required: false
        description: Número da página (padrão 1).
        schema:
          type: integer
          default: 1
      - name: rowsPerPage
        in: query
        required: false
        description: Itens por página (1–100, padrão 10).
        schema:
          type: integer
          default: 10
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc.'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1
                page: 1
                rowsPerPage: 10
                data:
                - client: Empresa ABC Ltda
                  capacidade: 107374182400
                  espaco_utilizado: 64424509440
                  espaco_disponivel: 42949672960
                  status: ok
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/organization/1/storage/status/list?page=1&rowsPerPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/protected-workloads/{clientId}/protected-machines:
    get:
      tags:
      - Veeam
      summary: Listar máquinas protegidas
      description: Retorna a lista de máquinas protegidas pelo Veeam para o cliente informado.
      operationId: get_veeam_protected_workloads
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 7
                data:
                  success: 5
                  running: 1
                  warning: 1
                  failed: 0
                  undefined: 0
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/protected-workloads/1/protected-machines'' -H ''Authorization: bearer jwt.token.generated'''
  /veeam/reseller/{revenueId}:
    get:
      tags:
      - Veeam
      summary: Consultar cliente revenda por receita
      description: Retorna as informações do cliente de revenda Veeam para a receita (revenue) informada.
      operationId: get_veeam_reseller
      parameters:
      - name: revenueId
        in: path
        required: true
        description: ID da receita (revenue).
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: Empresa ABC Ltda
                  clientId: 1001
                  instanceUid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                - name: Empresa XYZ SA
                  clientId: 1002
                  instanceUid: b2c3d4e5-f6a7-8901-bcde-f12345678901
        '403':
          description: Sem permissão para realizar esta operação.
          content:
            application/json:
              example:
                success: false
                message: You are not allowed to perform this operation
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/veeam/reseller/1'' -H ''Authorization: bearer jwt.token.generated'''

  /dns/{name}/entry/default-entries:
    post:
      tags:
      - Dns
      summary: Criar entradas padrão de DNS
      description: Cria as entradas padrão de DNS para a zona informada. Útil para configurar automaticamente os registros mais comuns (MX, CNAME para autodiscover, webmail, etc.).
      operationId: post_dns_entry_default_entries
      parameters:
      - name: name
        in: path
        required: true
        description: Nome da zona de DNS (domínio).
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - force
              properties:
                force:
                  type: string
                  enum:
                  - 'true'
                  - 'false'
                  description: Se true, sobrescreve entradas existentes. Se false, mantém as existentes.
                  example: 'true'
      responses:
        '201':
          description: Entradas padrão criadas com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 1440050
                  name: meudominio.com.br
                  type: MX
                  value: mx.meudominio.com.br
                  ttl: 3600
                - id: 1440051
                  name: autodiscover.meudominio.com.br
                  type: CNAME
                  value: autodiscover-ha.meuprovedor.com.br
                  ttl: 3600
                - id: 1440052
                  name: webmail.meudominio.com.br
                  type: CNAME
                  value: webmail-ha.meuprovedor.com.br
                  ttl: 3600
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns/meudominio.com.br/entry/default-entries'' --data "force=true" -H ''Authorization: bearer jwt.token.generated'''
  /dns/check/{domain}:
    get:
      tags:
      - Dns
      summary: Verificar se DNS pode ser importado
      description: Verifica se existem entradas comuns configuradas externamente para o domínio informado que podem ser importadas para a zona de DNS.
      operationId: get_dns_check
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para verificação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  canImport: true
                  canCreate: false
                  reasons: []
        '500':
          description: Erro interno na verificação.
          content:
            application/json:
              example:
                success: false
                message: Erro na verificação
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns/check/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/templates:
    get:
      tags:
      - Dns - Templates
      summary: Listar templates de DNS
      description: Retorna a lista de templates de DNS cadastrados para o cliente informado.
      operationId: get_dns_template_list
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 1234
                  name: meudominio.com.br
                - id: 1235
                  name: outrodominio.com.br
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns-template/1/templates'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/template:
    get:
      tags:
      - Dns - Templates
      summary: Consultar template de DNS com entradas
      description: Retorna o template de DNS e suas entradas para o cliente informado.
      operationId: get_dns_template
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  dns:
                    id: 1234
                    entries:
                    - id: 5678
                      name: mail.meudominio.com.br
                      type: CNAME
                      value: mail-ha.meuprovedor.com.br
                      ttl: 3600
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns-template/1/template'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/entry:
    get:
      tags:
      - Dns - Templates
      summary: Listar entradas do template de DNS
      description: Retorna as entradas do template de DNS para o cliente informado.
      operationId: get_dns_template_entries
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  entries:
                  - id: 5678
                    name: mail.meudominio.com.br
                    type: CNAME
                    value: mail-ha.meuprovedor.com.br
                    ttl: 3600
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/dns-template/1/entry'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Dns - Templates
      summary: Adicionar entrada ao template de DNS
      description: Adiciona uma nova entrada ao template de DNS do cliente informado.
      operationId: post_dns_template_entry
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - type
              - value
              properties:
                name:
                  type: string
                  description: Nome do registro (obrigatório para CNAME).
                  example: test
                type:
                  type: string
                  description: Tipo do registro DNS.
                  enum:
                  - A
                  - AAAA
                  - CNAME
                  - MX
                  - TXT
                  - SRV
                  - NS
                  - CAA
                  - LB
                  example: CNAME
                value:
                  type: string
                  description: Valor do registro.
                  example: 192.168.0.1
                ttl:
                  type: integer
                  description: TTL em segundos (padrão 3600).
                  default: 3600
                  example: 3600
                priority:
                  type: integer
                  description: Prioridade (para MX e SRV).
                  example: 10
                weight:
                  type: integer
                  description: Peso (para SRV).
                  example: 5
                port:
                  type: integer
                  description: Porta (para SRV).
                  example: 8080
                flag:
                  type: integer
                  description: Flag (para CAA, 0–255).
                  example: 0
                tag:
                  type: string
                  description: Tag (para CAA — issue, issuewild ou iodef).
                  enum:
                  - issue
                  - issuewild
                  - iodef
      responses:
        '200':
          description: Entrada adicionada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns-template/1/entry'' --data "name=test&type=CNAME&value=192.168.0.1&ttl=3600" -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}:
    post:
      tags:
      - Dns - Templates
      summary: Criar template de DNS
      description: Cria um novo template de DNS para o cliente informado.
      operationId: post_dns_template_create
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '201':
          description: Template criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  dns:
                    id: 1234
        '400':
          description: Erro na criação.
          content:
            application/json:
              example:
                success: false
                message: Error creating template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns-template/1'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Dns - Templates
      summary: Excluir template de DNS
      description: Exclui o template de DNS do cliente informado, incluindo todas as suas entradas.
      operationId: delete_dns_template
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Template excluído com sucesso.
          content:
            application/json:
              example:
                success: true
        '404':
          description: Template não encontrado.
          content:
            application/json:
              example:
                success: false
                message: dns template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/dns-template/1'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/import/{dnsName}:
    post:
      tags:
      - Dns - Templates
      summary: Importar template a partir de zona de DNS
      description: Importa as entradas de uma zona de DNS existente para o template do cliente informado.
      operationId: post_dns_template_import
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: dnsName
        in: path
        required: true
        description: Nome da zona de DNS a importar.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Importação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na importação.
          content:
            application/json:
              example:
                success: false
                message: Error importing template
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/dns-template/1/import/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /dns-template/{clientId}/entry/{entryId}:
    put:
      tags:
      - Dns - Templates
      summary: Atualizar entrada do template de DNS
      description: Atualiza uma entrada existente do template de DNS.
      operationId: put_dns_template_entry
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      - name: entryId
        in: path
        required: true
        description: ID da entrada a atualizar.
        schema:
          type: integer
          example: 5678
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do registro.
                  example: test.meudominio.com.br
                type:
                  type: string
                  description: Tipo do registro DNS.
                  enum:
                  - A
                  - AAAA
                  - CNAME
                  - MX
                  - TXT
                  - SRV
                  - NS
                  - CAA
                  - LB
                value:
                  type: string
                  description: Valor do registro.
                  example: teste.com.br
                ttl:
                  type: integer
                  description: TTL em segundos.
                  example: 3600
                priority:
                  type: integer
                  description: Prioridade (para MX e SRV).
                weight:
                  type: integer
                  description: Peso (para SRV).
                port:
                  type: integer
                  description: Porta (para SRV).
      responses:
        '200':
          description: Entrada atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                message: Entry updated successfully
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/dns-template/1/entry/5678'' --data "name=test.meudominio.com.br&type=CNAME&value=teste.com.br&ttl=3600" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Dns - Templates
      summary: Excluir entrada do template de DNS
      description: Exclui uma entrada específica do template de DNS.
      operationId: delete_dns_template_entry
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente ou identificador do template.
        schema:
          type: string
          example: '1'
      - name: entryId
        in: path
        required: true
        description: ID da entrada a excluir.
        schema:
          type: integer
          example: 5678
      responses:
        '200':
          description: Entrada excluída com sucesso.
          content:
            application/json:
              example:
                success: true
        '404':
          description: Entrada não encontrada.
          content:
            application/json:
              example:
                success: false
                message: Not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/dns-template/1/entry/5678'' -H ''Authorization: bearer jwt.token.generated'''

  /report/fields/{report}:
    get:
      tags:
      - Relatórios
      summary: Consultar campos disponíveis de um relatório
      description: Retorna os campos disponíveis para o tipo de relatório informado, permitindo saber quais campos podem ser selecionados na requisição do relatório.
      operationId: get_report_fields
      parameters:
      - name: report
        in: path
        required: true
        description: Nome/tipo do relatório (ex. mailbox, groupmail).
        schema:
          type: string
          example: mailbox
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
              - label: E-mail
                field: mail
              - label: Nome
                field: displayName
              - label: Domínio
                field: domain
              - label: Quota
                field: quota
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/fields/mailbox'' -H ''Authorization: bearer jwt.token.generated'''
  /report/request:
    post:
      tags:
      - Relatórios
      summary: Solicitar geração de relatório
      description: Solicita a geração assíncrona de um relatório. O relatório é processado em background e o resultado enviado por e-mail ao solicitante quando informado.
      operationId: post_report_request
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - report
              properties:
                report:
                  type: string
                  description: Tipo do relatório (ex. mailbox, groupmail, useradmin).
                  example: mailbox
                filter:
                  type: object
                  description: Filtros aplicados ao relatório (ex. filter[domain]=meudominio.com.br).
                fields:
                  type: array
                  items:
                    type: string
                  description: Campos a incluir no relatório (enviar como fields[]).
                file:
                  type: boolean
                  description: Se true, gera arquivo para download.
                  default: false
                requester:
                  type: string
                  format: email
                  description: E-mail do solicitante para receber o resultado.
                requestUrl:
                  type: string
                  description: URL de callback ao finalizar o relatório.
      responses:
        '200':
          description: Relatório solicitado com sucesso.
          content:
            application/json:
              example:
                result: success
                message: Relatório solicitado com sucesso
        '400':
          description: Erro na requisição.
          content:
            application/json:
              example:
                result: fail
                message: Invalid report type
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/report/request'' --data "report=mailbox&filter[domain]=meudominio.com.br&fields[]=mail&fields[]=displayName&requester=admin@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/received:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens recebidas
      description: Retorna as mensagens recebidas com base nos filtros de remetente, destinatário e período informados.
      operationId: get_report_messages_received
      parameters:
      - name: fromEmail
        in: query
        required: false
        description: E-mail do remetente para filtro.
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        description: E-mail do destinatário para filtro.
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual (alternativa a from/to).
        schema:
          type: integer
          example: 604800
      - name: fields
        in: query
        required: false
        description: Campos a retornar, separados por vírgula (ex. De,Para,Motivo,@timestamp).
        schema:
          type: string
          example: De,Para,Motivo,@timestamp
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
          example: 10000
      - name: offset
        in: query
        required: false
        description: Offset para paginação.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                total_count: 150
                data:
                - De: remetente@externo.com
                  Para: usuario@meudominio.com.br
                  Motivo: Recebida
                  '@timestamp': '2024-01-15T10:30:00.000Z'
                - De: contato@empresa.com
                  Para: usuario@meudominio.com.br
                  Motivo: Recebida
                  '@timestamp': '2024-01-15T11:45:22.000Z'
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/received?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/rejected:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens rejeitadas
      description: Retorna as mensagens recebidas que foram rejeitadas, com base nos filtros informados.
      operationId: get_report_messages_rejected
      parameters:
      - name: fromEmail
        in: query
        required: false
        description: E-mail do remetente para filtro.
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        description: E-mail do destinatário para filtro.
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual.
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        description: Campos a retornar, separados por vírgula.
        schema:
          type: string
          example: De,Para,Motivo,@timestamp
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: Offset para paginação.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 35
                data:
                - De: spam@origem.com
                  Para: usuario@meudominio.com.br
                  Motivo: Rejeitada por politica de seguranca
                  '@timestamp': '2024-01-05T08:12:33.000Z'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/rejected?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-07+23:59:59&fields=De,Para,Motivo,@timestamp'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/all-received:
    get:
      tags:
      - Relatórios
      summary: Relatório de todas as mensagens recebidas
      description: Retorna todas as mensagens recebidas (incluindo rejeitadas), com base nos filtros informados.
      operationId: get_report_messages_all_received
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                total_count: 185
                data:
                - De: remetente@externo.com
                  Para: usuario@meudominio.com.br
                  Motivo: Recebida
                  '@timestamp': '2024-01-15T10:30:00.000Z'
                  Tipo: Recebidas
                - De: spam@origem.com
                  Para: usuario@meudominio.com.br
                  Motivo: Rejeitada por politica de seguranca
                  '@timestamp': '2024-01-15T11:02:10.000Z'
                  Tipo: RecebidasMasRejeitadas
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/all-received?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Tipo&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/sent:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens enviadas
      description: Retorna as mensagens enviadas com sucesso, com base nos filtros informados.
      operationId: get_report_messages_sent
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 420
                data:
                - De: usuario@meudominio.com.br
                  Para: destinatario@externo.com
                  Motivo: Enviada
                  '@timestamp': '2024-01-20T14:05:30.000Z'
                  Assunto: Reuniao de alinhamento
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/sent?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,@timestamp,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/sent-failed:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens enviadas com falha
      description: Retorna as mensagens cujo envio falhou, com base nos filtros informados.
      operationId: get_report_messages_sent_failed
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 12
                data:
                - De: usuario@meudominio.com.br
                  Para: invalido@dominio-inexistente.com
                  Motivo: Host not found
                  '@timestamp': '2024-01-18T09:20:15.000Z'
                  Assunto: Proposta comercial
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/sent-failed?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/sent-in-attempt:
    get:
      tags:
      - Relatórios
      summary: Relatório de mensagens em tentativa de envio
      description: Retorna as mensagens que ainda estão em tentativa de envio, com base nos filtros informados.
      operationId: get_report_messages_sent_in_attempt
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 5
                data:
                - De: usuario@meudominio.com.br
                  Para: destinatario@externo.com
                  Motivo: Em tentativa
                  '@timestamp': '2024-01-25T16:40:00.000Z'
                  Assunto: Documento em anexo
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/sent-in-attempt?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/messages/all-sent:
    get:
      tags:
      - Relatórios
      summary: Relatório de todas as mensagens enviadas
      description: Retorna todas as mensagens enviadas (sucesso, falha e em tentativa), com base nos filtros informados.
      operationId: get_report_messages_all_sent
      parameters:
      - name: fromEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: toEmail
        in: query
        required: false
        schema:
          type: string
          format: email
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        schema:
          type: string
          example: De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                total_count: 437
                data:
                - De: usuario@meudominio.com.br
                  Para: destinatario@externo.com
                  Motivo: Enviada
                  '@timestamp': '2024-01-20T14:05:30.000Z'
                  Tipo: Enviadas
                  Assunto: Reuniao de alinhamento
                  MailBox: usuario@meudominio.com.br
                - De: usuario@meudominio.com.br
                  Para: invalido@dominio-inexistente.com
                  Motivo: Host not found
                  '@timestamp': '2024-01-18T09:20:15.000Z'
                  Tipo: EnviadasComFalha
                  Assunto: Proposta comercial
                  MailBox: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/messages/all-sent?fromEmail=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=De,Para,Motivo,@timestamp,Tipo,Assunto,MailBox&limit=100'' -H ''Authorization: bearer jwt.token.generated'''
  /report/login:
    get:
      tags:
      - Relatórios
      summary: Relatório de acessos/login
      description: Retorna os registros de acesso (login) de caixas postais no período informado, com possibilidade de filtrar por motivo.
      operationId: get_report_login
      parameters:
      - name: user
        in: query
        required: false
        description: E-mail do usuário para filtro.
        schema:
          type: string
          format: email
          example: usuario@meudominio.com.br
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual (alternativa a from/to).
        schema:
          type: integer
      - name: motivo
        in: query
        required: false
        description: Filtro por motivo do registro (ex. ok, fail).
        schema:
          type: string
          example: ok
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - user: usuario@meudominio.com.br
                  ip: 189.50.100.25
                  date: '2024-01-15T08:30:00.000Z'
                  motivo: ok
                - user: usuario@meudominio.com.br
                  ip: 200.168.0.10
                  date: '2024-01-15T09:15:22.000Z'
                  motivo: fail
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/login?user=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&motivo=ok'' -H ''Authorization: bearer jwt.token.generated'''
  /report/logs/skybox:
    get:
      tags:
      - Relatórios
      summary: Relatório de logs do Skybox
      description: Retorna os logs de auditoria do Skybox (webmail) para o usuário e período informados.
      operationId: get_report_logs_skybox
      parameters:
      - name: user
        in: query
        required: false
        description: E-mail do usuário para filtro.
        schema:
          type: string
          format: email
          example: usuario@meudominio.com.br
      - name: from
        in: query
        required: false
        description: Data/hora de início do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: Data/hora de fim do período (formato Y-m-d H:i:s).
        schema:
          type: string
          format: date-time
      - name: range
        in: query
        required: false
        description: Intervalo em segundos a partir do momento atual.
        schema:
          type: integer
      - name: fields
        in: query
        required: false
        description: Campos a retornar, separados por vírgula.
        schema:
          type: string
          example: tipo,action,ip,message,timestamp,type,url,user
      - name: limit
        in: query
        required: false
        description: Limite de resultados.
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: Offset para paginação.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total_count: 78
                data:
                - tipo: skybox-audit
                  action: login
                  ip: 189.50.100.25
                  message: Login efetuado com sucesso
                  timestamp: '2024-01-15T08:30:00.000Z'
                  user: usuario@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/report/logs/skybox?user=usuario@meudominio.com.br&from=2024-01-01+00:00:00&to=2024-01-31+23:59:59&fields=tipo,action,ip,message,timestamp'' -H ''Authorization: bearer jwt.token.generated'''
  /report/financial/credit-card:
    post:
      tags:
      - Relatórios
      summary: Relatório financeiro de cartão de crédito
      description: Retorna o relatório financeiro de transações de cartão de crédito no período informado.
      operationId: post_report_financial_credit_card
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  type: object
                  properties:
                    dateFrom:
                      type: string
                      format: date
                      description: Data de início do período.
                      example: '2024-01-01'
                    dateUpto:
                      type: string
                      format: date
                      description: Data de fim do período.
                      example: '2024-02-01'
                    clientId:
                      type: integer
                      description: ID do cliente para filtro (opcional).
                      example: null
                    urlFile:
                      type: boolean
                      description: Se true, retorna URL para download do arquivo.
                      default: false
                    onlyConfirmedPayments:
                      type: boolean
                      description: Se true, retorna apenas pagamentos confirmados.
                      default: false
            example:
              filter:
                dateFrom: '2024-01-01'
                dateUpto: '2024-02-01'
                urlFile: false
                onlyConfirmedPayments: false
                clientId: null
      responses:
        '200':
          description: Relatório gerado com sucesso.
          content:
            application/json:
              example:
                status: 200
                urlFile: ''
                count: 1
                total_count: 25
                items:
                - clientId: 100
                  clientName: Empresa Exemplo Ltda
                  value: 199.90
                  date: '2024-01-15'
                  status: confirmed
        '400':
          description: Parâmetro em formato inválido.
          content:
            application/json:
              example:
                status: 400
                message: Invalid parameter
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/report/financial/credit-card'' -H ''Content-Type: application/json'' -H ''Authorization: bearer jwt.token.generated'' -d ''{"filter":{"dateFrom":"2024-01-01","dateUpto":"2024-02-01","urlFile":false,"onlyConfirmedPayments":false}}'''

  /smtp-out/{clientId}/client/total-by-month/{month}:
    get:
      tags:
      - Envios SMTP
      summary: Total de envios SMTP por mês
      description: Retorna o total de envios SMTP do cliente no mês informado.
      operationId: get_smtp_out_client_total_by_month
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: month
        in: path
        required: true
        description: Mês no formato YYYYMM.
        schema:
          type: string
          example: '202401'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                total: 1500
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/client/total-by-month/202401'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{clientId}/delivery/details:
    get:
      tags:
      - Envios SMTP
      summary: Listar detalhes de entregas SMTP
      description: Retorna a lista paginada de detalhes de entregas SMTP do cliente, com filtros por domínio, caixa postal, destinatário, status e período.
      operationId: get_smtp_out_delivery_details
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: domain
        in: query
        required: false
        description: Domínio para filtro.
        schema:
          type: string
      - name: mailbox
        in: query
        required: false
        description: Caixa postal para filtro.
        schema:
          type: string
      - name: emailTo
        in: query
        required: false
        description: E-mail do destinatário para filtro.
        schema:
          type: string
      - name: status
        in: query
        required: false
        description: Filtro por status da entrega.
        schema:
          type: string
          enum:
          - bounced
          - sent
          - deferred
          - expired
      - name: dateFrom
        in: query
        required: false
        description: Data de início (formato YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS).
        schema:
          type: string
          format: date
      - name: dateTo
        in: query
        required: false
        description: Data de fim.
        schema:
          type: string
          format: date
      - name: dateDeliveryFrom
        in: query
        required: false
        description: Data de início da entrega.
        schema:
          type: string
          format: date
      - name: dateDeliveryTo
        in: query
        required: false
        description: Data de fim da entrega.
        schema:
          type: string
          format: date
      - name: page
        in: query
        required: true
        description: Número da página.
        schema:
          type: integer
          example: 1
      - name: perPage
        in: query
        required: true
        description: Itens por página.
        schema:
          type: integer
          example: 10
      - name: order
        in: query
        required: false
        description: 'Ordenação no formato order[campo]=asc|desc (ex. order[sentDate]=asc).'
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                page: 1
                perPage: 10
                numPages: 5
                total: 48
                canDownload: true
                data:
                - emailAuth: usuario@meudominio.com.br
                  emailTo: destinatario@externo.com
                  subject: Reuniao de alinhamento
                  status: sent
                  sentDate: '2024-01-15 10:30:00'
                  deliveryDate: '2024-01-15 10:30:05'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/delivery/details?dateFrom=2024-01-01&dateTo=2024-01-31&page=1&perPage=10'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{clientId}/delivery/details/download:
    get:
      tags:
      - Envios SMTP
      summary: Download dos detalhes de entregas SMTP
      description: Retorna os dados de entregas SMTP para download, filtrados por domínio, caixa postal, destinatário, status e período.
      operationId: get_smtp_out_delivery_details_download
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: domain
        in: query
        required: false
        schema:
          type: string
      - name: mailbox
        in: query
        required: false
        schema:
          type: string
      - name: emailTo
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - bounced
          - sent
          - deferred
          - expired
      - name: dateFrom
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: dateTo
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Dados para download retornados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - emailAuth: usuario@meudominio.com.br
                  emailTo: destinatario@externo.com
                  subject: Reuniao de alinhamento
                  status: sent
                  sentDate: '2024-01-15 10:30:00'
                  deliveryDate: '2024-01-15 10:30:05'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/1/delivery/details/download?dateFrom=2024-01-01&dateTo=2024-01-31&status=sent'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{clientId}/delivery/details/send:
    post:
      tags:
      - Envios SMTP
      summary: Enviar detalhes de entregas por e-mail
      description: Solicita o envio por e-mail dos detalhes de entregas SMTP, filtrados por domínio, caixa postal, destinatário, status e período.
      operationId: post_smtp_out_delivery_details_send
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  description: Domínio para filtro.
                mailbox:
                  type: string
                  description: Caixa postal para filtro.
                emailTo:
                  type: string
                  description: E-mail do destinatário para filtro.
                status:
                  type: string
                  enum:
                  - bounced
                  - sent
                  - deferred
                  - expired
                dateFrom:
                  type: string
                  format: date
                  description: Data de início.
                dateTo:
                  type: string
                  format: date
                  description: Data de fim.
      responses:
        '200':
          description: Solicitação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                message: Relatório solicitado com sucesso
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/1/delivery/details/send'' --data "dateFrom=2024-01-01&dateTo=2024-01-31&status=sent" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{domain}/spf:
    get:
      tags:
      - Envios SMTP
      summary: Validar SPF do domínio
      description: Valida a configuração de SPF do domínio informado para envio SMTP.
      operationId: get_smtp_out_dns_validate_spf
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para validação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                valid: true
                record: 'v=spf1 include:spf.skymail.net.br ~all'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/meudominio.com.br/spf'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/{domain}/dkim:
    get:
      tags:
      - Envios SMTP
      summary: Validar DKIM do domínio
      description: Valida a configuração de DKIM do domínio informado para envio SMTP.
      operationId: get_smtp_out_dns_validate_dkim
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para validação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                valid: true
                selector: skymail
                record: 'v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/meudominio.com.br/dkim'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/smtp-active:
    get:
      tags:
      - Envios SMTP
      summary: Listar remetentes SMTP ativos
      description: Retorna a lista de remetentes com envio SMTP ativo para o cliente informado.
      operationId: get_smtp_out_box_smtp_active
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: domain
        in: query
        required: false
        description: Domínio para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - mailbox: usuario@meudominio.com.br
                  domain: meudominio.com.br
                  limit: 500
                  sent: 120
                  skySender: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/box/1/smtp-active'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/smtp-sender:
    get:
      tags:
      - Envios SMTP
      summary: Listar remetentes SMTP autorizados
      description: Retorna a lista de remetentes SMTP autorizados para a caixa postal informada.
      operationId: get_smtp_out_box_smtp_sender
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: mailbox
        in: query
        required: false
        description: Caixa postal para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - usuario@meudominio.com.br
                - noreply@meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/box/1/smtp-sender?mailbox=usuario@meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Envios SMTP
      summary: Adicionar remetente SMTP autorizado
      description: Adiciona um ou mais remetentes autorizados para envio SMTP de uma caixa postal.
      operationId: post_smtp_out_box_smtp_sender
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - sender
              properties:
                mailbox:
                  type: string
                  description: Caixa postal de origem.
                  example: usuario@meudominio.com.br
                sender:
                  type: string
                  description: E-mail do remetente autorizado.
                  example: noreply@meudominio.com.br
      responses:
        '200':
          description: Remetente adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/smtp-sender'' --data "mailbox=usuario@meudominio.com.br&sender=noreply@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Envios SMTP
      summary: Remover remetente SMTP autorizado
      description: Remove um remetente autorizado para envio SMTP de uma caixa postal.
      operationId: delete_smtp_out_box_smtp_sender
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - sender
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                sender:
                  type: string
                  description: E-mail do remetente a remover.
                  example: noreply@meudominio.com.br
      responses:
        '200':
          description: Remetente removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/smtp-out/box/1/smtp-sender'' --data "mailbox=usuario@meudominio.com.br&sender=noreply@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/smtp-ip:
    get:
      tags:
      - Envios SMTP
      summary: Listar IPs SMTP autorizados
      description: Retorna a lista de IPs autorizados para envio SMTP de uma caixa postal.
      operationId: get_smtp_out_box_smtp_ip
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: mailbox
        in: query
        required: false
        description: Caixa postal para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - 192.168.0.1
                - 10.0.0.0/24
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/box/1/smtp-ip?mailbox=usuario@meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Envios SMTP
      summary: Adicionar IP SMTP autorizado
      description: Adiciona IPs autorizados para envio SMTP de uma caixa postal. Aceita notação CIDR.
      operationId: post_smtp_out_box_smtp_ip
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - ip
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                ip:
                  type: array
                  items:
                    type: string
                  description: Lista de IPs a autorizar (enviar como ip[]).
      responses:
        '200':
          description: IPs adicionados com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/smtp-ip'' --data "mailbox=usuario@meudominio.com.br&ip[]=192.168.0.1&ip[]=10.0.0.0/24" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Envios SMTP
      summary: Remover IP SMTP autorizado
      description: Remove um IP autorizado para envio SMTP de uma caixa postal.
      operationId: delete_smtp_out_box_smtp_ip
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: mailbox
        in: query
        required: true
        description: Caixa postal.
        schema:
          type: string
      - name: ip
        in: query
        required: true
        description: IP a remover.
        schema:
          type: string
      responses:
        '200':
          description: IP removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/smtp-out/box/1/smtp-ip?mailbox=usuario@meudominio.com.br&ip=192.168.0.1'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/update-limit:
    post:
      tags:
      - Envios SMTP
      summary: Atualizar limite de envio SMTP
      description: Atualiza o limite de envio SMTP de uma caixa postal.
      operationId: post_smtp_out_box_update_limit
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                limit:
                  type: integer
                  description: Novo limite de envio. Se omitido ou zero, remove o limite personalizado.
                  example: 500
      responses:
        '200':
          description: Limite atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: []
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/update-limit'' --data "mailbox=usuario@meudominio.com.br&limit=500" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/box/{clientId}/sky-sender/update:
    post:
      tags:
      - Envios SMTP
      summary: Atualizar status do SkySender
      description: Ativa ou desativa o SkySender para uma caixa postal SMTP.
      operationId: post_smtp_out_box_sky_sender_update
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - mailbox
              - skySender
              properties:
                mailbox:
                  type: string
                  description: Caixa postal.
                  example: usuario@meudominio.com.br
                skySender:
                  type: string
                  enum:
                  - 'true'
                  - 'false'
                  description: Status do SkySender (true para ativar, false para desativar).
                  example: 'true'
      responses:
        '200':
          description: Status atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data: {}
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/box/1/sky-sender/update'' --data "mailbox=usuario@meudominio.com.br&skySender=true" -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/dkim/{domain}/{selector}:
    get:
      tags:
      - Envios SMTP
      summary: Consultar registro DKIM
      description: Verifica o registro DKIM para o domínio e seletor informados.
      operationId: get_smtp_out_dkim_check
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio.
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        description: Seletor DKIM.
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: Registro encontrado.
          content:
            application/json:
              example:
                success: true
                data:
                  domain: meudominio.com.br
                  selector: skymail
                  publicKey: 'v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...'
        '404':
          description: Registro não encontrado.
          content:
            application/json:
              example:
                success: false
                message: Not found record on redis
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Envios SMTP
      summary: Registrar DKIM
      description: Registra a configuração DKIM para o domínio e seletor informados.
      operationId: post_smtp_out_dkim_register
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: DKIM registrado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  domain: meudominio.com.br
                  selector: skymail
                  publicKey: 'v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...'
        '404':
          description: Erro no registro.
          content:
            application/json:
              example:
                success: false
                data: []
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Envios SMTP
      summary: Remover DKIM
      description: Remove a configuração DKIM (LDAP e DNS) para o domínio e seletor informados.
      operationId: delete_smtp_out_dkim
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: DKIM removido com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/dkim/{domain}/{selector}/configuration:
    post:
      tags:
      - Envios SMTP
      summary: Configuração automática de DKIM
      description: Executa a configuração automática do DKIM para o domínio e seletor informados, incluindo geração de chaves e configuração DNS.
      operationId: post_smtp_out_dkim_auto_configuration
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: Configuração realizada com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro na configuração.
          content:
            application/json:
              example:
                success: false
                message: Configuration error
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail/configuration'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/dkim/{domain}/{selector}/ldap-validation:
    post:
      tags:
      - Envios SMTP
      summary: Validar DKIM no LDAP
      description: Valida e aplica a configuração DKIM no LDAP para o domínio e seletor informados.
      operationId: post_smtp_out_dkim_ldap_validation
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: selector
        in: path
        required: true
        schema:
          type: string
          example: skymail
      responses:
        '200':
          description: Validação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                message: Configuration completed successfully.
        '404':
          description: Não foi possível realizar a configuração.
          content:
            application/json:
              example:
                success: false
                message: Unable to perform configuration.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/dkim/meudominio.com.br/skymail/ldap-validation'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/spf/{domain}/is-skymail:
    get:
      tags:
      - Envios SMTP
      summary: Verificar SPF aponta para Skymail
      description: Verifica se a configuração de SPF do domínio aponta para os servidores Skymail.
      operationId: get_smtp_out_spf_is_skymail
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para verificação.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Verificação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                isSkymail: true
        '400':
          description: SPF não aponta para Skymail.
          content:
            application/json:
              example:
                success: false
                message: SPF does not point to Skymail
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/smtp-out/spf/meudominio.com.br/is-skymail'' -H ''Authorization: bearer jwt.token.generated'''
  /smtp-out/spf/{domain}:
    post:
      tags:
      - Envios SMTP
      summary: Registrar SPF
      description: Registra a configuração de SPF para o domínio informado.
      operationId: post_smtp_out_spf_register
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio para configuração.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: SPF registrado com sucesso.
          content:
            application/json:
              example:
                success: true
        '400':
          description: Erro no registro.
          content:
            application/json:
              example:
                success: false
                message: Registration error
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/smtp-out/spf/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''

  /hosting/php-version:
    get:
      tags:
      - Hospedagem
      summary: Listar versões de PHP disponíveis
      description: Retorna a lista de versões de PHP disponíveis globalmente para configuração de hospedagem.
      operationId: get_hosting_php_version_all
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - "7.4"
                - "8.0"
                - "8.1"
                - "8.2"
                - "8.3"
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/php-version'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/preview:
    get:
      tags:
      - Hospedagem
      summary: Obter URL de pré-visualização
      description: Retorna a URL de pré-visualização do site de hospedagem.
      operationId: get_hosting_preview
      parameters:
      - name: domain
        in: path
        required: true
        description: Domínio da hospedagem.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  preview: "https://preview.meudominio.com.br"
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/preview'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/subdomain:
    get:
      tags:
      - Hospedagem
      summary: Listar subdomínios
      description: Retorna a lista paginada de subdomínios da hospedagem.
      operationId: get_hosting_subdomain_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: name
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: ASC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: blog.meudominio.com.br
                  documentRoot: /var/www/blog
                - name: loja.meudominio.com.br
                  documentRoot: /var/www/loja
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Criar subdomínio
      description: Cria um novo subdomínio para a hospedagem informada.
      operationId: post_hosting_subdomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do subdomínio.
                  example: blog
      responses:
        '201':
          description: Subdomínio criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: blog.meudominio.com.br
                  documentRoot: /var/www/blog
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain'' --data "name=blog" -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/subdomain/{subDomainName}:
    get:
      tags:
      - Hospedagem
      summary: Consultar subdomínio
      description: Retorna as informações de um subdomínio específico.
      operationId: get_hosting_subdomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: subDomainName
        in: path
        required: true
        description: Nome do subdomínio.
        schema:
          type: string
          example: blog
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: blog.meudominio.com.br
                  documentRoot: /var/www/blog
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain/blog'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Hospedagem
      summary: Excluir subdomínio
      description: Exclui um subdomínio da hospedagem.
      operationId: delete_hosting_subdomain
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: subDomainName
        in: path
        required: true
        schema:
          type: string
          example: blog
      responses:
        '200':
          description: Subdomínio excluído com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/subdomain/blog'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/certificate:
    get:
      tags:
      - Hospedagem
      summary: Listar certificados SSL
      description: Retorna a lista de certificados SSL instalados na hospedagem.
      operationId: get_hosting_certificate_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: meudominio.com.br
                  validFrom: '2025-01-01T00:00:00Z'
                  validTo: '2025-12-31T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/certificate/lets-encrypt:
    get:
      tags:
      - Hospedagem
      summary: Consultar certificado Let's Encrypt
      description: Retorna as informações do certificado Let's Encrypt da hospedagem.
      operationId: get_hosting_certificate_lets_encrypt
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  validFrom: '2025-01-01T00:00:00Z'
                  validTo: '2025-12-31T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/lets-encrypt'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Instalar certificado Let's Encrypt
      description: Solicita a instalação de um certificado Let's Encrypt para a hospedagem.
      operationId: post_hosting_certificate_lets_encrypt
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Certificado instalado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  validFrom: '2025-06-25T00:00:00Z'
                  validTo: '2025-09-23T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/lets-encrypt'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Hospedagem
      summary: Excluir certificado Let's Encrypt
      description: Remove o certificado Let's Encrypt da hospedagem.
      operationId: delete_hosting_certificate_lets_encrypt
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                force:
                  type: string
                  enum: ['true', 'false']
                  default: 'false'
                  description: Se true, força a remoção.
      responses:
        '200':
          description: Certificado removido com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/lets-encrypt'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/certificate/{certName}:
    get:
      tags:
      - Hospedagem
      summary: Consultar certificado SSL
      description: Retorna as informações de um certificado SSL específico.
      operationId: get_hosting_certificate
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: certName
        in: path
        required: true
        description: Nome do certificado.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  validFrom: '2025-01-01T00:00:00Z'
                  validTo: '2025-12-31T23:59:59Z'
                  issuer: Let's Encrypt
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Hospedagem
      summary: Excluir certificado SSL
      description: Remove um certificado SSL da hospedagem.
      operationId: delete_hosting_certificate
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: certName
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                force:
                  type: string
                  enum: ['true', 'false']
                  default: 'false'
                  description: Se true, força a remoção.
      responses:
        '200':
          description: Certificado removido com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/hosting/meudominio.com.br/certificate/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup:
    get:
      tags:
      - Hospedagem
      summary: Listar backups do site
      description: Retorna a lista paginada de backups do site de hospedagem.
      operationId: get_hosting_backup_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_backup
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 135152
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 524288000
                  status: completed
                - id: 135100
                  date_backup: '2025-06-13T03:00:00Z'
                  size: 512000000
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de backup do site
      description: Retorna a lista paginada de restaurações de backup do site.
      operationId: get_hosting_backup_restore_list
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 54
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
                - id: 53
                  date_restore: '2025-06-14T09:15:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/restore?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/{name}:
    get:
      tags:
      - Hospedagem
      summary: Consultar backup do site
      description: Retorna as informações de um backup específico do site.
      operationId: get_hosting_backup
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: name
        in: path
        required: true
        description: Nome/ID do backup.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 135152
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 524288000
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/{id}/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de um backup do site
      description: Retorna a lista paginada de restaurações de um backup específico do site.
      operationId: get_hosting_backup_restore_by_id
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        description: ID do backup.
        schema:
          type: integer
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 54
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152/restore'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Restaurar backup do site
      description: Solicita a restauração de um backup específico do site de hospedagem.
      operationId: post_hosting_backup_restore
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        description: ID do backup a restaurar.
        schema:
          type: integer
      responses:
        '200':
          description: Restauração solicitada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 55
                  date_restore: '2025-06-25T14:00:00Z'
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152/restore'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/backup/{id}/restore/{restoreId}:
    get:
      tags:
      - Hospedagem
      summary: Consultar restauração de backup do site
      description: Retorna as informações de uma restauração específica de um backup do site.
      operationId: get_hosting_backup_restore_detail
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: restoreId
        in: path
        required: true
        description: ID da restauração.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 54
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/backup/135152/restore/54'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/backup:
    get:
      tags:
      - Hospedagem
      summary: Listar backups de todos os bancos de dados
      description: Retorna a lista paginada de backups de todos os bancos de dados da hospedagem.
      operationId: get_hosting_database_backup_all
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_backup
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 6
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 10485760
                  status: completed
                - id: 5
                  date_backup: '2025-06-13T03:00:00Z'
                  size: 10240000
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/backup?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/backup/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de todos os bancos de dados
      description: Retorna a lista paginada de restaurações de backup de todos os bancos de dados.
      operationId: get_hosting_database_backup_restore_all
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/backup/restore?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup:
    get:
      tags:
      - Hospedagem
      summary: Listar backups de um banco de dados
      description: Retorna a lista paginada de backups de um banco de dados específico.
      operationId: get_hosting_database_backup
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        description: Nome do banco de dados.
        schema:
          type: string
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_backup
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 6
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 10485760
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup?page_size=10'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de backup de um banco
      description: Retorna a lista paginada de restaurações de backup de um banco de dados específico.
      operationId: get_hosting_database_backup_restore
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/restore'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/{backupId}:
    get:
      tags:
      - Hospedagem
      summary: Consultar backup de banco de dados
      description: Retorna as informações de um backup específico de um banco de dados.
      operationId: get_hosting_database_backup_detail
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        description: ID do backup.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 6
                  date_backup: '2025-06-20T03:00:00Z'
                  size: 10485760
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/{backupId}/restore:
    get:
      tags:
      - Hospedagem
      summary: Listar restaurações de um backup de banco
      description: Retorna a lista paginada de restaurações de um backup específico de banco de dados.
      operationId: get_hosting_database_backup_restore_by_id
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: integer
      - name: sort_field
        in: query
        required: false
        schema:
          type: string
          default: date_restore
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          enum: [ASC, DESC]
          default: DESC
      - name: page_number
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6/restore'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Hospedagem
      summary: Restaurar backup de banco de dados
      description: Solicita a restauração de um backup específico de banco de dados.
      operationId: post_hosting_database_backup_restore
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Restauração solicitada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 8
                  date_restore: '2025-06-25T14:00:00Z'
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6/restore'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/database/{databaseName}/backup/{backupId}/restore/{restoreId}:
    get:
      tags:
      - Hospedagem
      summary: Consultar restauração de backup de banco
      description: Retorna as informações de uma restauração específica de um backup de banco de dados.
      operationId: get_hosting_database_backup_restore_detail
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: databaseName
        in: path
        required: true
        schema:
          type: string
      - name: backupId
        in: path
        required: true
        schema:
          type: integer
      - name: restoreId
        in: path
        required: true
        description: ID da restauração.
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 7
                  date_restore: '2025-06-21T10:30:00Z'
                  status: completed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/database/meudb/backup/6/restore/7'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/dns/check:
    get:
      tags:
      - Hospedagem
      summary: Verificar DNS da hospedagem
      description: Verifica o status de configuração DNS para o domínio de hospedagem.
      operationId: get_hosting_dns_check
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  configured: true
                  domain: meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/hosting/meudominio.com.br/dns/check'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/dns/zone:
    post:
      tags:
      - Hospedagem
      summary: Criar zona DNS da hospedagem
      description: Cria uma zona de DNS para o domínio de hospedagem.
      operationId: post_hosting_dns_zone
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Zona DNS criada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  zone: meudominio.com.br
                  created: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/dns/zone'' -H ''Authorization: bearer jwt.token.generated'''
  /hosting/{domain}/dns/entries:
    post:
      tags:
      - Hospedagem
      summary: Criar entradas DNS da hospedagem
      description: Cria as entradas de DNS necessárias para o domínio de hospedagem.
      operationId: post_hosting_dns_entries
      parameters:
      - name: domain
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do domínio para as entradas DNS.
                  example: meudominio.com.br
      responses:
        '200':
          description: Entradas DNS criadas com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  domain: meudominio.com.br
                  entries_created: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/hosting/meudominio.com.br/dns/entries'' --data "name=meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''

  /domain-register/{provider}/domain/{name}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar domínio registrado
      description: Retorna as informações de um domínio registrado no provedor informado.
      operationId: get_domain_register_provider_domain
      parameters:
      - name: provider
        in: path
        required: true
        description: ID do provedor de registro.
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome do domínio.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: active
                  expirationDate: '2026-06-25'
                  autorenew: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Registro de Domínio
      summary: Remover domínio registrado
      description: Remove um domínio do registro no provedor informado.
      operationId: delete_domain_register_domain
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Domínio removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: removed
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/detail:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar detalhes de domínio registrado
      description: Retorna os detalhes de um domínio registrado, incluindo informações de organização e status.
      operationId: get_domain_register_domain_detail
      parameters:
      - name: domain
        in: query
        required: true
        description: Nome do domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: active
                  expirationDate: '2026-06-25'
                  autorenew: true
                  organization: Empresa Exemplo Ltda
                  document: '00.000.000/0001-00'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/domain/detail?domain=meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/cost/{clientId}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar custo de registro por cliente
      description: Retorna o custo de registro de domínio para o cliente informado.
      operationId: get_domain_register_cost
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  cost: 40.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/cost/1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/domain/{name}/renew:
    post:
      tags:
      - Registro de Domínio
      summary: Renovar domínio
      description: Solicita a renovação de um domínio registrado. O tempo de renovação pode ser de 1 a 10 anos.
      operationId: post_domain_register_domain_renew
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - document
              properties:
                client_id:
                  type: integer
                  description: ID do cliente.
                  example: 1
                document:
                  type: string
                  description: CPF ou CNPJ do titular.
                  example: '00.000.000/0001-00'
                renew_time:
                  type: integer
                  description: Tempo de renovação em anos (1–10, padrão 1).
                  default: 1
                  example: 1
      responses:
        '200':
          description: Domínio renovado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: meudominio.com.br
                  status: active
                  expirationDate: '2027-06-25'
                  autorenew: true
        '400':
          description: Parâmetro inválido.
          content:
            application/json:
              example:
                success: false
                message: The parameter client_id was not sent.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br/renew'' --data "client_id=1&document=00.000.000/0001-00&renew_time=1" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/domain/{name}/ticket/{ticket}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar ticket de domínio
      description: Retorna as informações de um ticket associado a um domínio registrado.
      operationId: get_domain_register_domain_ticket
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: ticket
        in: path
        required: true
        description: Identificador do ticket.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: '12345'
                  domain: meudominio.com.br
                  status: pending
                  date: '2025-06-20T10:00:00Z'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/domain/meudominio.com.br/ticket/12345'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/transfer/check:
    post:
      tags:
      - Registro de Domínio
      summary: Verificar transferência de domínio
      description: Verifica o status de transferência para os domínios informados.
      operationId: post_domain_register_transfer_check
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - domains
              properties:
                domains:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a verificar (enviar como domains[]).
      responses:
        '200':
          description: Verificação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - domain: meudominio.com.br
                  transferable: true
                  status: available
                - domain: outrodominio.com.br
                  transferable: false
                  status: locked
        '400':
          description: Parâmetro inválido.
          content:
            application/json:
              example:
                success: false
                message: The parameter domains must be an array.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/domain/transfer/check'' --data "domains[]=meudominio.com.br&domains[]=outrodominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/transfer/document/check:
    post:
      tags:
      - Registro de Domínio
      summary: Verificar transferência por documento
      description: Verifica o status de transferência de domínios associados ao documento (CPF/CNPJ) informado.
      operationId: post_domain_register_transfer_document_check
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - document
              properties:
                document:
                  type: string
                  description: CPF ou CNPJ para verificação.
                  example: '00.000.000/0001-00'
      responses:
        '200':
          description: Verificação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - domain: meudominio.com.br
                  transferable: true
                  status: available
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/domain/transfer/document/check'' --data "document=00.000.000/0001-00" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/domain/transfer/start:
    post:
      tags:
      - Registro de Domínio
      summary: Iniciar transferência de domínio
      description: Inicia o processo de transferência de domínios para o cliente informado.
      operationId: post_domain_register_transfer_start
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - document
              - domains
              properties:
                client_id:
                  type: integer
                  description: ID do cliente.
                  example: 1
                document:
                  type: string
                  description: CPF ou CNPJ do titular.
                  example: '00.000.000/0001-00'
                domains:
                  type: array
                  items:
                    type: string
                  description: Lista de domínios a transferir (enviar como domains[]).
      responses:
        '200':
          description: Transferência iniciada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  client_id: 1
                  document: '00.000.000/0001-00'
                  domains:
                  - meudominio.com.br
        '400':
          description: Parâmetro inválido.
          content:
            application/json:
              example:
                success: false
                message: Invalid payload.
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/domain/transfer/start'' --data "client_id=1&document=00.000.000/0001-00&domains[]=meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/organization:
    get:
      tags:
      - Registro de Domínio
      summary: Listar organizações
      description: Retorna a lista de organizações cadastradas para o provedor informado, com filtros opcionais por texto, cliente e status.
      operationId: get_domain_register_organization_list
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: query
        in: query
        required: false
        description: Texto para busca.
        schema:
          type: string
      - name: client_id
        in: query
        required: false
        description: ID do cliente para filtro.
        schema:
          type: integer
      - name: status
        in: query
        required: false
        description: Filtro por status (0 = inativo, 1 = ativo).
        schema:
          type: integer
          enum: [0, 1]
      - name: page
        in: query
        required: false
        schema:
          type: integer
      - name: pagesize
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/organization?client_id=1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/organization/{name}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar organização
      description: Retorna as informações de uma organização específica no provedor informado.
      operationId: get_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome/documento da organização.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Registro de Domínio
      summary: Criar organização
      description: Cadastra uma nova organização no provedor de registro de domínio.
      operationId: post_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Documento da organização (CPF ou CNPJ).
        schema:
          type: string
      responses:
        '200':
          description: Organização criada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
    patch:
      tags:
      - Registro de Domínio
      summary: Atualizar organização
      description: Atualiza os dados de uma organização no provedor de registro.
      operationId: patch_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Organização atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PATCH ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Registro de Domínio
      summary: Remover organização
      description: Remove uma organização do provedor de registro.
      operationId: delete_domain_register_organization
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Organização removida com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
                  status: 0
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/organization/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/organization/{domain}/brorg:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar organização BR de um domínio
      description: Retorna o documento e nome da organização associada ao domínio no provedor informado.
      operationId: get_domain_register_organization_brorg
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: domain
        in: path
        required: true
        description: Domínio para consulta.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  document: '00.000.000/0001-00'
                  name: Empresa Exemplo Ltda
        '404':
          description: Domínio não encontrado ou expirado.
          content:
            application/json:
              example:
                success: false
                message: Domain not found
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/organization/meudominio.com.br/brorg'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact:
    post:
      tags:
      - Registro de Domínio
      summary: Criar contato
      description: Cadastra um novo contato para registro de domínio no provedor informado.
      operationId: post_domain_register_contact
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Nome do contato.
                email:
                  type: string
                  description: E-mail do contato.
                phone:
                  type: string
                  description: Telefone do contato.
      responses:
        '200':
          description: Contato criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: Contato Exemplo
                  email: contato@meudominio.com.br
                  phone: '+5511999990000'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/contact'' --data "name=Contato+Exemplo&email=contato@meudominio.com.br" -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact/{name}:
    get:
      tags:
      - Registro de Domínio
      summary: Listar contatos por nome/documento
      description: Retorna a lista de contatos associados ao nome ou documento informado.
      operationId: get_domain_register_contact_list
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome ou documento para filtro.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - name: Contato Exemplo
                  email: contato@meudominio.com.br
                  phone: '+5511999990000'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/contact/00.000.000-0001-00'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact/{name}/type/{type}/contactName/{contactName}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar contato por tipo
      description: Retorna as informações de um contato específico por tipo e nome.
      operationId: get_domain_register_contact
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome/documento da organização.
        schema:
          type: string
      - name: type
        in: path
        required: true
        description: Tipo do contato.
        schema:
          type: string
      - name: contactName
        in: path
        required: true
        description: Nome do contato.
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: Contato Exemplo
                  email: contato@meudominio.com.br
                  phone: '+5511999990000'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/contact/orgname/type/admin/contactName/contato1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/contact/{name}/contactname/{contactName}:
    delete:
      tags:
      - Registro de Domínio
      summary: Remover contato
      description: Remove um contato de registro de domínio.
      operationId: delete_domain_register_contact
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome/documento da organização.
        schema:
          type: string
      - name: contactName
        in: path
        required: true
        description: Nome do contato a remover.
        schema:
          type: string
      responses:
        '200':
          description: Contato removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  name: Contato Exemplo
                  removed: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/contact/orgname/contactname/contato1'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/nameserver/{name}:
    post:
      tags:
      - Registro de Domínio
      summary: Criar nameserver
      description: Cadastra um novo nameserver para o domínio no provedor informado.
      operationId: post_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome do domínio.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Nameserver criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    patch:
      tags:
      - Registro de Domínio
      summary: Atualizar nameservers
      description: Atualiza os nameservers configurados para o domínio no provedor informado.
      operationId: patch_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        description: Nome do domínio.
        schema:
          type: string
          example: meudominio.com.br
      responses:
        '200':
          description: Nameservers atualizados com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PATCH ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/{provider}/nameserver/{name}/hostname/{hostname}:
    get:
      tags:
      - Registro de Domínio
      summary: Consultar nameserver
      description: Retorna as informações de um nameserver específico.
      operationId: get_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: hostname
        in: path
        required: true
        description: Hostname do nameserver.
        schema:
          type: string
          example: ns1.meudominio.com.br
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br/hostname/ns1.meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Registro de Domínio
      summary: Remover nameserver
      description: Remove um nameserver do domínio.
      operationId: delete_domain_register_nameserver
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: path
        required: true
        schema:
          type: string
          example: meudominio.com.br
      - name: hostname
        in: path
        required: true
        schema:
          type: string
          example: ns1.meudominio.com.br
      responses:
        '200':
          description: Nameserver removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  hostname: ns1.meudominio.com.br
                  removed: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/domain-register/1/nameserver/meudominio.com.br/hostname/ns1.meudominio.com.br'' -H ''Authorization: bearer jwt.token.generated'''
  /domain-register/ticket/pending/{clientId}/{document}:
    get:
      tags:
      - Registro de Domínio
      summary: Listar tickets pendentes
      description: Retorna a lista de tickets pendentes de registro de domínio para o cliente e documento informados.
      operationId: get_domain_register_ticket_pending
      parameters:
      - name: clientId
        in: path
        required: true
        description: ID do cliente.
        schema:
          type: integer
          example: 1
      - name: document
        in: path
        required: true
        description: CPF ou CNPJ do titular.
        schema:
          type: string
          example: '00.000.000/0001-00'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - id: '67890'
                  status: pending
                  date: '2025-06-20T10:00:00Z'
                - id: '67891'
                  status: pending
                  date: '2025-06-22T14:30:00Z'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/domain-register/ticket/pending/1/00.000.000%2F0001-00'' -H ''Authorization: bearer jwt.token.generated'''

  /cloud/billing:
    get:
      tags:
      - Cloud
      summary: Listar cobranças de Cloud
      description: Retorna as cobranças de Cloud por cliente e contrato, com filtro por competência.
      operationId: get_cloud_billing
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      - name: contract
        in: query
        required: true
        schema:
          type: integer
      - name: reference[]
        in: query
        required: false
        description: Competências para filtro (formato YYYYMM).
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                total: 1250.75
                data:
                - competence: '202506'
                  value: 1250.75
                  status: open
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/billing?client=1&contract=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/billing/competences:
    get:
      tags:
      - Cloud
      summary: Listar competências de cobrança
      description: Retorna os períodos de competência de cobrança de Cloud por cliente e contrato.
      operationId: get_cloud_billing_competences
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      - name: contract
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 3
                data:
                - '202504'
                - '202505'
                - '202506'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/billing/competences?client=1&contract=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/billing/summary:
    get:
      tags:
      - Cloud
      summary: Resumo de cobranças de Cloud
      description: Retorna o resumo das últimas cobranças de Cloud por cliente e contrato.
      operationId: get_cloud_billing_summary
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      - name: contract
        in: query
        required: true
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Quantidade de períodos a retornar (padrão 6).
        schema:
          type: integer
          default: 6
      - name: children
        in: query
        required: false
        description: Incluir clientes filhos.
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                data:
                - competence: '202505'
                  value: 1180.00
                  status: closed
                - competence: '202506'
                  value: 1250.75
                  status: open
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/billing/summary?client=1&contract=1&limit=6'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/contract:
    get:
      tags:
      - Cloud
      summary: Listar contratos de Cloud
      description: Retorna os contratos de Cloud (reservado/on-demand/dedutível) para o cliente informado.
      operationId: get_cloud_contract
      parameters:
      - name: client
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - id: 101
                  type: on-demand
                  client: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/contract?client=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/tag/reserved:
    get:
      tags:
      - Cloud
      summary: Listar tags reservadas
      description: Retorna a lista de chaves de tags reservadas do sistema Cloud.
      operationId: get_cloud_tag_reserved
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                - billing-group
                - billing-item
                - service-offering
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/tag/reserved'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/{id}:
    put:
      tags:
      - Cloud
      summary: Atualizar projeto
      description: Atualiza a descrição de um projeto CloudStack.
      operationId: put_cloud_zone_project
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: id
        in: path
        required: true
        description: ID do projeto (UUID).
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - displaytext
              - account
              properties:
                displaytext:
                  type: string
                  description: Nova descrição do projeto.
                account:
                  type: integer
                  description: ID da conta CloudStack.
      responses:
        '200':
          description: Projeto atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  displaytext: Projeto Atualizado
                  state: Active
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/1/project/uuid-here'' --data "displaytext=Novo+Nome&account=8" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Excluir projeto
      description: Exclui um projeto CloudStack.
      operationId: delete_cloud_zone_project
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
          example: 1
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - confirm
              properties:
                confirm:
                  type: string
                  enum: ['true']
                  description: Confirmação de exclusão (deve ser true).
      responses:
        '200':
          description: Projeto excluído com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  state: Disabled
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/1/project/uuid-here'' --data "confirm=true" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/{id}/suspend:
    put:
      tags:
      - Cloud
      summary: Suspender projeto
      description: Suspende um projeto CloudStack ativo.
      operationId: put_cloud_zone_project_suspend
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - confirm
              properties:
                confirm:
                  type: string
                  enum: ['true']
      responses:
        '200':
          description: Projeto suspenso com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  state: Suspended
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/1/project/uuid-here/suspend'' --data "confirm=true" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/{id}/activate:
    put:
      tags:
      - Cloud
      summary: Ativar projeto
      description: Ativa um projeto CloudStack suspenso.
      operationId: put_cloud_zone_project_activate
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - confirm
              properties:
                confirm:
                  type: string
                  enum: ['true']
      responses:
        '200':
          description: Projeto ativado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  name: meu-projeto
                  state: Active
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/1/project/uuid-here/activate'' --data "confirm=true" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/project/payment-info:
    post:
      tags:
      - Cloud
      summary: Vincular informação de pagamento ao projeto
      description: Vincula uma informação de pagamento a um projeto CloudStack.
      operationId: post_cloud_zone_project_payment_info
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - project_id
              - payment_info_id
              properties:
                client_id:
                  type: integer
                project_id:
                  type: string
                  format: uuid
                payment_info_id:
                  type: integer
                domainid:
                  type: string
                  format: uuid
      responses:
        '200':
          description: Vinculação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  client_id: 1
                  project_id: 936122fb-1bd6-4482-b43d-80bb72794b18
                  payment_info_id: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/project/payment-info'' --data "client_id=1&project_id=uuid&payment_info_id=1" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Desvincular informação de pagamento do projeto
      description: Remove a vinculação de informação de pagamento de um projeto CloudStack.
      operationId: delete_cloud_zone_project_payment_info
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: client_id
        in: query
        required: true
        schema:
          type: integer
      - name: project_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
      - name: payment_info_id
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Desvinculação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/1/project/payment-info?client_id=1&project_id=uuid&payment_info_id=1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/resource-detail:
    get:
      tags:
      - Cloud
      summary: Listar detalhes de recurso
      description: Retorna os detalhes (metadados/tags) de recursos CloudStack.
      operationId: get_cloud_zone_resource_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: resourcetype
        in: query
        required: true
        description: Tipo do recurso.
        schema:
          type: string
      - name: domainid
        in: query
        required: true
        schema:
          type: string
          format: uuid
      - name: account
        in: query
        required: false
        schema:
          type: integer
      - name: resourceid
        in: query
        required: false
        schema:
          type: string
      - name: key
        in: query
        required: false
        schema:
          type: string
      - name: projectid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - key: billing-group
                  value: producao
                  resourceid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/1/resource-detail?resourcetype=UserVm&domainid=uuid&account=8'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Cloud
      summary: Criar detalhe de recurso
      description: Adiciona um detalhe (metadado) a um recurso CloudStack.
      operationId: post_cloud_zone_resource_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - key
              - value
              - resourceid
              - resourcetype
              properties:
                key:
                  type: string
                value:
                  type: string
                resourceid:
                  type: string
                  format: uuid
                resourcetype:
                  type: string
      responses:
        '200':
          description: Detalhe criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  key: billing-group
                  value: producao
                  resourceid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/resource-detail'' --data "key=nome&value=valor&resourceid=uuid&resourcetype=UserVm" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Remover detalhe de recurso
      description: Remove um detalhe (metadado) de um recurso CloudStack.
      operationId: delete_cloud_zone_resource_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - resourceid
              - resourcetype
              properties:
                resourceid:
                  type: string
                  format: uuid
                resourcetype:
                  type: string
                key:
                  type: string
      responses:
        '200':
          description: Detalhe removido com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  resourceid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  removed: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/1/resource-detail'' --data "resourceid=uuid&resourcetype=UserVm" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/resource-detail/detailoptions:
    get:
      tags:
      - Cloud
      summary: Listar opções de detalhe de recurso
      description: Retorna as opções disponíveis de detalhe para um tipo de recurso.
      operationId: get_cloud_zone_resource_detail_options
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: resourcetype
        in: query
        required: true
        schema:
          type: string
      - name: resourceid
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 2
                data:
                - billing-group
                - billing-item
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/1/resource-detail/detailoptions?resourcetype=UserVm'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/usage/client/{clientId}/contract/{contractId}:
    get:
      tags:
      - Cloud
      summary: Consultar uso de Cloud por contrato
      description: Retorna os dados de uso de Cloud por cliente e contrato no período informado.
      operationId: get_cloud_usage_client_contract
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
      - name: contractId
        in: path
        required: true
        schema:
          type: integer
      - name: datefrom
        in: query
        required: true
        description: Data de início (formato YYYY-MM-DD).
        schema:
          type: string
          format: date
      - name: dateto
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: type[]
        in: query
        required: false
        description: Tipos de uso para filtro.
        schema:
          type: array
          items:
            type: string
      - name: children
        in: query
        required: false
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '0'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                data:
                - type: compute
                  description: Running VM
                  rawusage: 720.5
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/usage/client/1/contract/1?datefrom=2024-01-01'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/usage/client/{clientId}/contract/{contractId}/forecast:
    get:
      tags:
      - Cloud
      summary: Previsão de uso de Cloud
      description: Retorna a previsão de uso de Cloud para o contrato informado.
      operationId: get_cloud_usage_forecast
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
      - name: contractId
        in: path
        required: true
        schema:
          type: integer
      - name: children
        in: query
        required: false
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '0'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  forecast: 1350.00
                  period: '202506'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/usage/client/1/contract/1/forecast'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/usage/client/{clientId}/open-period-statement:
    get:
      tags:
      - Cloud
      summary: Extrato do período aberto de Cloud
      description: Retorna os dados de uso on-demand do período de cobrança aberto para o cliente informado.
      operationId: get_cloud_usage_open_period
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
      - name: contractId
        in: query
        required: false
        schema:
          type: integer
      - name: children
        in: query
        required: false
        schema:
          type: string
          enum: ['0', '1', 'true', 'false']
          default: '1'
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  total: 980.50
                  period: '202506'
                  status: open
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/usage/client/1/open-period-statement'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/vpn-connection/{vpnConnectionId}:
    get:
      tags:
      - Cloud
      summary: Consultar conexão VPN
      description: Retorna as informações de uma conexão VPN específica.
      operationId: get_cloud_zone_vpn_connection_detail
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: vpnConnectionId
        in: path
        required: true
        description: ID da conexão VPN (UUID).
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  state: Connected
                  gateway: 10.0.0.1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/1/vpn-connection/uuid-here'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/{zone}/virtual-machine/batch:
    post:
      tags:
      - Cloud
      summary: Criar máquinas virtuais em lote
      description: Cria múltiplas máquinas virtuais via workflow assíncrono.
      operationId: post_cloud_zone_virtual_machine_batch
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Payload de criação em lote contendo account ou projectid, templateid, serviceofferingid, domainid e demais configurações das VMs.
      responses:
        '200':
          description: Workflow de criação em lote iniciado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: vm-batch-creation
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/virtual-machine/batch'' -H ''Content-Type: application/json'' -H ''Authorization: bearer jwt.token.generated'' -d ''{}'''
  /cloud/{zone}/virtual-machine/{id}/console:
    post:
      tags:
      - Cloud
      summary: Acessar console da máquina virtual
      description: Gera um endpoint de console (VNC/noVNC) para acesso à máquina virtual.
      operationId: post_cloud_zone_virtual_machine_console
      parameters:
      - name: zone
        in: path
        required: true
        schema:
          type: integer
      - name: id
        in: path
        required: true
        description: ID da máquina virtual (UUID).
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Console criado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  url: 'https://console.cloud.meudominio.com.br/vnc?token=abc123'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/1/virtual-machine/uuid-here/console'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation:
    get:
      tags:
      - Cloud
      summary: Listar cotações de Cloud
      description: Retorna a lista paginada de cotações de recursos Cloud.
      operationId: get_cloud_quotation
      parameters:
      - name: client
        in: query
        required: false
        schema:
          type: integer
      - name: status
        in: query
        required: false
        schema:
          type: integer
      - name: name
        in: query
        required: false
        schema:
          type: string
      - name: id_or_name
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 10
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 1
                limit: 10
                page: 1
                data:
                - id: 1
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation?client=1&limit=10&page=1'' -H ''Authorization: bearer jwt.token.generated'''
    post:
      tags:
      - Cloud
      summary: Criar cotação de Cloud
      description: Cria uma nova cotação de recursos Cloud.
      operationId: post_cloud_quotation
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - name
              - toolVersion
              - deductibleAmount
              - itemsAmount
              - status
              - content
              properties:
                name:
                  type: string
                toolVersion:
                  type: integer
                deductibleAmount:
                  type: number
                itemsAmount:
                  type: number
                status:
                  type: integer
                content:
                  type: string
                client:
                  type: integer
      responses:
        '200':
          description: Cotação criada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 2
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation'' --data "name=Cotacao&toolVersion=1&deductibleAmount=100&itemsAmount=200&status=1&content=json" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/status:
    get:
      tags:
      - Cloud
      summary: Listar status de cotação
      description: Retorna os status disponíveis para cotações de Cloud.
      operationId: get_cloud_quotation_status
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                count: 3
                data:
                - id: 1
                  name: Rascunho
                - id: 2
                  name: Aprovado
                - id: 3
                  name: Cancelado
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation/status'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}:
    get:
      tags:
      - Cloud
      summary: Consultar cotação
      description: Retorna os detalhes de uma cotação de Cloud específica.
      operationId: get_cloud_quotation_detail
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Requisição efetuada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation/1'' -H ''Authorization: bearer jwt.token.generated'''
    put:
      tags:
      - Cloud
      summary: Atualizar cotação
      description: Atualiza os dados de uma cotação de Cloud.
      operationId: put_cloud_quotation
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - name
              - toolVersion
              - deductibleAmount
              - itemsAmount
              - status
              - content
              properties:
                name:
                  type: string
                toolVersion:
                  type: integer
                deductibleAmount:
                  type: number
                itemsAmount:
                  type: number
                status:
                  type: integer
                content:
                  type: string
                client:
                  type: integer
      responses:
        '200':
          description: Cotação atualizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: Cotacao Cloud Producao
                  status: 1
                  itemsAmount: 2500.00
                  deductibleAmount: 500.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/quotation/1'' --data "name=Cotacao&toolVersion=1&deductibleAmount=100&itemsAmount=200&status=1&content=json" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Excluir cotação
      description: Exclui uma cotação de Cloud.
      operationId: delete_cloud_quotation
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Cotação excluída com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/quotation/1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}/item:
    post:
      tags:
      - Cloud
      summary: Adicionar item à cotação
      description: Adiciona um novo item a uma cotação de Cloud.
      operationId: post_cloud_quotation_item
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - grouping
              - description
              - productId
              - quantity
              - amount
              - toolVersion
              - content
              properties:
                grouping:
                  type: string
                description:
                  type: string
                productId:
                  type: integer
                quantity:
                  type: integer
                amount:
                  type: number
                toolVersion:
                  type: integer
                content:
                  type: string
      responses:
        '200':
          description: Item adicionado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 10
                  grouping: Compute
                  description: vCPU
                  quantity: 4
                  amount: 100.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation/1/item'' --data "grouping=Compute&description=vCPU&productId=1&quantity=4&amount=100&toolVersion=1&content=json" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}/item/{itemId}:
    put:
      tags:
      - Cloud
      summary: Atualizar item da cotação
      description: Atualiza um item existente de uma cotação de Cloud.
      operationId: put_cloud_quotation_item
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: itemId
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grouping:
                  type: string
                description:
                  type: string
                productId:
                  type: integer
                quantity:
                  type: integer
                amount:
                  type: number
                toolVersion:
                  type: integer
                content:
                  type: string
      responses:
        '200':
          description: Item atualizado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 10
                  grouping: Compute
                  description: vCPU
                  quantity: 8
                  amount: 200.00
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/quotation/1/item/1'' --data "quantity=8&amount=200" -H ''Authorization: bearer jwt.token.generated'''
    delete:
      tags:
      - Cloud
      summary: Excluir item da cotação
      description: Remove um item de uma cotação de Cloud.
      operationId: delete_cloud_quotation_item
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: itemId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Item excluído com sucesso.
          content:
            application/json:
              example:
                success: true
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X DELETE ''https://api.skymail.net.br/cloud/quotation/1/item/1'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/{id}/status/{statusId}:
    put:
      tags:
      - Cloud
      summary: Alterar status da cotação
      description: Altera o status de uma cotação de Cloud.
      operationId: put_cloud_quotation_status
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      - name: statusId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Status alterado com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: Cotacao Cloud Producao
                  status: 2
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X PUT ''https://api.skymail.net.br/cloud/quotation/1/status/2'' -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/import/cloudstack:
    post:
      tags:
      - Cloud
      summary: Importar cotação do CloudStack
      description: Cria uma cotação importando os recursos existentes de um projeto ou conta no CloudStack.
      operationId: post_cloud_quotation_import_cloudstack
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client
              - zone
              properties:
                client:
                  type: integer
                zone:
                  type: integer
                projectid:
                  type: string
                  format: uuid
                children:
                  type: string
                  description: IDs de clientes filhos separados por vírgula, ou * para todos.
      responses:
        '200':
          description: Importação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 1
                  name: import-cloudstack
                  status: pending
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation/import/cloudstack'' --data "client=1&zone=1" -H ''Authorization: bearer jwt.token.generated'''
  /cloud/quotation/import/file:
    get:
      tags:
      - Cloud
      summary: Baixar template de importação de cotação
      description: Retorna o arquivo XLSX modelo para importação de cotação.
      operationId: get_cloud_quotation_import_file_template
      responses:
        '200':
          description: Arquivo XLSX retornado com sucesso.
          content:
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: string
                format: binary
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X GET ''https://api.skymail.net.br/cloud/quotation/import/file'' -H ''Authorization: bearer jwt.token.generated'' -o template.xlsx'
    post:
      tags:
      - Cloud
      summary: Importar cotação de arquivo
      description: Cria uma cotação importando dados de um arquivo XLSX/ODS.
      operationId: post_cloud_quotation_import_file
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - name
              - file
              properties:
                name:
                  type: string
                  description: Nome da cotação.
                client:
                  type: integer
                file:
                  type: string
                  format: binary
                  description: Arquivo XLSX ou ODS (máx. 50MB).
      responses:
        '200':
          description: Importação realizada com sucesso.
          content:
            application/json:
              example:
                success: true
                data:
                  id: 3
                  name: Cotacao Importada
                  status: 1
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: 'curl -i -X POST ''https://api.skymail.net.br/cloud/quotation/import/file'' -F "name=Cotacao" -F "file=@planilha.xlsx" -H ''Authorization: bearer jwt.token.generated'''
  /client/{clientId}/block/holiday:
    post:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Criar feriado(s) para bloqueio do cliente
      description: Cria um ou mais feriados agendados para bloqueio de e-mails em todas
        as caixas postais do cliente.
      operationId: post_client_block_holiday
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem criados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 25
                name: Natal
              - type: single
                year: 2025
                month: 1
                day: 1
                name: Ano Novo
      responses:
        '201':
          description: Feriados criados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  created: 2
                message: Feriados cadastrados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request POST \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=25&holidays[0][name]=Natal&holidays[1][type]=single&holidays[1][year]=2025&holidays[1][month]=1&holidays[1][day]=1&holidays[1][name]=Ano\
          \ Novo'"
    get:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Listar feriados de bloqueio do cliente
      description: Retorna a lista de feriados agendados para bloqueio de e-mails do
        cliente.
      operationId: get_client_block_holiday
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Lista de feriados
          content:
            application/json:
              example:
                success: true
                data:
                - type: fixed
                  month: 12
                  day: 25
                  name: Natal
                  startTime: null
                  endTime: null
                - type: single
                  year: 2025
                  month: 1
                  day: 1
                  name: Ano Novo
                  startTime: null
                  endTime: null
                total: 2
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request GET \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /client/{clientId}/block/holiday/{holidayKey}:
    put:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Atualizar feriado de bloqueio do cliente
      description: Atualiza um feriado agendado para bloqueio de e-mails do cliente.
      operationId: put_client_block_holiday_key
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockScheduledHoliday'
            example:
              type: fixed
              month: 12
              day: 25
              name: Natal atualizado
      responses:
        '200':
          description: Feriado atualizado com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado atualizado com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'type=fixed&month=12&day=25&name=Natal\
          \ atualizado'"
    delete:
      tags:
      - Clientes - Bloqueio de Feriado
      summary: Remover feriado de bloqueio do cliente
      description: Remove um feriado agendado para bloqueio de e-mails do cliente.
      operationId: delete_client_block_holiday_key
      parameters:
      - name: clientId
        in: path
        description: ID do cliente
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Feriado removido com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado removido com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request DELETE \\\n  --url https://api.skymail.net.br/client/{clientId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /template/{templateId}/block/holiday:
    post:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Criar feriado(s) para bloqueio do template
      description: Cria um ou mais feriados agendados para bloqueio de e-mails em todas
        as caixas postais do template.
      operationId: post_template_block_holiday
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem criados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 25
                name: Natal
              - type: single
                year: 2025
                month: 1
                day: 1
                name: Ano Novo
      responses:
        '201':
          description: Feriados criados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  created: 2
                message: Feriados cadastrados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request POST \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=25&holidays[0][name]=Natal&holidays[1][type]=single&holidays[1][year]=2025&holidays[1][month]=1&holidays[1][day]=1&holidays[1][name]=Ano\
          \ Novo'"
    get:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Listar feriados de bloqueio do template
      description: Retorna a lista de feriados agendados para bloqueio de e-mails do
        template.
      operationId: get_template_block_holiday
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Lista de feriados
          content:
            application/json:
              example:
                success: true
                data:
                - type: fixed
                  month: 12
                  day: 25
                  name: Natal
                  startTime: null
                  endTime: null
                - type: single
                  year: 2025
                  month: 1
                  day: 1
                  name: Ano Novo
                  startTime: null
                  endTime: null
                total: 2
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request GET \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /template/{templateId}/block/holiday/{holidayKey}:
    put:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Atualizar feriado de bloqueio do template
      description: Atualiza um feriado agendado para bloqueio de e-mails do template.
      operationId: put_template_block_holiday_key
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockScheduledHoliday'
            example:
              type: fixed
              month: 12
              day: 25
              name: Natal atualizado
      responses:
        '200':
          description: Feriado atualizado com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado atualizado com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'type=fixed&month=12&day=25&name=Natal\
          \ atualizado'"
    delete:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Remover feriado de bloqueio do template
      description: Remove um feriado agendado para bloqueio de e-mails do template.
      operationId: delete_template_block_holiday_key
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Feriado removido com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado removido com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request DELETE \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /template/{templateId}/block/holiday/batch:
    put:
      tags:
      - Templates - Bloqueio de Feriado
      summary: Atualizar feriados em lote para bloqueio do template
      description: Atualiza múltiplos feriados agendados para bloqueio de e-mails do
        template em uma única chamada.
      operationId: put_template_block_holiday_batch
      parameters:
      - name: templateId
        in: path
        description: ID do template
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem atualizados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 24
                name: Véspera de Natal
              - type: fixed
                month: 12
                day: 31
                name: Véspera de Ano Novo
      responses:
        '200':
          description: Feriados atualizados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  updated: 2
                message: Feriados atualizados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/template/{templateId}/block/holiday/batch\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=24&holidays[0][name]=Véspera\
          \ de Natal&holidays[1][type]=fixed&holidays[1][month]=12&holidays[1][day]=31&holidays[1][name]=Véspera\
          \ de Ano Novo'"
  /mailbox/{mailbox}/block/holiday:
    post:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Criar feriado(s) para bloqueio do mailbox
      description: Cria um ou mais feriados agendados para bloqueio de e-mails em todas
        as caixas postais do mailbox.
      operationId: post_mailbox_block_holiday
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem criados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 25
                name: Natal
              - type: single
                year: 2025
                month: 1
                day: 1
                name: Ano Novo
      responses:
        '201':
          description: Feriados criados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  created: 2
                message: Feriados cadastrados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request POST \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=25&holidays[0][name]=Natal&holidays[1][type]=single&holidays[1][year]=2025&holidays[1][month]=1&holidays[1][day]=1&holidays[1][name]=Ano\
          \ Novo'"
    get:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Listar feriados de bloqueio do mailbox
      description: Retorna a lista de feriados agendados para bloqueio de e-mails do
        mailbox.
      operationId: get_mailbox_block_holiday
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Lista de feriados
          content:
            application/json:
              example:
                success: true
                data:
                - type: fixed
                  month: 12
                  day: 25
                  name: Natal
                  startTime: null
                  endTime: null
                - type: single
                  year: 2025
                  month: 1
                  day: 1
                  name: Ano Novo
                  startTime: null
                  endTime: null
                total: 2
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request GET \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /mailbox/{mailbox}/block/holiday/{holidayKey}:
    put:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Atualizar feriado de bloqueio do mailbox
      description: Atualiza um feriado agendado para bloqueio de e-mails do mailbox.
      operationId: put_mailbox_block_holiday_key
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockScheduledHoliday'
            example:
              type: fixed
              month: 12
              day: 25
              name: Natal atualizado
      responses:
        '200':
          description: Feriado atualizado com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado atualizado com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'type=fixed&month=12&day=25&name=Natal\
          \ atualizado'"
    delete:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Remover feriado de bloqueio do mailbox
      description: Remove um feriado agendado para bloqueio de e-mails do mailbox.
      operationId: delete_mailbox_block_holiday_key
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      - name: holidayKey
        in: path
        description: Chave do feriado (código identificador)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Feriado removido com sucesso
          content:
            application/json:
              example:
                success: true
                message: Feriado removido com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request DELETE \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday/{holidayKey}\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN'"
  /mailbox/{mailbox}/block/holiday/batch:
    put:
      tags:
      - Caixas Postais - Bloqueio de Feriado
      summary: Atualizar feriados em lote para bloqueio do mailbox
      description: Atualiza múltiplos feriados agendados para bloqueio de e-mails do
        mailbox em uma única chamada.
      operationId: put_mailbox_block_holiday_batch
      parameters:
      - name: mailbox
        in: path
        description: ID do mailbox
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                holidays:
                  type: array
                  items:
                    $ref: '#/components/schemas/BlockScheduledHoliday'
                  description: Lista de feriados a serem atualizados
              required:
              - holidays
            example:
              holidays:
              - type: fixed
                month: 12
                day: 24
                name: Véspera de Natal
              - type: fixed
                month: 12
                day: 31
                name: Véspera de Ano Novo
      responses:
        '200':
          description: Feriados atualizados com sucesso
          content:
            application/json:
              example:
                success: true
                data:
                  updated: 2
                message: Feriados atualizados com sucesso.
        '400':
          description: Erro de validação
          content:
            application/json:
              example:
                success: false
                message: '[holidays][0][type] Type is required.'
      x-codeSamples:
      - lang: curl
        source: "curl --request PUT \\\n  --url https://api.skymail.net.br/mailbox/{mailbox}/block/holiday/batch\
          \ \\\n  --header 'Authorization: Bearer YOUR_TOKEN' \\\n  --data 'holidays[0][type]=fixed&holidays[0][month]=12&holidays[0][day]=24&holidays[0][name]=Véspera\
          \ de Natal&holidays[1][type]=fixed&holidays[1][month]=12&holidays[1][day]=31&holidays[1][name]=Véspera\
          \ de Ano Novo'"
components:
  schemas:
    BlockScheduledHoliday:
      type: object
      required:
      - type
      - month
      - day
      - name
      properties:
        type:
          type: string
          enum:
          - fixed
          - single
          description: 'Tipo do feriado: ''fixed'' (ocorre todo ano no mesmo dia/mês)
            ou ''single'' (ocorre em uma data específica com ano)'
        year:
          type: integer
          description: Ano do feriado (obrigatório para type=single, opcional para type=fixed)
          minimum: 1900
          maximum: 2200
        month:
          type: integer
          description: Mês do feriado (1-12)
          minimum: 1
          maximum: 12
        day:
          type: integer
          description: Dia do feriado (1-31)
          minimum: 1
          maximum: 31
        name:
          type: string
          description: Nome do feriado
        startTime:
          type: string
          description: Horário de início no formato HH:MM (opcional)
        endTime:
          type: string
          description: Horário de fim no formato HH:MM (opcional)
  securitySchemes:
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Token JWT (HS256) assinado com a chave privada do ambiente. O payload deve conter o `jti` retornado por POST /auth/login. Enviado no header `Authorization: bearer <jwt>`.'
security:
- jwtAuth: []
