{
  "openapi": "3.0.1",
  "tags": [
    {
      "name": "Usuários",
      "description": "Operações relacionadas à usuários"
    },
    {
      "name": "Clientes",
      "description": "Operações relacionadas à clientes"
    },
    {
      "name": "Conhecimentos",
      "description": "Operações relacionadas à conhecimentos",
      "x-tag-expanded": true
    },
    {
      "name": "Contatos",
      "description": "Operações relacionadas à contatos.\n          Os contatos são vinculados diretamente em um cliente. Por isso você precisa informar um `client_id` nessas requisições"
    },
    {
      "name": "Endereços",
      "description": "Operações relacionadas à endereços.\n          Os endereços são vinculados diretamente em um cliente. Por isso você precisa informar um `client_id` nessas requisições"
    },
    {
      "name": "Clientes - Arquivos",
      "description": "Operações relacionadas à anexos de clientes e suas imagens de logo"
    },
    {
      "name": "Mesas de serviço",
      "description": "Operações relacionadas à mesas de serviço"
    },
    {
      "name": "Catálogo de serviços",
      "description": "Operações relacionadas à catálogos, áreas e itens de catálogo de serviços"
    },
    {
      "name": "Grupos de atendentes",
      "description": "Operações relacionadas à grupos de atendentes"
    },
    {
      "name": "Respostas dos tickets",
      "description": "Operações relacionadas às comunicações com os clientes"
    },
    {
      "name": "Tickets",
      "description": "Operações relacionadas à tickets"
    },
    {
      "name": "Pré-Tickets",
      "description": "Operações relacionadas à pre-tickets"
    },
    {
      "name": "Tickets - Arquivos",
      "description": "Operações relacionadas a anexos de tickets"
    },
    {
      "name": "Solicitantes",
      "description": "Operações relacionadas aos solicitantes dos tickets"
    },
    {
      "name": "Campos Personalizados",
      "description": "Operações relacionadas à configuração de campos personalizados.\n\nA estrutura de campos personalizados é hierárquica, com três níveis principais: **campos personalizados** > **campos** > **opções**.\n\nPara mais informações a respeito do que são campos personalizados, acesse nossa sessão do guia de uso sobre [como funcionam os campos personalizados no tiflux](https://guia-de-uso.tiflux.com/sistema/configuracoes/configuracoes-gerais/entidades#o-que-sao-campos-personalizados)."
    },
    {
      "name": "Chats",
      "description": "Operações relacionadas à chats.\n\nPara visualizar, atualizar ou enviar mensagens em chats que utilizam **integrações Whatsapp**, o usuário que está realizando as requisições precisa possuir uma **licença Whatsapp**."
    },
    {
      "name": "Pré-apontamentos",
      "description": "Operações relacionadas à pré-apontamentos.\n\nPré-apontamentos registram o **horário de início e término do atendimento** realizado por um atendente, em um determinado ticket. Posteriormente, esses pré-apontamentos podem ser convertidos em apontamentos."
    },
    {
      "name": "Recursos",
      "description": "Operações relacionadas à recursos"
    },
    {
      "name": "Apontamentos",
      "description": "Operações relacionadas à apontamentos em um determinado ticket"
    },
    {
      "name": "Comunicações internas dos tickets",
      "description": "Operações relacionadas à comunicações internas em um determinado ticket"
    },
    {
      "name": "Checklists",
      "description": "Operações relacionadas aos checklists de um determinado ticket"
    },
    {
      "name": "Integrações"
    },
    {
      "name": "Contratos"
    },
    {
      "name": "Relatórios"
    },
    {
      "name": "Templates"
    },
    {
      "name": "Grupos de Permissões",
      "description": "Operações relacionadas à grupos de permissões"
    },
    {
      "name": "Tipos de Recurso",
      "description": "Operações relacionadas à tipos de recurso"
    },
    {
      "name": "Grupos de Recurso",
      "description": "Operações relacionadas à grupos de recurso"
    },
    {
      "name": "Departamentos",
      "description": "Operações relacionadas à departamentos de chats"
    }
  ],
  "info": {
    "title": "Tiflux Official API",
    "version": "2",
    "termsOfService": "https://tiflux.com/termos-de-uso/",
    "contact": {
      "email": "suporte@tiflux.com"
    },
    "description": "```yaml\nAuthorization: Bearer <api-token>\n```\n## Limite de requisições\nA API possui uma política de limitação de requisições, onde cada usuário pode fazer **120 requisições por minuto**.\n- Requisições não autenticadas (ou seja, que não incluíram um cabeçalho de *Authorization* válido na requisição), possuem um limite de 10 requisições por IP a cada minuto.\n#### **Cabeçalhos**\nTodas as respostas da API incluem três cabeçalhos que informam o status da limitação atual:\n- `RateLimit-Limit`: O número máximo de requisições permitidas no período.\n- `RateLimit-Remaining`: O número de requisições restantes no período atual.\n- `RateLimit-Reset`: Datetime indicando quando o período de limitação será redefinido.\n\nSe o limite for excedido, a API responderá com o código de status `429 Too Many Requests`. Use os cabeçalhos de Rate Limit para gerenciar e ajustar suas requisições de acordo com essas regras.\n<br/><br/>\n___\n## Convenções\nO URL base para enviar todas as solicitações de API é `https://api.tiflux.com/api/v2`. HTTPS é necessário para todas as solicitações de API.\n\nA seguinte API segue convenções RESTful quando possível, com a maioria das operações realizadas por meio de solicitações `GET`, `POST`, `PUT` e `DELETE` em recursos de páginas e bancos de dados. Os corpos de solicitação e resposta são codificados como JSON.\n#### **Convenções JSON**\n- Os recursos de nível superior podem ser endereçados por uma propriedade `id`.\n- Os nomes das propriedades estão em `snake_case` (não em `camelCase` ou `kebab-case`).\n- Os valores temporais (`dates` e `datetimes`) são codificados em strings [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). `datetimes` incluirão o valor da hora (`2020-08-12T02:12:33.231Z`), enquanto `date` incluirão apenas a data (`2020-08-12`)\n- Interpretação dos **valores booleanos** informados no corpo das requisições:\n  - `null` - Não é um valor válido. Se você informar null em um campo booleano, estará tentando limpar/apagar o valor existente\n  - `false, \"false\", \"f\", \"0\", 0` - Serão interpretados como **false**\n  - `Outros Valores` - Qualquer outro valor diferente dos descritos acima, será interpretado como **true**\n<br/><br/>\n___\n## Paginação\nPara garantir a eficiência ao retornar grandes conjuntos de dados, todas as rotas que retornam listas de itens utilizam paginação. \nIsso significa que os resultados são divididos em páginas menores, facilitando o gerenciamento e a visualização das informações.\n### **Parâmetros:**\nPara navegar pelas páginas e controlar a quantidade de itens exibidos, utilize os seguintes parâmetros na sua requisição:\n- `limit`: Define o número máximo de itens por página. O valor padrão é **20** e o valor máximo é **200**.\n- `offset`: Indica qual é a página que se deseja visualizar. O valor padrão é **1**.\n- `X-Total-Items`: Apresentado no cabeçalho das respostas. Ele representa o número total de itens que atendem aos filtros aplicados na consulta, que podem ser retornados nessa requisição.\n### **Exemplo:**\nSe você precisa percorrer uma lista de um total de 600 tickets (`X-Total-Items = 600`). Serão necessárias, no mínimo, 3 requisições:\n- `limit=200&offset=1`: Retorna a primeira página, com 200 tickets. Serão exibidos tickets de 1 a 200.\n- `limit=200&offset=2`: Retorna a segunda página, com mais 200 itens. Serão exibidos tickets de 201 a 400.\n- `limit=200&offset=3`: Retorna a terceira página, com os últimos 200 itens. Serão exibidos tickets de 401 a 600.\n<br/><br/>\n___\n## Permissionamento\n- As rotas dessa API podem necessitar de permissões especificas para acessa-las.\n- Essas permissões estarão ligadas diretamente com o grupo de permissões que o usuário autenticado possui.\n- Para facilitar a identificação das permissões necessárias, adicionamos TAGs nesta documentação, no topo de cada rota.\n- As TAGs possuem o seguinte formato: <span style=\"margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->NOME DA PERMISSÃO</span> ou <span style=\"margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-green, var(--input-bg)); color:var(--green); border:1px solid var(--green)\"><!--?lit$8458964218$-->Livre</span> (indicando que a rota não exige permissão específica).\n- Se uma rota possuir mais de uma TAG, qualquer uma das permissões indicadas será suficiente.\n- Além das permissões, algumas rotas também exigem que o usuário possua uma licença ativa. A necessidade de uma licença específica (como a de Tickets, Chat, etc.) será claramente indicada junto com as permissões nas TAGs da rota. A ausência da licença ou permissão necessária, resultará em uma resposta de `403 Forbidden`.\n<br/><br/>\n___\n## Testes de rotas pela documentação\nEsta funcionalidade é especialmente útil para desenvolvedores que desejam verificar rapidamente o comportamento da API. Porém, atente-se de que **os testes não ocorrem em um ambiente de homologação, mas sim, em produção**. \n1. **Aplique o seu token no menu** [Authentication](/api/v2/#auth): É necessário colar apenas o seu token, a palavra Bearer já é inserida automaticamente. E então, clique em <button class=\"m-btn thin-border\" style=\"margin-left:5px;\" part=\"btn btn-outline\">SET</button>.\n2. **Selecione a Rota:** Navegue pela documentação e escolha a rota que você deseja testar.\n3. **Configure os Parâmetros:** Insira os parâmetros necessários para a chamada da API. Certifique-se de preencher todos os campos obrigatórios e a chave de autenticação do seu usuário.\n4. **Execute a Chamada:** Utilize a funcionalidade integrada de teste de rotas para enviar uma requisição à API (pelo botão <button class=\"m-btn primary thin-border\">TRY</button>). Você poderá ver a resposta imediatamente, o que inclui o status da resposta, cabeçalhos e o corpo da resposta.\n5. **Analise a Resposta:** Verifique os dados retornados pela API para garantir que estão de acordo com o esperado. Caso haja algum erro, ajuste os parâmetros e tente novamente.\n\n"
  },
  "paths": {
    "/clients/{client_id}/addresses": {
      "get": {
        "summary": "Listar endereços",
        "tags": [
          "Endereços"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "client_id",
            "in": "path",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os endereços que existem em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_addresses",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "cep": "31789-5970",
                    "city": "Grimesstad",
                    "complement": "Sem complementos por aqui",
                    "neighborhood": "Summer Oaks",
                    "number": 12,
                    "state": "Iowa",
                    "street": "Terry Ports"
                  },
                  {
                    "id": 2,
                    "cep": "13951-5009",
                    "city": "Kreigerchester",
                    "complement": "Sem complementos por aqui",
                    "neighborhood": "Paradise Village",
                    "number": 12,
                    "state": "Alabama",
                    "street": "Jamie Harbors"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Testa se for informado uma string: 'a'": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "post": {
        "summary": "Criar endereço",
        "tags": [
          "Endereços"
        ],
        "description": "Cria um novo endereço em um determinado cliente.",
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_client_id_addresses",
        "responses": {
          "201": {
            "description": "### **Endereço criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "cep": "96932-2149",
                  "city": "West Rebbecca",
                  "complement": "Em frente ao posto",
                  "neighborhood": "Summer Heights",
                  "number": 123,
                  "state": "Texas",
                  "street": "Miller Mountain"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "neighborhood": [
                      "can't be blank"
                    ],
                    "state": [
                      "can't be blank"
                    ],
                    "city": [
                      "can't be blank"
                    ],
                    "cep": [
                      "can't be blank"
                    ],
                    "street": [
                      "can't be blank"
                    ],
                    "number": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Problemas com os parâmetros**\nEssa resposta significa que os parâmetros estão inválidos ou não foi informado um body para a requisição",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: address"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "cep": "96932-2149",
                    "city": "West Rebbecca",
                    "complement": "Em frente ao posto",
                    "neighborhood": "Summer Heights",
                    "number": 123,
                    "state": "Texas",
                    "street": "Miller Mountain"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/clients/{client_id}/addresses/{id}": {
      "get": {
        "summary": "Exibir endereço",
        "tags": [
          "Endereços"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do endereço",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um endereço cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_addresses_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "cep": "31789-5970",
                  "city": "Grimesstad",
                  "complement": "Sem complementos por aqui",
                  "neighborhood": "Summer Oaks",
                  "number": 12,
                  "state": "Iowa",
                  "street": "Terry Ports"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou endereço não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Address with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "put": {
        "summary": "Atualizar endereço",
        "tags": [
          "Endereços"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do endereço",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza informações de um endereço cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_clients_client_id_addresses_id",
        "responses": {
          "200": {
            "description": "### **Endereço atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "cep": "31789-5970",
                  "city": "Grimesstad",
                  "complement": "Sem complementos por aqui",
                  "neighborhood": "Summer Oaks",
                  "number": 23,
                  "state": "Iowa",
                  "street": "Terry Ports"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou endereço não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Address with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "number": 23
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Excluir endereço",
        "tags": [
          "Endereços"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do endereço",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove um endereço cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_clients_client_id_addresses_id",
        "responses": {
          "204": {
            "description": "### **Endereço removido com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Cliente ou endereço não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Address with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/chats/{id}": {
      "get": {
        "summary": "Exibir chat",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID do chat",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um determinado chat.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_chats_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "archived": true,
                  "assessment": 4,
                  "assumed_at": "2026-08-27T20:55:27Z",
                  "canceled": false,
                  "client": {
                    "id": 3,
                    "name": "Koch Group"
                  },
                  "created_at": "2026-08-27T20:53:27Z",
                  "department": {
                    "id": 14,
                    "name": "Bogan-Friesen",
                    "selected_at": "2026-08-27T20:54:27Z"
                  },
                  "is_campaign": false,
                  "last_client_message": "2026-08-27T21:03:27Z",
                  "online": false,
                  "origin": {
                    "integration_id": 1,
                    "_type": "gupshup",
                    "fields": {
                      "phone": "15702623601",
                      "name": "Delmer Bartoletti"
                    }
                  },
                  "requestor": {
                    "id": 7803,
                    "email": "fransisca_kerluke_do@schinner-metz.example",
                    "name": "Fransisca Kerluke DO"
                  },
                  "responsible": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  },
                  "room": "15702623601",
                  "services_catalog": {
                    "id": 1,
                    "item_name": "Geral",
                    "area_name": "Dúvidas",
                    "catalog_name": "Suporte"
                  },
                  "started_by": "API",
                  "ticket": {
                    "number": 1,
                    "title": "To be, or not to be: that is the question"
                  },
                  "updated_at": "2026-08-27T21:03:27Z",
                  "waiting_answer": false
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do chat"
                    },
                    "archived": {
                      "type": "boolean",
                      "description": "O chat está arquivado ou finalizado?"
                    },
                    "assessment": {
                      "type": "integer",
                      "nullable": true,
                      "description": "Nota da avaliação do chat",
                      "minimum": 1,
                      "maximum": 5
                    },
                    "client": {
                      "type": "object",
                      "nullable": true,
                      "title": "Cliente",
                      "description": "Objeto contendo informações sobre o cliente associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do cliente"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do cliente"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data de criação do chat"
                    },
                    "department": {
                      "type": "object",
                      "nullable": true,
                      "title": "Departamento",
                      "description": "Objeto contendo informações sobre o departamento associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do departamento"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do departamento"
                        },
                        "selected_at": {
                          "type": "string",
                          "description": "Data que o departamento foi selecionado"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "selected_at"
                      ]
                    },
                    "last_client_message": {
                      "type": "string",
                      "nullable": true,
                      "description": "Data e hora da última mensagem enviada pelo cliente no chat"
                    },
                    "online": {
                      "type": "boolean",
                      "description": "Específico para origem widget, indica se na conversa, quem abriu o chat ainda está online"
                    },
                    "origin": {
                      "type": "object",
                      "title": "Origem",
                      "description": "Objeto contendo informações sobre a origem do chat",
                      "properties": {
                        "integration_id": {
                          "type": "integer",
                          "description": "ID da integração que deu origem ao chat"
                        },
                        "_type": {
                          "type": "string",
                          "description": "Qual é a origem do chat",
                          "enum": [
                            "chat",
                            "site_widget",
                            "campaign",
                            "whatsapp",
                            "whatsapp_web",
                            "gupshup",
                            "whatsapp_cloud"
                          ]
                        },
                        "fields": {
                          "type": "object",
                          "nullable": true,
                          "additionalProperties": true,
                          "description": "Campo JSON com estrutura variada e dinâmica. As chaves e tipos de valor podem variar conforme a origem do chat",
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true,
                              "description": "Quando disponível, esse campo irá conter o nome do contato"
                            }
                          }
                        }
                      },
                      "required": [
                        "integration_id",
                        "_type",
                        "fields"
                      ]
                    },
                    "requestor": {
                      "type": "object",
                      "title": "Solicitante",
                      "description": "Objeto contendo informações sobre o solicitante associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "ID do solicitante"
                        },
                        "email": {
                          "type": "string",
                          "nullable": true,
                          "description": "E-mail do solicitante"
                        },
                        "name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome do solicitante ou nome do contato.\n* Quando o chat possui um solicitante vinculado, retorna o nome do solicitante\n* Quando o chat não possui solicitante vinculado, retorna o nome do contato"
                        }
                      },
                      "required": [
                        "id",
                        "email",
                        "name"
                      ]
                    },
                    "room": {
                      "type": "string",
                      "description": "Identificador da sessão do chat. Pode ser o número do chat, o identificador do WhatsApp ou um identificador único de sessão"
                    },
                    "started_by": {
                      "type": "string",
                      "description": "Indicador de quem iniciou o chat",
                      "enum": [
                        "Client",
                        "Attendant",
                        "Campaign",
                        "API"
                      ]
                    },
                    "updated_at": {
                      "type": "string",
                      "description": "Data da última modificação no chat"
                    },
                    "waiting_answer": {
                      "type": "boolean",
                      "description": "O chat está esperando resposta do atendente?"
                    },
                    "assumed_at": {
                      "type": "string",
                      "nullable": true,
                      "description": "Data em que o chat foi assumido"
                    },
                    "canceled": {
                      "type": "boolean",
                      "description": "O chat está cancelado?"
                    },
                    "responsible": {
                      "type": "object",
                      "title": "Responsável",
                      "nullable": true,
                      "description": "Objeto contendo informações sobre o usuário responsável associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do usuário responsável"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do usuário responsável"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "services_catalog": {
                      "type": "object",
                      "title": "Catálogo de Serviços",
                      "nullable": true,
                      "description": "Objeto contendo informações sobre o catálogo de serviço associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do item de catálogo de serviços"
                        },
                        "item_name": {
                          "type": "string",
                          "description": "Nome do item de catálogo de serviços"
                        },
                        "area_name": {
                          "type": "string",
                          "description": "Nome da área de catálogo de serviços"
                        },
                        "catalog_name": {
                          "type": "string",
                          "description": "Nome do catálogo"
                        }
                      },
                      "required": [
                        "id",
                        "item_name",
                        "area_name",
                        "catalog_name"
                      ]
                    },
                    "is_campaign": {
                      "type": "boolean",
                      "description": "O chat foi iniciado por um disparo de campanha?"
                    },
                    "ticket": {
                      "type": "object",
                      "title": "Ticket",
                      "description": "Objeto contendo informações sobre o ticket relacionado ao chat",
                      "nullable": true,
                      "properties": {
                        "number": {
                          "type": "integer",
                          "description": "Número do ticket"
                        },
                        "title": {
                          "type": "string",
                          "description": "Título do ticket"
                        }
                      },
                      "required": [
                        "number",
                        "title"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "archived",
                    "assessment",
                    "client",
                    "created_at",
                    "department",
                    "last_client_message",
                    "online",
                    "origin",
                    "requestor",
                    "room",
                    "started_by",
                    "updated_at",
                    "waiting_answer",
                    "assumed_at",
                    "canceled",
                    "responsible",
                    "services_catalog",
                    "is_campaign",
                    "ticket"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Chat não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Chat with 'id'=\"99999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      },
      "put": {
        "summary": "Atualizar chat",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID do chat",
            "example": 37,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza informações de um determinado chat.\n- Só é possível atualizar um chat que **não esteja cancelado ou encerrado**.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_chats_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 2,
                  "archived": false,
                  "assessment": null,
                  "assumed_at": "2026-08-27T21:03:27Z",
                  "canceled": false,
                  "client": null,
                  "created_at": "2026-08-27T21:03:27Z",
                  "department": {
                    "id": 13,
                    "name": "Cremin-Pacocha",
                    "selected_at": "2026-08-27T21:03:27Z"
                  },
                  "is_campaign": false,
                  "last_client_message": null,
                  "online": false,
                  "origin": {
                    "integration_id": 1,
                    "_type": "gupshup",
                    "fields": {
                      "phone": "17866147413",
                      "name": "Malena Kuhn"
                    }
                  },
                  "requestor": {
                    "id": 874,
                    "email": "rusty.esq.kuphal@stoltenberg.test",
                    "name": "Rusty Kuphal Esq."
                  },
                  "responsible": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  },
                  "room": "17866147413",
                  "services_catalog": null,
                  "started_by": "Client",
                  "ticket": {
                    "number": 1,
                    "title": "To be, or not to be: that is the question"
                  },
                  "updated_at": "2026-08-27T21:03:27Z",
                  "waiting_answer": false
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do chat"
                    },
                    "archived": {
                      "type": "boolean",
                      "description": "O chat está arquivado ou finalizado?"
                    },
                    "assessment": {
                      "type": "integer",
                      "nullable": true,
                      "description": "Nota da avaliação do chat",
                      "minimum": 1,
                      "maximum": 5
                    },
                    "client": {
                      "type": "object",
                      "nullable": true,
                      "title": "Cliente",
                      "description": "Objeto contendo informações sobre o cliente associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do cliente"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do cliente"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data de criação do chat"
                    },
                    "department": {
                      "type": "object",
                      "nullable": true,
                      "title": "Departamento",
                      "description": "Objeto contendo informações sobre o departamento associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do departamento"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do departamento"
                        },
                        "selected_at": {
                          "type": "string",
                          "description": "Data que o departamento foi selecionado"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "selected_at"
                      ]
                    },
                    "last_client_message": {
                      "type": "string",
                      "nullable": true,
                      "description": "Data e hora da última mensagem enviada pelo cliente no chat"
                    },
                    "online": {
                      "type": "boolean",
                      "description": "Específico para origem widget, indica se na conversa, quem abriu o chat ainda está online"
                    },
                    "origin": {
                      "type": "object",
                      "title": "Origem",
                      "description": "Objeto contendo informações sobre a origem do chat",
                      "properties": {
                        "integration_id": {
                          "type": "integer",
                          "description": "ID da integração que deu origem ao chat"
                        },
                        "_type": {
                          "type": "string",
                          "description": "Qual é a origem do chat",
                          "enum": [
                            "chat",
                            "site_widget",
                            "campaign",
                            "whatsapp",
                            "whatsapp_web",
                            "gupshup",
                            "whatsapp_cloud"
                          ]
                        },
                        "fields": {
                          "type": "object",
                          "nullable": true,
                          "additionalProperties": true,
                          "description": "Campo JSON com estrutura variada e dinâmica. As chaves e tipos de valor podem variar conforme a origem do chat",
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true,
                              "description": "Quando disponível, esse campo irá conter o nome do contato"
                            }
                          }
                        }
                      },
                      "required": [
                        "integration_id",
                        "_type",
                        "fields"
                      ]
                    },
                    "requestor": {
                      "type": "object",
                      "title": "Solicitante",
                      "description": "Objeto contendo informações sobre o solicitante associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "ID do solicitante"
                        },
                        "email": {
                          "type": "string",
                          "nullable": true,
                          "description": "E-mail do solicitante"
                        },
                        "name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome do solicitante ou nome do contato.\n* Quando o chat possui um solicitante vinculado, retorna o nome do solicitante\n* Quando o chat não possui solicitante vinculado, retorna o nome do contato"
                        }
                      },
                      "required": [
                        "id",
                        "email",
                        "name"
                      ]
                    },
                    "room": {
                      "type": "string",
                      "description": "Identificador da sessão do chat. Pode ser o número do chat, o identificador do WhatsApp ou um identificador único de sessão"
                    },
                    "started_by": {
                      "type": "string",
                      "description": "Indicador de quem iniciou o chat",
                      "enum": [
                        "Client",
                        "Attendant",
                        "Campaign",
                        "API"
                      ]
                    },
                    "updated_at": {
                      "type": "string",
                      "description": "Data da última modificação no chat"
                    },
                    "waiting_answer": {
                      "type": "boolean",
                      "description": "O chat está esperando resposta do atendente?"
                    },
                    "assumed_at": {
                      "type": "string",
                      "nullable": true,
                      "description": "Data em que o chat foi assumido"
                    },
                    "canceled": {
                      "type": "boolean",
                      "description": "O chat está cancelado?"
                    },
                    "responsible": {
                      "type": "object",
                      "title": "Responsável",
                      "nullable": true,
                      "description": "Objeto contendo informações sobre o usuário responsável associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do usuário responsável"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do usuário responsável"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "services_catalog": {
                      "type": "object",
                      "title": "Catálogo de Serviços",
                      "nullable": true,
                      "description": "Objeto contendo informações sobre o catálogo de serviço associado ao chat",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do item de catálogo de serviços"
                        },
                        "item_name": {
                          "type": "string",
                          "description": "Nome do item de catálogo de serviços"
                        },
                        "area_name": {
                          "type": "string",
                          "description": "Nome da área de catálogo de serviços"
                        },
                        "catalog_name": {
                          "type": "string",
                          "description": "Nome do catálogo"
                        }
                      },
                      "required": [
                        "id",
                        "item_name",
                        "area_name",
                        "catalog_name"
                      ]
                    },
                    "is_campaign": {
                      "type": "boolean",
                      "description": "O chat foi iniciado por um disparo de campanha?"
                    },
                    "ticket": {
                      "type": "object",
                      "title": "Ticket",
                      "description": "Objeto contendo informações sobre o ticket relacionado ao chat",
                      "nullable": true,
                      "properties": {
                        "number": {
                          "type": "integer",
                          "description": "Número do ticket"
                        },
                        "title": {
                          "type": "string",
                          "description": "Título do ticket"
                        }
                      },
                      "required": [
                        "number",
                        "title"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "archived",
                    "assessment",
                    "client",
                    "created_at",
                    "department",
                    "last_client_message",
                    "online",
                    "origin",
                    "requestor",
                    "room",
                    "started_by",
                    "updated_at",
                    "waiting_answer",
                    "assumed_at",
                    "canceled",
                    "responsible",
                    "services_catalog",
                    "is_campaign",
                    "ticket"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_number": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Chat não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Chat with 'id'=\"99999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "user_id": {
                    "type": "integer",
                    "description": "**Identificador do usuário** atendente para o qual o chat será transferido."
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "**Identificar do departamento** para o qual o chat será transferido."
                  },
                  "ticket_number": {
                    "type": "integer",
                    "description": "**Número do ticket**, se você deseja vincular o chat a um ticket"
                  }
                }
              },
              "examples": {
                "Atualizar com todas as informações": {
                  "summary": "Atualizar com todas as informações",
                  "value": {
                    "user_id": 1,
                    "department_id": 13,
                    "ticket_number": 1
                  }
                },
                "Alterar atendente": {
                  "summary": "Alterar atendente",
                  "value": {
                    "user_id": 1
                  }
                },
                "Alterar departamento": {
                  "summary": "Alterar departamento",
                  "value": {
                    "department_id": 13
                  }
                },
                "Alterar ou vincular um ticket ao chat": {
                  "summary": "Alterar ou vincular um ticket ao chat",
                  "value": {
                    "ticket_number": 1
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Confira abaixo exemplos de uso"
        }
      }
    },
    "/chats/{id}/messages": {
      "get": {
        "summary": "Listar mensagens do chat",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID do chat",
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista o conteúdo/mensagens de um determinado chat, em ordem cronológica.\n- Cada mensagem traz o texto, autor (cliente/atendente/sistema/IA), direção, tipo, mídia/anexo (quando houver), mensagem citada e status de entrega.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_chats_id_messages",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": "1",
                    "author": {
                      "type": "client",
                      "id": null,
                      "name": null
                    },
                    "created_at": "2026-08-27T20:58:27Z",
                    "direction": "inbound",
                    "media": null,
                    "quoted_message": null,
                    "status": {
                      "sent": true,
                      "delivered": true,
                      "read": false,
                      "failed": false
                    },
                    "text": "Olá, preciso de ajuda",
                    "type": "text"
                  },
                  {
                    "id": "2",
                    "author": {
                      "type": "attendant",
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "created_at": "2026-08-27T20:59:27Z",
                    "direction": "outbound",
                    "media": null,
                    "quoted_message": null,
                    "status": {
                      "sent": true,
                      "delivered": true,
                      "read": false,
                      "failed": false
                    },
                    "text": "Claro, como posso ajudar?",
                    "type": "text"
                  },
                  {
                    "id": "3",
                    "author": {
                      "type": "attendant",
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "created_at": "2026-08-27T21:00:27Z",
                    "direction": "outbound",
                    "media": {
                      "content_type": "application/pdf",
                      "url": "https://bucket.s3.amazonaws.com/manual.pdf",
                      "caption": "manual.pdf",
                      "is_voice": false
                    },
                    "quoted_message": null,
                    "status": {
                      "sent": true,
                      "delivered": true,
                      "read": false,
                      "failed": false
                    },
                    "text": null,
                    "type": "attachment"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Identificador da mensagem"
                      },
                      "text": {
                        "type": "string",
                        "nullable": true,
                        "description": "Conteúdo textual da mensagem. Nulo quando a mensagem é um anexo (nesse caso o conteúdo fica em `media`)"
                      },
                      "direction": {
                        "type": "string",
                        "enum": [
                          "inbound",
                          "outbound"
                        ],
                        "description": "Direção da mensagem.\n* `inbound`: enviada pelo cliente\n* `outbound`: enviada pela empresa (atendente, sistema ou IA)"
                      },
                      "type": {
                        "type": "string",
                        "description": "Tipo da mensagem (ex.: `text`, `attachment`, `file`, `event`, `comment`, `notice`, `interactive`, `list`, `mail`)"
                      },
                      "author": {
                        "type": "object",
                        "title": "Autor",
                        "description": "Objeto com informações sobre o autor da mensagem",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "client",
                              "attendant",
                              "system",
                              "ai"
                            ],
                            "description": "Papel do autor.\n* `client`: cliente\n* `attendant`: atendente humano\n* `system`: mensagem de evento/sistema\n* `ai`: agente de IA ou chatbot"
                          },
                          "id": {
                            "type": "integer",
                            "nullable": true,
                            "description": "ID do usuário atendente autor da mensagem, quando aplicável"
                          },
                          "name": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome de exibição do autor, quando disponível"
                          }
                        },
                        "required": [
                          "type",
                          "id",
                          "name"
                        ]
                      },
                      "media": {
                        "type": "object",
                        "nullable": true,
                        "title": "Mídia",
                        "description": "Presente quando a mensagem é um anexo/mídia; nulo caso contrário",
                        "properties": {
                          "content_type": {
                            "type": "string",
                            "nullable": true,
                            "description": "Tipo MIME do arquivo"
                          },
                          "url": {
                            "type": "string",
                            "nullable": true,
                            "description": "URL do arquivo"
                          },
                          "caption": {
                            "type": "string",
                            "nullable": true,
                            "description": "Legenda ou nome do arquivo"
                          },
                          "is_voice": {
                            "type": "boolean",
                            "description": "Indica se o anexo é uma mensagem de voz (áudio push-to-talk)"
                          }
                        },
                        "required": [
                          "content_type",
                          "url",
                          "caption",
                          "is_voice"
                        ]
                      },
                      "quoted_message": {
                        "type": "object",
                        "nullable": true,
                        "title": "Mensagem citada",
                        "description": "Mensagem à qual esta responde, quando houver",
                        "properties": {
                          "id": {
                            "type": "string",
                            "nullable": true,
                            "description": "Identificador da mensagem citada"
                          },
                          "text": {
                            "type": "string",
                            "nullable": true,
                            "description": "Texto da mensagem citada"
                          },
                          "author_name": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome do autor da mensagem citada"
                          },
                          "type": {
                            "type": "string",
                            "nullable": true,
                            "description": "Tipo da mensagem citada"
                          }
                        },
                        "required": [
                          "id",
                          "text",
                          "author_name",
                          "type"
                        ]
                      },
                      "status": {
                        "type": "object",
                        "title": "Status de entrega",
                        "description": "Situação de entrega da mensagem",
                        "properties": {
                          "sent": {
                            "type": "boolean",
                            "description": "A mensagem foi enviada?"
                          },
                          "delivered": {
                            "type": "boolean",
                            "description": "A mensagem foi entregue?"
                          },
                          "read": {
                            "type": "boolean",
                            "description": "A mensagem foi lida?"
                          },
                          "failed": {
                            "type": "boolean",
                            "description": "A mensagem falhou no envio?"
                          }
                        },
                        "required": [
                          "sent",
                          "delivered",
                          "read",
                          "failed"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data e hora da mensagem (ISO8601)"
                      }
                    },
                    "required": [
                      "id",
                      "text",
                      "direction",
                      "type",
                      "author",
                      "media",
                      "quoted_message",
                      "status",
                      "created_at"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Chat não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Chat with 'id'=\"99999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      }
    },
    "/chats/inbox": {
      "get": {
        "summary": "Listar chats da caixa de entrada",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "department_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do departamento",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do cliente",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "requestor_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do solicitante vinculado ao chat",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "number",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo número que entrou em contato.\nÉ necessário uma licença Whatsapp para utilizar esse parâmetro",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "origins",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo canal de origem. Pode ser informada mais de uma origem, separada por vírgula",
            "schema": {
              "type": "string",
              "enum": [
                "chat",
                "site_widget",
                "campaign",
                "whatsapp",
                "whatsapp_web",
                "gupshup",
                "whatsapp_cloud"
              ]
            },
            "examples": {
              "1": {
                "value": "gupshup",
                "summary": "Filtrar por chats de origem gupshup"
              },
              "2": {
                "value": "gupshup,site_widget",
                "summary": "Filtrar por chats de origem gupshup ou widget"
              }
            }
          },
          {
            "name": "started_by",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pela forma de como eles foram iniciados",
            "schema": {
              "type": "string",
              "enum": [
                "Client",
                "Attendant",
                "Campaign",
                "API"
              ]
            },
            "examples": {
              "0": {
                "value": "Client",
                "summary": "Chats iniciados pelo cliente"
              },
              "1": {
                "value": "Attendant",
                "summary": "Chats iniciados pelo atendente"
              },
              "2": {
                "value": "Campaign",
                "summary": "Chats iniciados através da funcionalidade de campanha"
              },
              "3": {
                "value": "API",
                "summary": "Chats iniciados através da API"
              }
            }
          },
          {
            "name": "created_at_start",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação maior ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de início de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados a partir de 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T00:00:00Z",
                "summary": "Chats criados a partir de 31/01/2024 às 00:00:00 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at_end",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação menor ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de fim de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados até 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T23:59:59Z",
                "summary": "Chats criados até 31/01/2024 às 23:59:59 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os chats que estão na caixa de entrada da sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_chats_inbox",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 6,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": {
                      "id": 4,
                      "name": "Kuphal, Schneider and Veum"
                    },
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": {
                      "id": 21,
                      "name": "Marvin, Hoeger and Mayert",
                      "selected_at": "2026-08-27T21:04:27Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "18472673369",
                        "name": "Fermin Rath"
                      }
                    },
                    "requestor": {
                      "id": 5863,
                      "email": "the_waters_hon_michelina@hagenes.example",
                      "name": "The Hon. Michelina Waters"
                    },
                    "room": "18472673369",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 7,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": {
                      "id": 5,
                      "name": "Volkman and Sons"
                    },
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": {
                      "id": 22,
                      "name": "Bednar, Waelchi and Abernathy",
                      "selected_at": "2026-08-27T21:04:27Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "14087638578",
                        "name": "Sharon Watsica"
                      }
                    },
                    "requestor": {
                      "id": 9361,
                      "email": "gleason.shakita.dds@wolff.test",
                      "name": "Shakita Gleason DDS"
                    },
                    "room": "14087638578",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 2,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": null,
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": null,
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "17866147413",
                        "name": "Malena Kuhn"
                      }
                    },
                    "requestor": {
                      "id": 874,
                      "email": "rusty.esq.kuphal@stoltenberg.test",
                      "name": "Rusty Kuphal Esq."
                    },
                    "room": "17866147413",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 3,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": null,
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": null,
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "15138164737",
                        "name": "Maggie Tromp I"
                      }
                    },
                    "requestor": {
                      "id": 9020,
                      "email": "lonny.osinski.fr@romaguera.example",
                      "name": "Fr. Lonny Osinski"
                    },
                    "room": "15138164737",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:00:27Z",
                    "waiting_answer": false
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do chat"
                      },
                      "archived": {
                        "type": "boolean",
                        "description": "O chat está arquivado ou finalizado?"
                      },
                      "assessment": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Nota da avaliação do chat",
                        "minimum": 1,
                        "maximum": 5
                      },
                      "client": {
                        "type": "object",
                        "nullable": true,
                        "title": "Cliente",
                        "description": "Objeto contendo informações sobre o cliente associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "description": "Data de criação do chat"
                      },
                      "department": {
                        "type": "object",
                        "nullable": true,
                        "title": "Departamento",
                        "description": "Objeto contendo informações sobre o departamento associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do departamento"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do departamento"
                          },
                          "selected_at": {
                            "type": "string",
                            "description": "Data que o departamento foi selecionado"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "selected_at"
                        ]
                      },
                      "last_client_message": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data e hora da última mensagem enviada pelo cliente no chat"
                      },
                      "online": {
                        "type": "boolean",
                        "description": "Específico para origem widget, indica se na conversa, quem abriu o chat ainda está online"
                      },
                      "origin": {
                        "type": "object",
                        "title": "Origem",
                        "description": "Objeto contendo informações sobre a origem do chat",
                        "properties": {
                          "integration_id": {
                            "type": "integer",
                            "description": "ID da integração que deu origem ao chat"
                          },
                          "_type": {
                            "type": "string",
                            "description": "Qual é a origem do chat",
                            "enum": [
                              "chat",
                              "site_widget",
                              "campaign",
                              "whatsapp",
                              "whatsapp_web",
                              "gupshup",
                              "whatsapp_cloud"
                            ]
                          },
                          "fields": {
                            "type": "object",
                            "nullable": true,
                            "additionalProperties": true,
                            "description": "Campo JSON com estrutura variada e dinâmica. As chaves e tipos de valor podem variar conforme a origem do chat",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true,
                                "description": "Quando disponível, esse campo irá conter o nome do contato"
                              }
                            }
                          }
                        },
                        "required": [
                          "integration_id",
                          "_type",
                          "fields"
                        ]
                      },
                      "requestor": {
                        "type": "object",
                        "title": "Solicitante",
                        "description": "Objeto contendo informações sobre o solicitante associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "nullable": true,
                            "description": "ID do solicitante"
                          },
                          "email": {
                            "type": "string",
                            "nullable": true,
                            "description": "E-mail do solicitante"
                          },
                          "name": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome do solicitante ou nome do contato.\n* Quando o chat possui um solicitante vinculado, retorna o nome do solicitante\n* Quando o chat não possui solicitante vinculado, retorna o nome do contato"
                          }
                        },
                        "required": [
                          "id",
                          "email",
                          "name"
                        ]
                      },
                      "room": {
                        "type": "string",
                        "description": "Identificador da sessão do chat. Pode ser o número do chat, o identificador do WhatsApp ou um identificador único de sessão"
                      },
                      "started_by": {
                        "type": "string",
                        "description": "Indicador de quem iniciou o chat",
                        "enum": [
                          "Client",
                          "Attendant",
                          "Campaign",
                          "API"
                        ]
                      },
                      "ticket": {
                        "type": "object",
                        "title": "Ticket",
                        "description": "Objeto contendo informações sobre o ticket relacionado ao chat",
                        "nullable": true,
                        "properties": {
                          "number": {
                            "type": "integer",
                            "description": "Número do ticket"
                          },
                          "title": {
                            "type": "string",
                            "description": "Título do ticket"
                          }
                        },
                        "required": [
                          "number",
                          "title"
                        ]
                      },
                      "updated_at": {
                        "type": "string",
                        "description": "Data da última modificação no chat"
                      },
                      "waiting_answer": {
                        "type": "boolean",
                        "description": "O chat está esperando resposta do atendente?"
                      },
                      "assumed_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data em que o chat foi assumido"
                      }
                    },
                    "required": [
                      "id",
                      "archived",
                      "assessment",
                      "client",
                      "created_at",
                      "department",
                      "last_client_message",
                      "online",
                      "origin",
                      "requestor",
                      "room",
                      "started_by",
                      "ticket",
                      "updated_at",
                      "waiting_answer",
                      "assumed_at"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Origem - opção inválida": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "origins": [
                          "'walkie-talkie' is not a valid origin"
                        ]
                      }
                    }
                  },
                  "Number - não aceita letras": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Requestor_id - números menores ou iguais a 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "requestor_id": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  },
                  "created_at_start - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_start": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "created_at_end - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_end": [
                          "invalid datetime"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      }
    },
    "/chats/mine": {
      "get": {
        "summary": "Listar meus chats",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "department_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do departamento",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do cliente",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "requestor_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do solicitante vinculado ao chat",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "number",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo número que entrou em contato.\nÉ necessário uma licença Whatsapp para utilizar esse parâmetro",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "origins",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo canal de origem. Pode ser informada mais de uma origem, separada por vírgula",
            "schema": {
              "type": "string",
              "enum": [
                "chat",
                "site_widget",
                "campaign",
                "whatsapp",
                "whatsapp_web",
                "gupshup",
                "whatsapp_cloud"
              ]
            },
            "examples": {
              "1": {
                "value": "gupshup",
                "summary": "Filtrar por chats de origem gupshup"
              },
              "2": {
                "value": "gupshup,site_widget",
                "summary": "Filtrar por chats de origem gupshup ou widget"
              }
            }
          },
          {
            "name": "started_by",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pela forma de como eles foram iniciados",
            "schema": {
              "type": "string",
              "enum": [
                "Client",
                "Attendant",
                "Campaign",
                "API"
              ]
            },
            "examples": {
              "0": {
                "value": "Client",
                "summary": "Chats iniciados pelo cliente"
              },
              "1": {
                "value": "Attendant",
                "summary": "Chats iniciados pelo atendente"
              },
              "2": {
                "value": "Campaign",
                "summary": "Chats iniciados através da funcionalidade de campanha"
              },
              "3": {
                "value": "API",
                "summary": "Chats iniciados através da API"
              }
            }
          },
          {
            "name": "created_at_start",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação maior ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de início de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados a partir de 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T00:00:00Z",
                "summary": "Chats criados a partir de 31/01/2024 às 00:00:00 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at_end",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação menor ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de fim de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados até 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T23:59:59Z",
                "summary": "Chats criados até 31/01/2024 às 23:59:59 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os chats que estão em atendimento com o seu usuário.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_chats_mine",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 9,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": "2026-08-27T21:05:28Z",
                    "client": {
                      "id": 7,
                      "name": "Donnelly, Greenholt and Greenholt"
                    },
                    "created_at": "2026-08-27T21:03:28Z",
                    "department": {
                      "id": 26,
                      "name": "Dibbert and Sons",
                      "selected_at": "2026-08-27T21:04:28Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "14048322113",
                        "name": "Kirk Mueller"
                      }
                    },
                    "requestor": {
                      "id": 350,
                      "email": "marcelino.koelpin.hon.the@harris.test",
                      "name": "The Hon. Marcelino Koelpin"
                    },
                    "room": "14048322113",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:28Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 8,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": "2026-08-27T21:05:28Z",
                    "client": {
                      "id": 6,
                      "name": "Gutmann and Sons"
                    },
                    "created_at": "2026-08-27T21:03:28Z",
                    "department": {
                      "id": 25,
                      "name": "Fisher-Williamson",
                      "selected_at": "2026-08-27T21:04:28Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "12512148503",
                        "name": "Mora Renner"
                      }
                    },
                    "requestor": {
                      "id": 2686,
                      "email": "abbott_hassan@zieme-cremin.example",
                      "name": "Hassan Abbott"
                    },
                    "room": "12512148503",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:28Z",
                    "waiting_answer": false
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do chat"
                      },
                      "archived": {
                        "type": "boolean",
                        "description": "O chat está arquivado ou finalizado?"
                      },
                      "assessment": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Nota da avaliação do chat",
                        "minimum": 1,
                        "maximum": 5
                      },
                      "client": {
                        "type": "object",
                        "nullable": true,
                        "title": "Cliente",
                        "description": "Objeto contendo informações sobre o cliente associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "description": "Data de criação do chat"
                      },
                      "department": {
                        "type": "object",
                        "nullable": true,
                        "title": "Departamento",
                        "description": "Objeto contendo informações sobre o departamento associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do departamento"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do departamento"
                          },
                          "selected_at": {
                            "type": "string",
                            "description": "Data que o departamento foi selecionado"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "selected_at"
                        ]
                      },
                      "last_client_message": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data e hora da última mensagem enviada pelo cliente no chat"
                      },
                      "online": {
                        "type": "boolean",
                        "description": "Específico para origem widget, indica se na conversa, quem abriu o chat ainda está online"
                      },
                      "origin": {
                        "type": "object",
                        "title": "Origem",
                        "description": "Objeto contendo informações sobre a origem do chat",
                        "properties": {
                          "integration_id": {
                            "type": "integer",
                            "description": "ID da integração que deu origem ao chat"
                          },
                          "_type": {
                            "type": "string",
                            "description": "Qual é a origem do chat",
                            "enum": [
                              "chat",
                              "site_widget",
                              "campaign",
                              "whatsapp",
                              "whatsapp_web",
                              "gupshup",
                              "whatsapp_cloud"
                            ]
                          },
                          "fields": {
                            "type": "object",
                            "nullable": true,
                            "additionalProperties": true,
                            "description": "Campo JSON com estrutura variada e dinâmica. As chaves e tipos de valor podem variar conforme a origem do chat",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true,
                                "description": "Quando disponível, esse campo irá conter o nome do contato"
                              }
                            }
                          }
                        },
                        "required": [
                          "integration_id",
                          "_type",
                          "fields"
                        ]
                      },
                      "requestor": {
                        "type": "object",
                        "title": "Solicitante",
                        "description": "Objeto contendo informações sobre o solicitante associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "nullable": true,
                            "description": "ID do solicitante"
                          },
                          "email": {
                            "type": "string",
                            "nullable": true,
                            "description": "E-mail do solicitante"
                          },
                          "name": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome do solicitante ou nome do contato.\n* Quando o chat possui um solicitante vinculado, retorna o nome do solicitante\n* Quando o chat não possui solicitante vinculado, retorna o nome do contato"
                          }
                        },
                        "required": [
                          "id",
                          "email",
                          "name"
                        ]
                      },
                      "room": {
                        "type": "string",
                        "description": "Identificador da sessão do chat. Pode ser o número do chat, o identificador do WhatsApp ou um identificador único de sessão"
                      },
                      "started_by": {
                        "type": "string",
                        "description": "Indicador de quem iniciou o chat",
                        "enum": [
                          "Client",
                          "Attendant",
                          "Campaign",
                          "API"
                        ]
                      },
                      "ticket": {
                        "type": "object",
                        "title": "Ticket",
                        "description": "Objeto contendo informações sobre o ticket relacionado ao chat",
                        "nullable": true,
                        "properties": {
                          "number": {
                            "type": "integer",
                            "description": "Número do ticket"
                          },
                          "title": {
                            "type": "string",
                            "description": "Título do ticket"
                          }
                        },
                        "required": [
                          "number",
                          "title"
                        ]
                      },
                      "updated_at": {
                        "type": "string",
                        "description": "Data da última modificação no chat"
                      },
                      "waiting_answer": {
                        "type": "boolean",
                        "description": "O chat está esperando resposta do atendente?"
                      },
                      "assumed_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data em que o chat foi assumido"
                      }
                    },
                    "required": [
                      "id",
                      "archived",
                      "assessment",
                      "client",
                      "created_at",
                      "department",
                      "last_client_message",
                      "online",
                      "origin",
                      "requestor",
                      "room",
                      "started_by",
                      "ticket",
                      "updated_at",
                      "waiting_answer",
                      "assumed_at"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Origem - opção inválida": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "origins": [
                          "'walkie-talkie' is not a valid origin"
                        ]
                      }
                    }
                  },
                  "Number - não aceita letras": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Requestor_id - números menores ou iguais a 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "requestor_id": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  },
                  "created_at_start - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_start": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "created_at_end - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_end": [
                          "invalid datetime"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      }
    },
    "/chats/in_attendance": {
      "get": {
        "summary": "Listar chats em atendimento",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "department_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do departamento",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do cliente",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "requestor_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do solicitante vinculado ao chat",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do responsável do chat",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "number",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo número que entrou em contato.\nÉ necessário uma licença Whatsapp para utilizar esse parâmetro",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "origins",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo canal de origem. Pode ser informada mais de uma origem, separada por vírgula",
            "schema": {
              "type": "string",
              "enum": [
                "chat",
                "site_widget",
                "campaign",
                "whatsapp",
                "whatsapp_web",
                "gupshup",
                "whatsapp_cloud"
              ]
            },
            "examples": {
              "1": {
                "value": "gupshup",
                "summary": "Filtrar por chats de origem gupshup"
              },
              "2": {
                "value": "gupshup,site_widget",
                "summary": "Filtrar por chats de origem gupshup ou widget"
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo seu status",
            "schema": {
              "type": "string",
              "enum": [
                "waiting_client",
                "waiting_attendance",
                "triage"
              ]
            },
            "examples": {
              "1": {
                "value": "waiting_client",
                "summary": "Aguardando atendimento"
              },
              "2": {
                "value": "waiting_attendance",
                "summary": "Aguardando cliente"
              },
              "3": {
                "value": "triage",
                "summary": "Triagem"
              }
            }
          },
          {
            "name": "started_by",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pela forma de como eles foram iniciados",
            "schema": {
              "type": "string",
              "enum": [
                "Client",
                "Attendant",
                "Campaign",
                "API"
              ]
            },
            "examples": {
              "0": {
                "value": "Client",
                "summary": "Chats iniciados pelo cliente"
              },
              "1": {
                "value": "Attendant",
                "summary": "Chats iniciados pelo atendente"
              },
              "2": {
                "value": "Campaign",
                "summary": "Chats iniciados através da funcionalidade de campanha"
              },
              "3": {
                "value": "API",
                "summary": "Chats iniciados através da API"
              }
            }
          },
          {
            "name": "created_at_start",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação maior ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de início de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados a partir de 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T00:00:00Z",
                "summary": "Chats criados a partir de 31/01/2024 às 00:00:00 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at_end",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação menor ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de fim de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados até 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T23:59:59Z",
                "summary": "Chats criados até 31/01/2024 às 23:59:59 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os chats que estão em atendimento na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_chats_in_attendance",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 6,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": {
                      "id": 4,
                      "name": "Kuphal, Schneider and Veum"
                    },
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": {
                      "id": 21,
                      "name": "Marvin, Hoeger and Mayert",
                      "selected_at": "2026-08-27T21:04:27Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "18472673369",
                        "name": "Fermin Rath"
                      }
                    },
                    "requestor": {
                      "id": 5863,
                      "email": "the_waters_hon_michelina@hagenes.example",
                      "name": "The Hon. Michelina Waters"
                    },
                    "responsible": null,
                    "room": "18472673369",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 7,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": {
                      "id": 5,
                      "name": "Volkman and Sons"
                    },
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": {
                      "id": 22,
                      "name": "Bednar, Waelchi and Abernathy",
                      "selected_at": "2026-08-27T21:04:27Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "14087638578",
                        "name": "Sharon Watsica"
                      }
                    },
                    "requestor": {
                      "id": 9361,
                      "email": "gleason.shakita.dds@wolff.test",
                      "name": "Shakita Gleason DDS"
                    },
                    "responsible": null,
                    "room": "14087638578",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 8,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": "2026-08-27T21:05:28Z",
                    "client": {
                      "id": 6,
                      "name": "Gutmann and Sons"
                    },
                    "created_at": "2026-08-27T21:03:28Z",
                    "department": {
                      "id": 25,
                      "name": "Fisher-Williamson",
                      "selected_at": "2026-08-27T21:04:28Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "12512148503",
                        "name": "Mora Renner"
                      }
                    },
                    "requestor": {
                      "id": 2686,
                      "email": "abbott_hassan@zieme-cremin.example",
                      "name": "Hassan Abbott"
                    },
                    "responsible": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "room": "12512148503",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:28Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 9,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": "2026-08-27T21:05:28Z",
                    "client": {
                      "id": 7,
                      "name": "Donnelly, Greenholt and Greenholt"
                    },
                    "created_at": "2026-08-27T21:03:28Z",
                    "department": {
                      "id": 26,
                      "name": "Dibbert and Sons",
                      "selected_at": "2026-08-27T21:04:28Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "14048322113",
                        "name": "Kirk Mueller"
                      }
                    },
                    "requestor": {
                      "id": 350,
                      "email": "marcelino.koelpin.hon.the@harris.test",
                      "name": "The Hon. Marcelino Koelpin"
                    },
                    "responsible": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "room": "14048322113",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:28Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 10,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": "2026-08-27T21:05:28Z",
                    "client": {
                      "id": 8,
                      "name": "Rolfson, Feest and Orn"
                    },
                    "created_at": "2026-08-27T21:03:28Z",
                    "department": {
                      "id": 29,
                      "name": "Schmitt-Daniel",
                      "selected_at": "2026-08-27T21:04:28Z"
                    },
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "12096165734",
                        "name": "Rhett Beatty"
                      }
                    },
                    "requestor": {
                      "id": 7697,
                      "email": "rep.nicolas.stokes@gottlieb-little.example",
                      "name": "Rep. Nicolas Stokes"
                    },
                    "responsible": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "room": "12096165734",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:28Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 2,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": null,
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": null,
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "17866147413",
                        "name": "Malena Kuhn"
                      }
                    },
                    "requestor": {
                      "id": 874,
                      "email": "rusty.esq.kuphal@stoltenberg.test",
                      "name": "Rusty Kuphal Esq."
                    },
                    "responsible": null,
                    "room": "17866147413",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 3,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": null,
                    "created_at": "2026-08-27T21:03:27Z",
                    "department": null,
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "15138164737",
                        "name": "Maggie Tromp I"
                      }
                    },
                    "requestor": {
                      "id": 9020,
                      "email": "lonny.osinski.fr@romaguera.example",
                      "name": "Fr. Lonny Osinski"
                    },
                    "responsible": null,
                    "room": "15138164737",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:00:27Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 11,
                    "archived": false,
                    "assessment": null,
                    "assumed_at": null,
                    "client": {
                      "id": 8,
                      "name": "Rolfson, Feest and Orn"
                    },
                    "created_at": "2026-08-27T21:03:28Z",
                    "department": null,
                    "last_client_message": null,
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "16096034171",
                        "name": "Dr. Maxwell Yundt"
                      }
                    },
                    "requestor": {
                      "id": 2699,
                      "email": "fahey_oleta_rep@marquardt-lemke.test",
                      "name": "Rep. Oleta Fahey"
                    },
                    "responsible": null,
                    "room": "16096034171",
                    "started_by": "Client",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:28Z",
                    "waiting_answer": false
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do chat"
                      },
                      "archived": {
                        "type": "boolean",
                        "description": "O chat está arquivado ou finalizado?"
                      },
                      "assessment": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Nota da avaliação do chat",
                        "minimum": 1,
                        "maximum": 5
                      },
                      "client": {
                        "type": "object",
                        "nullable": true,
                        "title": "Cliente",
                        "description": "Objeto contendo informações sobre o cliente associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "description": "Data de criação do chat"
                      },
                      "department": {
                        "type": "object",
                        "nullable": true,
                        "title": "Departamento",
                        "description": "Objeto contendo informações sobre o departamento associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do departamento"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do departamento"
                          },
                          "selected_at": {
                            "type": "string",
                            "description": "Data que o departamento foi selecionado"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "selected_at"
                        ]
                      },
                      "last_client_message": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data e hora da última mensagem enviada pelo cliente no chat"
                      },
                      "online": {
                        "type": "boolean",
                        "description": "Específico para origem widget, indica se na conversa, quem abriu o chat ainda está online"
                      },
                      "origin": {
                        "type": "object",
                        "title": "Origem",
                        "description": "Objeto contendo informações sobre a origem do chat",
                        "properties": {
                          "integration_id": {
                            "type": "integer",
                            "description": "ID da integração que deu origem ao chat"
                          },
                          "_type": {
                            "type": "string",
                            "description": "Qual é a origem do chat",
                            "enum": [
                              "chat",
                              "site_widget",
                              "campaign",
                              "whatsapp",
                              "whatsapp_web",
                              "gupshup",
                              "whatsapp_cloud"
                            ]
                          },
                          "fields": {
                            "type": "object",
                            "nullable": true,
                            "additionalProperties": true,
                            "description": "Campo JSON com estrutura variada e dinâmica. As chaves e tipos de valor podem variar conforme a origem do chat",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true,
                                "description": "Quando disponível, esse campo irá conter o nome do contato"
                              }
                            }
                          }
                        },
                        "required": [
                          "integration_id",
                          "_type",
                          "fields"
                        ]
                      },
                      "requestor": {
                        "type": "object",
                        "title": "Solicitante",
                        "description": "Objeto contendo informações sobre o solicitante associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "nullable": true,
                            "description": "ID do solicitante"
                          },
                          "email": {
                            "type": "string",
                            "nullable": true,
                            "description": "E-mail do solicitante"
                          },
                          "name": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome do solicitante ou nome do contato.\n* Quando o chat possui um solicitante vinculado, retorna o nome do solicitante\n* Quando o chat não possui solicitante vinculado, retorna o nome do contato"
                          }
                        },
                        "required": [
                          "id",
                          "email",
                          "name"
                        ]
                      },
                      "room": {
                        "type": "string",
                        "description": "Identificador da sessão do chat. Pode ser o número do chat, o identificador do WhatsApp ou um identificador único de sessão"
                      },
                      "started_by": {
                        "type": "string",
                        "description": "Indicador de quem iniciou o chat",
                        "enum": [
                          "Client",
                          "Attendant",
                          "Campaign",
                          "API"
                        ]
                      },
                      "ticket": {
                        "type": "object",
                        "title": "Ticket",
                        "description": "Objeto contendo informações sobre o ticket relacionado ao chat",
                        "nullable": true,
                        "properties": {
                          "number": {
                            "type": "integer",
                            "description": "Número do ticket"
                          },
                          "title": {
                            "type": "string",
                            "description": "Título do ticket"
                          }
                        },
                        "required": [
                          "number",
                          "title"
                        ]
                      },
                      "updated_at": {
                        "type": "string",
                        "description": "Data da última modificação no chat"
                      },
                      "waiting_answer": {
                        "type": "boolean",
                        "description": "O chat está esperando resposta do atendente?"
                      },
                      "assumed_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data em que o chat foi assumido"
                      },
                      "responsible": {
                        "type": "object",
                        "title": "Responsável",
                        "nullable": true,
                        "description": "Objeto contendo informações sobre o usuário responsável associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do usuário responsável"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do usuário responsável"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "archived",
                      "assessment",
                      "client",
                      "created_at",
                      "department",
                      "last_client_message",
                      "online",
                      "origin",
                      "requestor",
                      "room",
                      "started_by",
                      "ticket",
                      "updated_at",
                      "waiting_answer",
                      "assumed_at",
                      "responsible"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Origem - opção inválida": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "origins": [
                          "'walkie-talkie' is not a valid origin"
                        ]
                      }
                    }
                  },
                  "Number - não aceita letras": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Requestor_id - números menores ou iguais a 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "requestor_id": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  },
                  "created_at_start - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_start": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "created_at_end - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_end": [
                          "invalid datetime"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      }
    },
    "/chats/archived": {
      "get": {
        "summary": "Listar chats arquivados",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "department_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do departamento",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do cliente",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "requestor_id",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats por ID do solicitante vinculado ao chat",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "number",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo número que entrou em contato.\nÉ necessário uma licença Whatsapp para utilizar esse parâmetro",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "origins",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pelo canal de origem. Pode ser informada mais de uma origem, separada por vírgula",
            "schema": {
              "type": "string",
              "enum": [
                "chat",
                "site_widget",
                "campaign",
                "whatsapp",
                "whatsapp_web",
                "gupshup",
                "whatsapp_cloud"
              ]
            },
            "examples": {
              "1": {
                "value": "gupshup",
                "summary": "Filtrar por chats de origem gupshup"
              },
              "2": {
                "value": "gupshup,site_widget",
                "summary": "Filtrar por chats de origem gupshup ou widget"
              }
            }
          },
          {
            "name": "started_by",
            "in": "query",
            "required": false,
            "description": "Filtrar os chats pela forma de como eles foram iniciados",
            "schema": {
              "type": "string",
              "enum": [
                "Client",
                "Attendant",
                "Campaign",
                "API"
              ]
            },
            "examples": {
              "0": {
                "value": "Client",
                "summary": "Chats iniciados pelo cliente"
              },
              "1": {
                "value": "Attendant",
                "summary": "Chats iniciados pelo atendente"
              },
              "2": {
                "value": "Campaign",
                "summary": "Chats iniciados através da funcionalidade de campanha"
              },
              "3": {
                "value": "API",
                "summary": "Chats iniciados através da API"
              }
            }
          },
          {
            "name": "canceled",
            "in": "query",
            "required": false,
            "description": "Filtrar por chats cancelados",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, retorna todos os chats"
              },
              "1": {
                "value": true,
                "summary": "Retorna apenas os chats cancelados"
              },
              "2": {
                "value": false,
                "summary": "Retorna apenas os chats não cancelados"
              }
            },
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "created_at_start",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação maior ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de início de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados a partir de 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T00:00:00Z",
                "summary": "Chats criados a partir de 31/01/2024 às 00:00:00 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at_end",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de criação menor ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de fim de criação"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats criados até 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T23:59:59Z",
                "summary": "Chats criados até 31/01/2024 às 23:59:59 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "finished_at_start",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de finalização maior ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de início de finalização"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats finalizados a partir de 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T00:00:00Z",
                "summary": "Chats finalizados a partir de 31/01/2024 às 00:00:00 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "finished_at_end",
            "in": "query",
            "required": false,
            "description": "Filtrar chats com data de finalização menor ou igual ao valor informado (YYYY-MM-DDTHH:MM:SSZ)",
            "examples": {
              "0": {
                "value": "",
                "summary": "Quando não informado, não filtra por data de fim de finalização"
              },
              "1": {
                "value": "2024-01-31",
                "summary": "Chats finalizados até 31/01/2024"
              },
              "2": {
                "value": "2024-01-31T23:59:59Z",
                "summary": "Chats finalizados até 31/01/2024 às 23:59:59 UTC"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os chats que estão arquivados (finalizados ou cancelados) em sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_chats_archived",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 14,
                    "archived": true,
                    "assessment": 4,
                    "assumed_at": "2026-08-27T20:55:29Z",
                    "canceled": true,
                    "client": {
                      "id": 11,
                      "name": "Rath Inc"
                    },
                    "created_at": "2026-08-27T20:53:29Z",
                    "department": {
                      "id": 13,
                      "name": "Cremin-Pacocha",
                      "selected_at": "2026-08-27T20:54:29Z"
                    },
                    "last_client_message": "2026-08-27T21:03:29Z",
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "18597170220",
                        "name": "Tequila Zieme"
                      }
                    },
                    "requestor": {
                      "id": 1904,
                      "email": "zulauf.elwood@ebert.example",
                      "name": "Elwood Zulauf"
                    },
                    "room": "18597170220",
                    "started_by": "API",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:29Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 13,
                    "archived": true,
                    "assessment": 2,
                    "assumed_at": "2026-08-27T20:55:29Z",
                    "canceled": false,
                    "client": {
                      "id": 10,
                      "name": "Krajcik, Fisher and Nitzsche"
                    },
                    "created_at": "2026-08-27T20:53:29Z",
                    "department": {
                      "id": 13,
                      "name": "Cremin-Pacocha",
                      "selected_at": "2026-08-27T20:54:29Z"
                    },
                    "last_client_message": "2026-08-27T21:03:29Z",
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "15036143860",
                        "name": "Johnetta Mueller II"
                      }
                    },
                    "requestor": {
                      "id": 5986,
                      "email": "rempel.darius@hackett.example",
                      "name": "Darius Rempel"
                    },
                    "room": "15036143860",
                    "started_by": "API",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:29Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 12,
                    "archived": true,
                    "assessment": 3,
                    "assumed_at": "2026-08-27T20:55:29Z",
                    "canceled": false,
                    "client": {
                      "id": 9,
                      "name": "Flatley LLC"
                    },
                    "created_at": "2026-08-27T20:53:29Z",
                    "department": {
                      "id": 13,
                      "name": "Cremin-Pacocha",
                      "selected_at": "2026-08-27T20:54:29Z"
                    },
                    "last_client_message": "2026-08-27T21:03:29Z",
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "18189192213",
                        "name": "Charlette Bradtke"
                      }
                    },
                    "requestor": {
                      "id": 1158,
                      "email": "leuschke_sandy@mayer-oberbrunner.example",
                      "name": "Sandy Leuschke"
                    },
                    "room": "18189192213",
                    "started_by": "API",
                    "ticket": null,
                    "updated_at": "2026-08-27T21:03:29Z",
                    "waiting_answer": false
                  },
                  {
                    "id": 1,
                    "archived": true,
                    "assessment": 4,
                    "assumed_at": "2026-08-27T20:55:27Z",
                    "canceled": false,
                    "client": {
                      "id": 3,
                      "name": "Koch Group"
                    },
                    "created_at": "2026-08-27T20:53:27Z",
                    "department": {
                      "id": 14,
                      "name": "Bogan-Friesen",
                      "selected_at": "2026-08-27T20:54:27Z"
                    },
                    "last_client_message": "2026-08-27T21:03:27Z",
                    "online": false,
                    "origin": {
                      "integration_id": 1,
                      "_type": "gupshup",
                      "fields": {
                        "phone": "15702623601",
                        "name": "Delmer Bartoletti"
                      }
                    },
                    "requestor": {
                      "id": 7803,
                      "email": "fransisca_kerluke_do@schinner-metz.example",
                      "name": "Fransisca Kerluke DO"
                    },
                    "room": "15702623601",
                    "started_by": "API",
                    "ticket": {
                      "number": 1,
                      "title": "To be, or not to be: that is the question"
                    },
                    "updated_at": "2026-08-27T21:03:27Z",
                    "waiting_answer": false
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do chat"
                      },
                      "archived": {
                        "type": "boolean",
                        "description": "O chat está arquivado ou finalizado?"
                      },
                      "assessment": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Nota da avaliação do chat",
                        "minimum": 1,
                        "maximum": 5
                      },
                      "client": {
                        "type": "object",
                        "nullable": true,
                        "title": "Cliente",
                        "description": "Objeto contendo informações sobre o cliente associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "description": "Data de criação do chat"
                      },
                      "department": {
                        "type": "object",
                        "nullable": true,
                        "title": "Departamento",
                        "description": "Objeto contendo informações sobre o departamento associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do departamento"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do departamento"
                          },
                          "selected_at": {
                            "type": "string",
                            "description": "Data que o departamento foi selecionado"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "selected_at"
                        ]
                      },
                      "last_client_message": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data e hora da última mensagem enviada pelo cliente no chat"
                      },
                      "online": {
                        "type": "boolean",
                        "description": "Específico para origem widget, indica se na conversa, quem abriu o chat ainda está online"
                      },
                      "origin": {
                        "type": "object",
                        "title": "Origem",
                        "description": "Objeto contendo informações sobre a origem do chat",
                        "properties": {
                          "integration_id": {
                            "type": "integer",
                            "description": "ID da integração que deu origem ao chat"
                          },
                          "_type": {
                            "type": "string",
                            "description": "Qual é a origem do chat",
                            "enum": [
                              "chat",
                              "site_widget",
                              "campaign",
                              "whatsapp",
                              "whatsapp_web",
                              "gupshup",
                              "whatsapp_cloud"
                            ]
                          },
                          "fields": {
                            "type": "object",
                            "nullable": true,
                            "additionalProperties": true,
                            "description": "Campo JSON com estrutura variada e dinâmica. As chaves e tipos de valor podem variar conforme a origem do chat",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true,
                                "description": "Quando disponível, esse campo irá conter o nome do contato"
                              }
                            }
                          }
                        },
                        "required": [
                          "integration_id",
                          "_type",
                          "fields"
                        ]
                      },
                      "requestor": {
                        "type": "object",
                        "title": "Solicitante",
                        "description": "Objeto contendo informações sobre o solicitante associado ao chat",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "nullable": true,
                            "description": "ID do solicitante"
                          },
                          "email": {
                            "type": "string",
                            "nullable": true,
                            "description": "E-mail do solicitante"
                          },
                          "name": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome do solicitante ou nome do contato.\n* Quando o chat possui um solicitante vinculado, retorna o nome do solicitante\n* Quando o chat não possui solicitante vinculado, retorna o nome do contato"
                          }
                        },
                        "required": [
                          "id",
                          "email",
                          "name"
                        ]
                      },
                      "room": {
                        "type": "string",
                        "description": "Identificador da sessão do chat. Pode ser o número do chat, o identificador do WhatsApp ou um identificador único de sessão"
                      },
                      "started_by": {
                        "type": "string",
                        "description": "Indicador de quem iniciou o chat",
                        "enum": [
                          "Client",
                          "Attendant",
                          "Campaign",
                          "API"
                        ]
                      },
                      "ticket": {
                        "type": "object",
                        "title": "Ticket",
                        "description": "Objeto contendo informações sobre o ticket relacionado ao chat",
                        "nullable": true,
                        "properties": {
                          "number": {
                            "type": "integer",
                            "description": "Número do ticket"
                          },
                          "title": {
                            "type": "string",
                            "description": "Título do ticket"
                          }
                        },
                        "required": [
                          "number",
                          "title"
                        ]
                      },
                      "updated_at": {
                        "type": "string",
                        "description": "Data da última modificação no chat"
                      },
                      "waiting_answer": {
                        "type": "boolean",
                        "description": "O chat está esperando resposta do atendente?"
                      },
                      "assumed_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data em que o chat foi assumido"
                      },
                      "canceled": {
                        "type": "boolean",
                        "description": "O chat está cancelado?"
                      }
                    },
                    "required": [
                      "id",
                      "archived",
                      "assessment",
                      "client",
                      "created_at",
                      "department",
                      "last_client_message",
                      "online",
                      "origin",
                      "requestor",
                      "room",
                      "started_by",
                      "ticket",
                      "updated_at",
                      "waiting_answer",
                      "assumed_at",
                      "canceled"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Origem - opção inválida": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "origins": [
                          "'walkie-talkie' is not a valid origin"
                        ]
                      }
                    }
                  },
                  "Number - não aceita letras": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Requestor_id - números menores ou iguais a 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "requestor_id": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  },
                  "created_at_start - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_start": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "created_at_end - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_at_end": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "finished_at_start - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "finished_at_start": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "finished_at_end - formato inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "finished_at_end": [
                          "invalid datetime"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      }
    },
    "/chats/send_message": {
      "post": {
        "summary": "Enviar mensagem via Whatsapp",
        "tags": [
          "Chats"
        ],
        "parameters": [

        ],
        "description": "Este método envia uma mensagem via integrações WhatsApp",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_chats_send_message",
        "responses": {
          "201": {
            "description": "### **Agendado o envio da mensagem**",
            "content": {
              "application/json": {
                "example": {
                  "status": "enqueued",
                  "job_id": "48ee0f30191410bb123039f1"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Indica que a solicitação foi enfileirada com sucesso"
                    },
                    "job_id": {
                      "type": "string",
                      "description": "Identificador do agendamento da solicitação. Em caso de problemas com o envio da mensagem, informe esse ID ao suporte"
                    }
                  },
                  "required": [
                    "status",
                    "job_id"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "Não preencheu valores obrigatórios": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "integration_id": [
                          "can't be blank"
                        ],
                        "number": [
                          "can't be blank"
                        ],
                        "template_id": [
                          "can't be blank :message or :template_id"
                        ]
                      }
                    }
                  },
                  "Informou um cliente que não existe": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "client_id": [
                          "Client not found or you have not access to"
                        ]
                      }
                    }
                  },
                  "Informou um ticket que não tem acesso": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "ticket_number": [
                          "Ticket not found or you have not access to"
                        ]
                      }
                    }
                  },
                  "Number precisa ser um valor numérico": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "number": [
                          "is not a number",
                          "is not a valid phone number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de Whatsapp": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença Whatsapp** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'whatsapp' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          },
          {
            "color": "orange",
            "label": "Licença Whatsapp"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "integer",
                    "description": "**Número de telefone**, para o qual a mensagem será enviada.\n\nPor padrão, o sistema vai tentar validar esse telefone como um número brasileiro. Se você deseja inserir um número de outro país, será necessário utilizar o atributo `country_code` junto no corpo da sua requisição",
                    "default": null
                  },
                  "country_code": {
                    "type": "string",
                    "example": "US",
                    "default": "BR",
                    "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\n\nEste atributo será utilizado para validar se o número de telefone informado é um número válido em um outro país diferente do Brasil"
                  },
                  "message": {
                    "type": "string",
                    "description": "**Conteúdo da mensagem**. Utilize esse atributo apenas se você deseja enviar uma mensagem que não é um modelo HSM ou modelo de chat"
                  },
                  "integration_id": {
                    "type": "integer",
                    "description": "**Identificador de integração**\n\nO tipo de integrações permitidas nessa rota são: 'gupshup' e 'whatsapp_cloud'",
                    "default": null
                  },
                  "template_id": {
                    "type": "integer",
                    "description": "**Identificador de template** - modelo de chat, ou modelo de Início de chat (Gupshup).\n\nUtilize esse atributo se você deseja enviar um modelo HSM ou modelo de chat.\n\n**Extra**: Se você está utilizando um HSM e deseja enviar parâmetros personalizados no valor das variáveis, utilize o atributo *parameters* em conjunto a este",
                    "default": null
                  },
                  "name": {
                    "type": "string",
                    "description": "**Nome do solicitante**"
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "**Identificador de departamento**, se você deseja vincular o chat criado a um departamento"
                  },
                  "ticket_number": {
                    "type": "integer",
                    "description": "**Número do ticket**, se você deseja vincular o chat criado a um ticket"
                  },
                  "client_id": {
                    "type": "integer",
                    "description": "**Identificador de cliente**, se você deseja vincular o chat criado a um cliente"
                  },
                  "parameters": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Lista de strings, com os **valores personalizados das variáveis** do modelo HSM (*template_id*) que será enviado"
                  },
                  "header_parameters": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Utilizado apenas em integrações **whatsapp_cloud**. Lista de strings, com os **valores personalizados das variáveis que vão no cabeçalho** do modelo HSM (*template_id*) que será enviado"
                  },
                  "archive": {
                    "type": "boolean",
                    "description": "Arquivar chat após o envio?\n\nAo enviar esse atributo como **true**, o chat será criado e enviado direto para a caixa de encerrados",
                    "default": false
                  }
                },
                "required": [
                  "number",
                  "integration_id"
                ]
              },
              "examples": {
                "Enviar uma mensagem": {
                  "summary": "Enviar uma mensagem",
                  "value": {
                    "number": 5575977348116,
                    "message": "Olá, tudo bem?",
                    "integration_id": 1
                  }
                },
                "Enviar modelo de mensagem": {
                  "summary": "Enviar modelo de mensagem",
                  "value": {
                    "number": 5582901386187,
                    "integration_id": 1,
                    "template_id": 1
                  }
                },
                "Enviar modelo de mensagem HSM com parâmetros personalizados": {
                  "summary": "Enviar modelo de mensagem HSM com parâmetros personalizados",
                  "value": {
                    "number": 5563918739276,
                    "integration_id": 1,
                    "template_id": 1,
                    "parameters": [
                      "Valor 1",
                      "Valor 2"
                    ]
                  }
                },
                "Enviar modelo de mensagem HSM com parâmetros de cabeçalho personalizados": {
                  "summary": "Enviar modelo de mensagem HSM com parâmetros de cabeçalho personalizados",
                  "value": {
                    "number": 5544941235743,
                    "integration_id": 1,
                    "template_id": 1,
                    "header_parameters": [
                      "Valor Header 1",
                      "Valor Header 2"
                    ]
                  }
                },
                "Enviar HSM com todos os atributos possíveis": {
                  "summary": "Enviar HSM com todos os atributos possíveis",
                  "value": {
                    "number": 12707400704,
                    "country_code": "US",
                    "integration_id": 1,
                    "template_id": 1,
                    "parameters": [
                      "Valor 1",
                      "Valor 2"
                    ],
                    "header_parameters": [
                      "Valor Header 1",
                      "Valor Header 2"
                    ],
                    "name": "Marcia da Mota",
                    "client_id": 2,
                    "ticket_number": 1,
                    "department_id": 13,
                    "archive": true
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Confira abaixo exemplos de uso"
        }
      }
    },
    "/chats/{id}/archive": {
      "put": {
        "summary": "Finalizar chat",
        "tags": [
          "Chats"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID do chat que será encerrado",
            "example": 75,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Finaliza e arquiva um determinado chat em sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_chats_id_archive",
        "responses": {
          "202": {
            "description": "### **A solicitação para finalizar o chat foi aceita e será processada em segundo plano**",
            "content": {
              "application/json": {
                "example": {
                  "status": "enqueued",
                  "job_id": "72caaf4492facd094b98fd7d"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Indica que a solicitação foi enfileirada com sucesso"
                    },
                    "job_id": {
                      "type": "string",
                      "description": "Identificador do agendamento da solicitação. Em caso de problemas com a finalização do chat, informe esse ID ao suporte"
                    }
                  },
                  "required": [
                    "status",
                    "job_id"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "services_catalogs_item_id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Chat não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Chat with 'id'=\"99999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "services_catalogs_item_id": {
                    "type": "integer",
                    "example": 1,
                    "default": null,
                    "nullable": true,
                    "description": "**Identificador do item de catálogo de serviços**, para quando a configuração do chat está definida para \"*Usar catálogo de serviços no chat*\"."
                  }
                }
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "services_catalogs_item_id": 1
                  }
                }
              }
            }
          },
          "description": "Se a configuração de chat da sua organização estiver definida como \"*Usar catálogo de serviços no chat*\", é obrigatório incluir o ID de um item do catálogo de serviços no corpo dessa requisição, para que o chat possa ser encerrado."
        }
      }
    },
    "/clients/{id}/logo": {
      "post": {
        "summary": "Adicionar logo de cliente",
        "tags": [
          "Clientes - Arquivos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Adiciona ou altera a imagem de logo existente em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_id_logo",
        "responses": {
          "200": {
            "description": "### **Logo adicionada com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "logo": "[AMBIENTE DE TESTES] - Link de acesso a logo bloqueado"
                }
              }
            }
          },
          "400": {
            "description": "### **Arquivo não foi informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: file"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com o arquivo fornecido**",
            "content": {
              "application/json": {
                "examples": {
                  "Não foi informado um arquivo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "file": [
                          "You are not sending a File. The value of 'file' needs to be a File type and you must send only one file"
                        ]
                      }
                    }
                  },
                  "Arquivo enviado não é uma imagem": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "logo_content_type": [
                          "Logo content_type must be a image type"
                        ]
                      }
                    }
                  },
                  "Imagem enviada é maior que 2mb": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "logo_file_size": [
                          "must be in between 0 Bytes and 2 MB"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Logo do cliente.\n\n  Esse parâmetro deve respeitar os seguintes critérios para ser adicionado corretamente:\n  - O tipo do conteúdo deve ser uma imagem\n  - Deve possuir no máximo 2 megabytes"
                  }
                }
              }
            }
          },
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita o seguinte atributo:"
        }
      },
      "delete": {
        "summary": "Excluir logo de cliente",
        "tags": [
          "Clientes - Arquivos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove a imagem de logo existente em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_clients_id_logo",
        "responses": {
          "204": {
            "description": "### **Logo removida com sucesso**\n> Essa resposta não contem body"
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/clients/{client_id}/files": {
      "post": {
        "summary": "Adicionar arquivo de cliente",
        "tags": [
          "Clientes - Arquivos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Adiciona um arquivo nos anexos de clientes em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_client_id_files",
        "responses": {
          "201": {
            "description": "### **Arquivo adicionado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "content_type": "text/plain",
                  "file_name": "client_upload.txt",
                  "size": 37,
                  "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                }
              }
            }
          },
          "400": {
            "description": "### **Arquivo não foi informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: file"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com o arquivo fornecido**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "file": [
                      "You are not sending a File. The value of 'file' needs to be a File type and you must send only one file"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Logo do cliente.\n\n  Esse parâmetro deve respeitar os seguintes critérios para ser adicionado corretamente:\n  - Deve ser um único arquivo\n  - Deve possuir no máximo 10 megabytes"
                  }
                }
              }
            }
          },
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita o seguinte atributo:"
        }
      },
      "get": {
        "summary": "Listar arquivos de cliente",
        "tags": [
          "Clientes - Arquivos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os arquivos anexados em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_files",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 2,
                    "content_type": "text/plain",
                    "file_name": "client_upload.txt",
                    "size": 37,
                    "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                  }
                ]
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "limit": [
                      "must be greater than 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/clients/{client_id}/files/{id}": {
      "get": {
        "summary": "Exibir arquivo de cliente",
        "tags": [
          "Clientes - Arquivos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do arquivo",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe um arquivo anexado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_files_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "content_type": "text/plain",
                  "file_name": "client_upload.txt",
                  "size": 37,
                  "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "delete": {
        "summary": "Excluir arquivo de cliente",
        "tags": [
          "Clientes - Arquivos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do arquivo",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove um arquivo anexado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_clients_client_id_files_id",
        "responses": {
          "204": {
            "description": "### **Arquivo removido com sucesso**\n> Essa resposta não contem body"
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/clients": {
      "get": {
        "summary": "Listar clientes",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "active",
            "in": "query",
            "description": "Com esse parâmetro é possível filtrar os clientes ativos e inativos",
            "examples": {
              "Ativos": {
                "value": true
              },
              "Inativos": {
                "value": false
              }
            },
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Com esse parâmetro é possível filtrar os clientes pelo nome ou razão social",
            "example": "Nome do cliente",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "social_revenue",
            "in": "query",
            "description": "Com esse parâmetro é possível filtrar os clientes pelo CPF / CNPJ (com ou sem os caracteres especiais)",
            "required": false,
            "examples": {
              "Sem caracteres especiais": {
                "value": "00011122255",
                "summary": "CPF sem caracteres especiais"
              },
              "Com caracteres especiais": {
                "value": "00.111.222/3333-44",
                "summary": "CNPJ com caracteres especiais"
              },
              "Alfanumérico com caracteres especiais": {
                "value": "AB.CDE.FGH/1234-56",
                "summary": "CNPJ alfanumérico com caracteres especiais"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os clientes que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre: Lista os clientes que o usuário tem acesso"
          }
        ],
        "operationId": "get_clients",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "name": "Bechtelar-Marvin",
                    "social": "Kohler and Sons",
                    "social_revenue": "58587401000846",
                    "status": true
                  },
                  {
                    "id": 2,
                    "name": "Schowalter LLC",
                    "social": "Lehner LLC",
                    "social_revenue": "48332065000160",
                    "status": true
                  },
                  {
                    "id": 3,
                    "name": "Koch Group",
                    "social": "Kuhlman, Oberbrunner and Nitzsche",
                    "social_revenue": "01878400000248",
                    "status": true
                  },
                  {
                    "id": 4,
                    "name": "Kuphal, Schneider and Veum",
                    "social": "Jerde LLC",
                    "social_revenue": "29385461000292",
                    "status": true
                  },
                  {
                    "id": 5,
                    "name": "Volkman and Sons",
                    "social": "McCullough and Sons",
                    "social_revenue": "44007972000698",
                    "status": true
                  },
                  {
                    "id": 6,
                    "name": "Gutmann and Sons",
                    "social": "Boyer Inc",
                    "social_revenue": "80814155000958",
                    "status": true
                  },
                  {
                    "id": 7,
                    "name": "Donnelly, Greenholt and Greenholt",
                    "social": "Huels, Keeling and Yundt",
                    "social_revenue": "75478352000903",
                    "status": true
                  },
                  {
                    "id": 8,
                    "name": "Rolfson, Feest and Orn",
                    "social": "Welch LLC",
                    "social_revenue": "92697487000636",
                    "status": true
                  },
                  {
                    "id": 9,
                    "name": "Flatley LLC",
                    "social": "Kutch Inc",
                    "social_revenue": "91178148000508",
                    "status": true
                  },
                  {
                    "id": 10,
                    "name": "Krajcik, Fisher and Nitzsche",
                    "social": "Stamm, Leuschke and Howe",
                    "social_revenue": "48431137000631",
                    "status": true
                  },
                  {
                    "id": 11,
                    "name": "Rath Inc",
                    "social": "Borer Group",
                    "social_revenue": "93283192000333",
                    "status": true
                  },
                  {
                    "id": 12,
                    "name": "Green, Reichel and Romaguera",
                    "social": "Borer, Kerluke and Fahey",
                    "social_revenue": "30575048000199",
                    "status": true
                  },
                  {
                    "id": 13,
                    "name": "Abbott-Roberts",
                    "social": "Senger-Konopelski",
                    "social_revenue": "31174653000706",
                    "status": true
                  },
                  {
                    "id": 14,
                    "name": "McKenzie-Kunde",
                    "social": "Spinka, Klein and Lueilwitz",
                    "social_revenue": "48787768000779",
                    "status": true
                  },
                  {
                    "id": 15,
                    "name": "Lang, Ward and VonRueden",
                    "social": "Hill-Walsh",
                    "social_revenue": "94143648000160",
                    "status": true
                  },
                  {
                    "id": 16,
                    "name": "Lesch, Watsica and Hoppe",
                    "social": "Nienow Inc",
                    "social_revenue": "18732186000309",
                    "status": true
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "title": "Listar clientes",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do cliente"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do cliente"
                      },
                      "social": {
                        "type": "string",
                        "description": "Razão social"
                      },
                      "social_revenue": {
                        "type": "string",
                        "description": "CPF/CNPJ"
                      },
                      "status": {
                        "type": "boolean",
                        "description": "O cliente está ativo?"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "social",
                      "status"
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar cliente",
        "tags": [
          "Clientes"
        ],
        "description": "Cria um novo cliente na sua organização.\n- Para vincular todas as mesas em um cliente durante a sua criação, você pode informar o atributo `add_all_desks` como true no body dessa requisição.\n- Para vincular todos os grupos técnicos em um cliente durante a sua criação, você pode informar o atributo `add_all_technical_groups` como true no body dessa requisição.\n",
        "parameters": [

        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients",
        "responses": {
          "201": {
            "description": "### **Cliente criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 17,
                  "address_ids": [

                  ],
                  "anotations": "Laudantium maiores repudiandae. Est voluptatem explicabo.",
                  "authorization_flow": true,
                  "billing_report_type": "detailed",
                  "contact_ids": [

                  ],
                  "desk_ids": [
                    1
                  ],
                  "email_financial": "lonny@franecki-mayer.test",
                  "equipment_counter": 0,
                  "estadual_registration": "321",
                  "form_of_payment": "BOLETO",
                  "group_counter": 1,
                  "logo": "[AMBIENTE DE TESTES] - Link de acesso a logo bloqueado",
                  "max_agents": 1,
                  "municipal_registration": "123",
                  "name": "Nome do cliente",
                  "quarterly_bill_client_id": 16,
                  "quarterly_billing": true,
                  "sms_financial": "47984253028",
                  "social": "Razão social",
                  "social_revenue": "12312312345",
                  "status": true,
                  "technical_group_ids": [
                    1
                  ],
                  "user_counter": 0,
                  "user_ids": [

                  ],
                  "work_folder": "https://app.tiflux.com/v/"
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir informações do cliente",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do cliente"
                    },
                    "address_ids": {
                      "type": "array",
                      "description": "ID dos endereços cadastrados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "anotations": {
                      "type": "string",
                      "description": "Campo de anotações do cadastro do cliente",
                      "nullable": true
                    },
                    "authorization_flow": {
                      "type": "boolean",
                      "description": "Se o fluxo de autorização para novos tickets está ativo ou não no cliente"
                    },
                    "billing_report_type": {
                      "type": "string",
                      "description": "Relatório de fechamento do faturamento, pode ser 3 valores",
                      "enum": [
                        "detailed_with_appointment",
                        "detailed",
                        "synthetic",
                        ""
                      ]
                    },
                    "contact_ids": {
                      "type": "array",
                      "description": "ID dos contatos cadastrados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "desk_ids": {
                      "type": "array",
                      "description": "ID das mesas vinculadas no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "email_financial": {
                      "type": "string",
                      "description": "E-mail principal de envio de faturamento"
                    },
                    "equipment_counter": {
                      "type": "integer",
                      "description": "Contagem de quantos equipamentos tem cadastrados no cliente"
                    },
                    "estadual_registration": {
                      "type": "string",
                      "description": "Inscrição estadual",
                      "nullable": true
                    },
                    "form_of_payment": {
                      "type": "string",
                      "description": "Tipo de pagamento definido para integrações de faturamento",
                      "enum": [
                        "BOLETO",
                        "CREDIT_CARD",
                        "UNDEFINED",
                        "PIX"
                      ]
                    },
                    "group_counter": {
                      "type": "integer",
                      "description": "Contagem de quantos grupos de recursos tem cadastrados no cliente"
                    },
                    "logo": {
                      "type": "string",
                      "description": "URL de acesso para a imagem definida de logo do cliente",
                      "nullable": true
                    },
                    "max_agents": {
                      "type": "integer",
                      "description": "Máximo de agentes definidos no cliente"
                    },
                    "municipal_registration": {
                      "type": "string",
                      "description": "Inscrição municipal",
                      "nullable": true
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do cliente"
                    },
                    "quarterly_bill_client_id": {
                      "type": "integer",
                      "description": "Faturar em nome do cliente com esse ID",
                      "nullable": true
                    },
                    "quarterly_billing": {
                      "type": "boolean",
                      "description": "Faturamento quarteirizado ativo?"
                    },
                    "sms_financial": {
                      "type": "string",
                      "description": "Envio de SMS para integrações de faturamento",
                      "nullable": true
                    },
                    "social": {
                      "type": "string",
                      "description": "Razão social"
                    },
                    "social_revenue": {
                      "type": "string",
                      "description": "CPF/CNPJ",
                      "nullable": true
                    },
                    "status": {
                      "type": "boolean",
                      "description": "Cliente ativo?"
                    },
                    "technical_group_ids": {
                      "type": "array",
                      "description": "ID dos grupos técnicos vinculados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "user_counter": {
                      "type": "integer",
                      "description": "Contagem de quantos usuários clientes tem cadastrados/vinculados no cliente"
                    },
                    "user_ids": {
                      "type": "array",
                      "description": "ID dos usuários clientes vinculados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "work_folder": {
                      "type": "string",
                      "description": "Pasta de trabalho",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "social_revenue": [
                      "Invalid Document inserted. Please use a CPF or CNPJ."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "Criar um cliente",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do cliente"
                  },
                  "social": {
                    "type": "string",
                    "description": "Razão social"
                  },
                  "social_revenue": {
                    "type": "string",
                    "description": "CPF/CNPJ"
                  },
                  "desk_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "IDs das mesas que serão relacionadas nesse cliente"
                  },
                  "add_all_desks": {
                    "type": "boolean",
                    "description": "Vincular todas as mesas no cliente durante a sua criação",
                    "default": false
                  },
                  "technical_group_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "IDs dos grupos técnicos que serão relacionados nesse cliente"
                  },
                  "add_all_technical_groups": {
                    "type": "boolean",
                    "description": "Vincular todas os grupos técnicos no cliente durante a sua criação",
                    "default": false
                  },
                  "status": {
                    "type": "boolean",
                    "description": "Cliente ativo?"
                  },
                  "max_agents": {
                    "type": "integer",
                    "description": "Configuração de número máximo de agentes"
                  },
                  "email_financial": {
                    "type": "string",
                    "description": "E-mail principal de envio de faturamento"
                  },
                  "sms_financial": {
                    "type": "string",
                    "description": "Número de telefone. Para envio de SMS para integrações de faturamento"
                  },
                  "municipal_registration": {
                    "type": "string",
                    "description": "Inscrição municipal"
                  },
                  "estadual_registration": {
                    "type": "string",
                    "description": "Inscrição estadual"
                  },
                  "anotations": {
                    "type": "string",
                    "description": "Campo de anotações do cadastro do cliente"
                  },
                  "visible_to_clients": {
                    "type": "boolean",
                    "description": "Visível para clientes"
                  },
                  "work_folder": {
                    "type": "string",
                    "description": "Pasta de trabalho"
                  },
                  "quarterly_billing": {
                    "type": "boolean",
                    "description": "Faturamento quarteirizado?"
                  },
                  "quarterly_bill_client_id": {
                    "type": "integer",
                    "description": "Faturar em nome do cliente com esse ID"
                  },
                  "billing_report_type": {
                    "type": "string",
                    "description": "Relatório de fechamento do faturamento, pode ser 3 valores",
                    "enum": [
                      "detailed_with_appointment",
                      "detailed",
                      "synthetic",
                      ""
                    ]
                  },
                  "authorization_flow": {
                    "type": "boolean",
                    "description": "Se o fluxo de autorização para novos tickets está ativo ou não no cliente"
                  }
                },
                "required": [
                  "name",
                  "social"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Nome do cliente",
                    "social": "Razão social",
                    "social_revenue": "123.123.123.45",
                    "desk_ids": [
                      1
                    ],
                    "technical_group_ids": [
                      1
                    ],
                    "status": true,
                    "max_agents": 1,
                    "email_financial": "lonny@franecki-mayer.test",
                    "sms_financial": "47984253028",
                    "municipal_registration": "123",
                    "estadual_registration": "321",
                    "anotations": "Laudantium maiores repudiandae. Est voluptatem explicabo.",
                    "visible_to_clients": true,
                    "work_folder": "https://app.tiflux.com/v/",
                    "quarterly_billing": true,
                    "quarterly_bill_client_id": 16,
                    "billing_report_type": "detailed",
                    "authorization_flow": true
                  }
                }
              }
            }
          }
        }
      }
    },
    "/clients/{id}": {
      "get": {
        "summary": "Exibir cliente",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "show_entities",
            "in": "query",
            "description": "Exibir informações de campos personalizados no cliente?",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false
          }
        ],
        "description": "Exibe informações detalhadas sobre um determinado cliente.\n\nAo informar o parâmetro `show_entities`, será adicionado um atributo de nome `entities` na resposta dessa requisição. Contendo a lista de entidades vinculadas nesse cliente (onde apenas entidades preenchidas serão exibidas).\n\n> Se você deseja visualizar mais informações dos *contatos*, *endereços*, *grupos técnicos* ou *mesas* vinculados nesse cliente (além de seus respectivos IDs), você pode utilizar as seguintes rotas de Relacionamentos:\n> * [Listar contatos](#get-/clients/-client_id-/contacts)\n> * [Listar endereços](#get-/clients/-client_id-/addresses)\n> * [Listar mesas](#get-/clients/-id-/desks)\n> * [Listar grupos técnicos](#get-/clients/-id-/technical-groups)",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Exibir informações do cliente": {
                    "value": {
                      "id": 16,
                      "address_ids": [
                        32,
                        33
                      ],
                      "anotations": "Qui repellendus nihil. Quaerat voluptatibus eveniet.",
                      "authorization_flow": false,
                      "billing_report_type": "detailed_with_appointment",
                      "contact_ids": [
                        31,
                        32
                      ],
                      "desk_ids": [

                      ],
                      "email_financial": "hector@borer-heathcote.example",
                      "equipment_counter": 0,
                      "estadual_registration": null,
                      "form_of_payment": "BOLETO",
                      "group_counter": 1,
                      "logo": "[AMBIENTE DE TESTES] - Link de acesso a logo bloqueado",
                      "max_agents": 0,
                      "municipal_registration": null,
                      "name": "Lesch, Watsica and Hoppe",
                      "quarterly_bill_client_id": null,
                      "quarterly_billing": false,
                      "sms_financial": "47984253028",
                      "social": "Nienow Inc",
                      "social_revenue": "18732186000309",
                      "status": true,
                      "technical_group_ids": [

                      ],
                      "user_counter": 0,
                      "user_ids": [

                      ],
                      "work_folder": null
                    }
                  },
                  "Exibir informações de entidade do cliente (show_entities=true)": {
                    "value": {
                      "client": {
                        "id": 16,
                        "name": "Lesch, Watsica and Hoppe",
                        "social": "Nienow Inc",
                        "social_revenue": "18732186000309"
                      },
                      "entities": [
                        {
                          "id": 1,
                          "active": true,
                          "applied_in": "client",
                          "description": "Campo personalizado de menu",
                          "entity_fields": [
                            {
                              "id": 1,
                              "entity_field_id": 1,
                              "entity_id": 1,
                              "field_type": "text",
                              "name": "Campo de texto no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": "Texto que foi preenchido no campo personalizado"
                            },
                            {
                              "id": null,
                              "entity_field_id": 2,
                              "entity_id": 1,
                              "field_type": "text_area",
                              "name": "Campo de área de texto no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 3,
                              "entity_id": 1,
                              "field_type": "email",
                              "name": "Campo de email no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 4,
                              "entity_id": 1,
                              "field_type": "currency",
                              "name": "Campo de moeda no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 5,
                              "entity_id": 1,
                              "field_type": "phone",
                              "name": "Campo de telefone no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 6,
                              "entity_id": 1,
                              "field_type": "date",
                              "name": "Campo de data no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 7,
                              "entity_id": 1,
                              "field_type": "link",
                              "name": "Campo de link no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 8,
                              "entity_id": 1,
                              "field_type": "single_select",
                              "name": "Campo de Seleção única no cliente",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            },
                            {
                              "id": null,
                              "entity_field_id": 9,
                              "entity_id": 1,
                              "field_type": "checkbox",
                              "name": "Campo de Checkbox",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            }
                          ],
                          "menu_item": true,
                          "name": "Teste"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "Exibir informações do cliente",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do cliente"
                        },
                        "address_ids": {
                          "type": "array",
                          "description": "ID dos endereços cadastrados no cliente",
                          "items": {
                            "type": "integer"
                          }
                        },
                        "anotations": {
                          "type": "string",
                          "description": "Campo de anotações do cadastro do cliente",
                          "nullable": true
                        },
                        "authorization_flow": {
                          "type": "boolean",
                          "description": "Se o fluxo de autorização para novos tickets está ativo ou não no cliente"
                        },
                        "billing_report_type": {
                          "type": "string",
                          "description": "Relatório de fechamento do faturamento, pode ser 3 valores",
                          "enum": [
                            "detailed_with_appointment",
                            "detailed",
                            "synthetic",
                            ""
                          ]
                        },
                        "contact_ids": {
                          "type": "array",
                          "description": "ID dos contatos cadastrados no cliente",
                          "items": {
                            "type": "integer"
                          }
                        },
                        "desk_ids": {
                          "type": "array",
                          "description": "ID das mesas vinculadas no cliente",
                          "items": {
                            "type": "integer"
                          }
                        },
                        "email_financial": {
                          "type": "string",
                          "description": "E-mail principal de envio de faturamento"
                        },
                        "equipment_counter": {
                          "type": "integer",
                          "description": "Contagem de quantos equipamentos tem cadastrados no cliente"
                        },
                        "estadual_registration": {
                          "type": "string",
                          "description": "Inscrição estadual",
                          "nullable": true
                        },
                        "form_of_payment": {
                          "type": "string",
                          "description": "Tipo de pagamento definido para integrações de faturamento",
                          "enum": [
                            "BOLETO",
                            "CREDIT_CARD",
                            "UNDEFINED",
                            "PIX"
                          ]
                        },
                        "group_counter": {
                          "type": "integer",
                          "description": "Contagem de quantos grupos de recursos tem cadastrados no cliente"
                        },
                        "logo": {
                          "type": "string",
                          "description": "URL de acesso para a imagem definida de logo do cliente",
                          "nullable": true
                        },
                        "max_agents": {
                          "type": "integer",
                          "description": "Máximo de agentes definidos no cliente"
                        },
                        "municipal_registration": {
                          "type": "string",
                          "description": "Inscrição municipal",
                          "nullable": true
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do cliente"
                        },
                        "quarterly_bill_client_id": {
                          "type": "integer",
                          "description": "Faturar em nome do cliente com esse ID",
                          "nullable": true
                        },
                        "quarterly_billing": {
                          "type": "boolean",
                          "description": "Faturamento quarteirizado ativo?"
                        },
                        "sms_financial": {
                          "type": "string",
                          "description": "Envio de SMS para integrações de faturamento",
                          "nullable": true
                        },
                        "social": {
                          "type": "string",
                          "description": "Razão social"
                        },
                        "social_revenue": {
                          "type": "string",
                          "description": "CPF/CNPJ",
                          "nullable": true
                        },
                        "status": {
                          "type": "boolean",
                          "description": "Cliente ativo?"
                        },
                        "technical_group_ids": {
                          "type": "array",
                          "description": "ID dos grupos técnicos vinculados no cliente",
                          "items": {
                            "type": "integer"
                          }
                        },
                        "user_counter": {
                          "type": "integer",
                          "description": "Contagem de quantos usuários clientes tem cadastrados/vinculados no cliente"
                        },
                        "user_ids": {
                          "type": "array",
                          "description": "ID dos usuários clientes vinculados no cliente",
                          "items": {
                            "type": "integer"
                          }
                        },
                        "work_folder": {
                          "type": "string",
                          "description": "Pasta de trabalho",
                          "nullable": true
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Exibir informações de entidade do cliente (show_entities=true)",
                      "properties": {
                        "client": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "ID do cliente"
                            },
                            "name": {
                              "type": "string",
                              "description": "Nome do cliente"
                            },
                            "social": {
                              "type": "string",
                              "description": "Razão social"
                            },
                            "social_revenue": {
                              "type": "string",
                              "description": "CPF/CNPJ",
                              "nullable": true
                            }
                          }
                        },
                        "entities": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "ID do campo personalizado"
                              },
                              "active": {
                                "type": "boolean",
                                "description": "O campo personalizado está ativo?"
                              },
                              "applied_in": {
                                "type": "string",
                                "description": "Onde o campo personalizado está aplicado/configurado"
                              },
                              "description": {
                                "type": "string",
                                "description": "Descrição do campo personalizado",
                                "nullable": true
                              },
                              "menu_item": {
                                "type": "boolean",
                                "description": "É um item de menu?",
                                "nullable": true
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do campo personalizado"
                              },
                              "entity_fields": {
                                "type": "array",
                                "description": "**Lista de campos, dos campos personalizados vinculados nesse objeto**",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "description": "Identificador do valor preenchido",
                                      "nullable": true
                                    },
                                    "field_type": {
                                      "type": "string",
                                      "enum": [
                                        "email",
                                        "date",
                                        "currency",
                                        "phone",
                                        "checkbox",
                                        "text",
                                        "text_area",
                                        "single_select",
                                        "link"
                                      ],
                                      "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "Nome do campo"
                                    },
                                    "required": {
                                      "type": "boolean",
                                      "description": "Informa se o campo é de preenchimento obrigatório"
                                    },
                                    "entity_field_id": {
                                      "type": "integer",
                                      "description": "Identificador do campo"
                                    },
                                    "entity_id": {
                                      "type": "integer",
                                      "description": "Identificador do campo personalizado"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "Valor preenchido",
                                      "nullable": true
                                    },
                                    "options": {
                                      "description": "**Lista com valores das opções preenchidas no campo** (utilizado em campos do tipo checkbox e single_select)",
                                      "default": [

                                      ],
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "Identificador do valor preenchido"
                                          },
                                          "entity_field_id": {
                                            "type": "integer",
                                            "description": "Identificador do campo"
                                          },
                                          "entity_field_option_id": {
                                            "type": "integer",
                                            "description": "Identificador da opção"
                                          },
                                          "title": {
                                            "type": "string",
                                            "description": "Nome da opção"
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "Valor da opção"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "put": {
        "summary": "Atualizar cliente",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza um cliente.\n\n- Para vincular todas as mesas de serviço em um cliente, você pode informar o atributo `add_all_desks` como true no body dessa requisição.\n- Para vincular todos os grupos técnicos em um cliente, você pode informar o atributo `add_all_technical_groups` como true no body dessa requisição.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_clients_id",
        "responses": {
          "200": {
            "description": "### **Cliente atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 15,
                  "address_ids": [
                    30,
                    31
                  ],
                  "anotations": "Officia et doloribus. Nostrum pariatur quasi.",
                  "authorization_flow": true,
                  "billing_report_type": "detailed",
                  "contact_ids": [
                    29,
                    30
                  ],
                  "desk_ids": [
                    1
                  ],
                  "email_financial": "opal@lubowitz-frami.test",
                  "equipment_counter": 0,
                  "estadual_registration": "321",
                  "form_of_payment": "BOLETO",
                  "group_counter": 1,
                  "logo": "[AMBIENTE DE TESTES] - Link de acesso a logo bloqueado",
                  "max_agents": 1,
                  "municipal_registration": "123",
                  "name": "Teste",
                  "quarterly_bill_client_id": 16,
                  "quarterly_billing": true,
                  "sms_financial": "47984253028",
                  "social": "Wuckert Group",
                  "social_revenue": "11365698000831",
                  "status": true,
                  "technical_group_ids": [
                    1
                  ],
                  "user_counter": 0,
                  "user_ids": [

                  ],
                  "work_folder": "https://app.tiflux.com/v/"
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir informações do cliente",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do cliente"
                    },
                    "address_ids": {
                      "type": "array",
                      "description": "ID dos endereços cadastrados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "anotations": {
                      "type": "string",
                      "description": "Campo de anotações do cadastro do cliente",
                      "nullable": true
                    },
                    "authorization_flow": {
                      "type": "boolean",
                      "description": "Se o fluxo de autorização para novos tickets está ativo ou não no cliente"
                    },
                    "billing_report_type": {
                      "type": "string",
                      "description": "Relatório de fechamento do faturamento, pode ser 3 valores",
                      "enum": [
                        "detailed_with_appointment",
                        "detailed",
                        "synthetic",
                        ""
                      ]
                    },
                    "contact_ids": {
                      "type": "array",
                      "description": "ID dos contatos cadastrados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "desk_ids": {
                      "type": "array",
                      "description": "ID das mesas vinculadas no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "email_financial": {
                      "type": "string",
                      "description": "E-mail principal de envio de faturamento"
                    },
                    "equipment_counter": {
                      "type": "integer",
                      "description": "Contagem de quantos equipamentos tem cadastrados no cliente"
                    },
                    "estadual_registration": {
                      "type": "string",
                      "description": "Inscrição estadual",
                      "nullable": true
                    },
                    "form_of_payment": {
                      "type": "string",
                      "description": "Tipo de pagamento definido para integrações de faturamento",
                      "enum": [
                        "BOLETO",
                        "CREDIT_CARD",
                        "UNDEFINED",
                        "PIX"
                      ]
                    },
                    "group_counter": {
                      "type": "integer",
                      "description": "Contagem de quantos grupos de recursos tem cadastrados no cliente"
                    },
                    "logo": {
                      "type": "string",
                      "description": "URL de acesso para a imagem definida de logo do cliente",
                      "nullable": true
                    },
                    "max_agents": {
                      "type": "integer",
                      "description": "Máximo de agentes definidos no cliente"
                    },
                    "municipal_registration": {
                      "type": "string",
                      "description": "Inscrição municipal",
                      "nullable": true
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do cliente"
                    },
                    "quarterly_bill_client_id": {
                      "type": "integer",
                      "description": "Faturar em nome do cliente com esse ID",
                      "nullable": true
                    },
                    "quarterly_billing": {
                      "type": "boolean",
                      "description": "Faturamento quarteirizado ativo?"
                    },
                    "sms_financial": {
                      "type": "string",
                      "description": "Envio de SMS para integrações de faturamento",
                      "nullable": true
                    },
                    "social": {
                      "type": "string",
                      "description": "Razão social"
                    },
                    "social_revenue": {
                      "type": "string",
                      "description": "CPF/CNPJ",
                      "nullable": true
                    },
                    "status": {
                      "type": "boolean",
                      "description": "Cliente ativo?"
                    },
                    "technical_group_ids": {
                      "type": "array",
                      "description": "ID dos grupos técnicos vinculados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "user_counter": {
                      "type": "integer",
                      "description": "Contagem de quantos usuários clientes tem cadastrados/vinculados no cliente"
                    },
                    "user_ids": {
                      "type": "array",
                      "description": "ID dos usuários clientes vinculados no cliente",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "work_folder": {
                      "type": "string",
                      "description": "Pasta de trabalho",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Teste",
                    "desk_ids": [
                      1
                    ],
                    "technical_group_ids": [
                      1
                    ],
                    "social": "Wuckert Group",
                    "social_revenue": "11.365.698/0008-31",
                    "status": true,
                    "max_agents": 1,
                    "email_financial": "opal@lubowitz-frami.test",
                    "sms_financial": "47984253028",
                    "municipal_registration": "123",
                    "estadual_registration": "321",
                    "anotations": "Officia et doloribus. Nostrum pariatur quasi.",
                    "visible_to_clients": true,
                    "work_folder": "https://app.tiflux.com/v/",
                    "quarterly_billing": true,
                    "quarterly_bill_client_id": 16,
                    "billing_report_type": "detailed",
                    "authorization_flow": true
                  }
                }
              }
            }
          }
        }
      }
    },
    "/clients/{id}/desks": {
      "get": {
        "summary": "Relacionamento com mesas",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista as mesas que estão relacionadas com um determinado cliente.\n\nVocê pode definir os relacionamentos de mesa dos clientes atualizando o atributo `desk_ids` através do método [Atualizar cliente](#put-/clients/-id-).",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_id_desks",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 2,
                    "active": true,
                    "appointment_type": "Appointments with no Valorization",
                    "display_name": "API",
                    "name": "API"
                  },
                  {
                    "id": 3,
                    "active": true,
                    "appointment_type": "Appointments with no Valorization",
                    "display_name": "API",
                    "name": "API"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID da mesa de serviços"
                      },
                      "active": {
                        "type": "boolean",
                        "description": "A mesa está ativa?"
                      },
                      "appointment_type": {
                        "type": "string",
                        "description": "Tipo de apontamento configurado na mesa",
                        "enum": [
                          "Appointments with Valorization",
                          "Appointments with no Valorization",
                          "Without Appointments"
                        ]
                      },
                      "display_name": {
                        "type": "string",
                        "description": "Nome de exibição da mesa de serviços"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome da mesa de serviços"
                      }
                    },
                    "required": [
                      "id",
                      "active",
                      "appointment_type",
                      "display_name",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/clients/{id}/technical-groups": {
      "get": {
        "summary": "Relacionamento com grupos técnicos",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os grupos técnicos/atendentes que estão relacionados com um determinado cliente.\n\nVocê pode definir os relacionamentos de Grupos técnicos dos clientes atualizando o atributo `technical_groups_ids` através do método [Atualizar cliente](#put-/clients/-id-).",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_id_technical-groups",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 29,
                    "name": "General Management"
                  },
                  {
                    "id": 30,
                    "name": "Human Resources"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do grupo técnico"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do grupo técnico"
                      }
                    },
                    "required": [
                      "id",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/clients/{id}/entities": {
      "put": {
        "summary": "Atualizar campos personalizados do cliente",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Esta rota permite a atualização dos campos personalizados associados a um cliente específico.\n\nPara consultar quais campos personalizados estão disponíveis para o cliente em questão, utilize o método [Exibir cliente](#get-/clients/-id-).\n### **Descrição dos valores aceitos**\nO formato do valor do campo (`value`) deve ser compatível com o tipo de campo personalizado (`entity_field_id`) que está sendo atualizado. Consulte a tabela abaixo para obter exemplos de valores válidos para cada tipo de campo:\nTipo de campo | Descrição | Exemplos\n--- | --- | ---\ntext | Aceita qualquer valor de string | `\"Meu texto\"`\ntext_area | Aceita qualquer valor de string | `\"Meu texto de exemplo\"`\ncurrency | Aceita uma string de números float utilizando o ponto como separador decimal e sem agrupador de milhares | `\"1200.55\"`,`\"15\"`\nphone | Aceita uma string de números inteiros, representando o número de telefone sem o código do país (DDI). Por padrão, o sistema vai tentar validar esse telefone como um número brasileiro. Se você deseja inserir um número de outro país, será necessário utilizar o atributo `country_code` junto no corpo da sua requisição | `\"47999999999\"`\nemail | Aceita uma string com o e-mail | `\"suporte@tiflux.com\"`\nlink | Aceita uma string contendo o endereço do link. O link deve começar com http, https ou ftp, para ser considerado como válido | `\"https://guia-de-uso.tiflux.com/\"`\ndate | Aceita uma string contendo a data. Serão aceitas datas em vários formatos (inclusive com horas). Porém, o valor será gravado em banco da seguinte forma: \"YYYY-MM-DD\", sendo assim, recomendamos que você informe a data nesse padrão também | `\"2025-05-28\"`\nsingle_select | Aceita uma string contendo um número inteiro com o ID da nova opção que foi escolhida | `\"777\"`, `\"52\"`\ncheckbox | Aceita uma string contendo um valor booleano representando se você deseja marcar o checkbox (\"true\") ou desmarcá-lo (\"false\") | `\"true\"`, `\"false\"`\n\n- **Observação:** Se você deseja apagar/limpar o valor de um campo personalizado que não é obrigatório, basta informar o atributo value como null: `\"value\": null`",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_clients_id_entities",
        "responses": {
          "200": {
            "description": "### **Campos personalizados atualizados com sucesso**\nO corpo da resposta dessa requisição será um objeto `client` contendo informações básicas do cliente e outro objeto `entities`, contendo todos os campos personalizados dele após a atualização",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Exibir informações de entidade do cliente (show_entities=true)",
                  "properties": {
                    "client": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do cliente"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do cliente"
                        },
                        "social": {
                          "type": "string",
                          "description": "Razão social"
                        },
                        "social_revenue": {
                          "type": "string",
                          "description": "CPF/CNPJ",
                          "nullable": true
                        }
                      }
                    },
                    "entities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do campo personalizado"
                          },
                          "active": {
                            "type": "boolean",
                            "description": "O campo personalizado está ativo?"
                          },
                          "applied_in": {
                            "type": "string",
                            "description": "Onde o campo personalizado está aplicado/configurado"
                          },
                          "description": {
                            "type": "string",
                            "description": "Descrição do campo personalizado",
                            "nullable": true
                          },
                          "menu_item": {
                            "type": "boolean",
                            "description": "É um item de menu?",
                            "nullable": true
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do campo personalizado"
                          },
                          "entity_fields": {
                            "type": "array",
                            "description": "**Lista de campos, dos campos personalizados vinculados nesse objeto**",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "Identificador do valor preenchido",
                                  "nullable": true
                                },
                                "field_type": {
                                  "type": "string",
                                  "enum": [
                                    "email",
                                    "date",
                                    "currency",
                                    "phone",
                                    "checkbox",
                                    "text",
                                    "text_area",
                                    "single_select",
                                    "link"
                                  ],
                                  "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                                },
                                "name": {
                                  "type": "string",
                                  "description": "Nome do campo"
                                },
                                "required": {
                                  "type": "boolean",
                                  "description": "Informa se o campo é de preenchimento obrigatório"
                                },
                                "entity_field_id": {
                                  "type": "integer",
                                  "description": "Identificador do campo"
                                },
                                "entity_id": {
                                  "type": "integer",
                                  "description": "Identificador do campo personalizado"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "Valor preenchido",
                                  "nullable": true
                                },
                                "options": {
                                  "description": "**Lista com valores das opções preenchidas no campo** (utilizado em campos do tipo checkbox e single_select)",
                                  "default": [

                                  ],
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "Identificador do valor preenchido"
                                      },
                                      "entity_field_id": {
                                        "type": "integer",
                                        "description": "Identificador do campo"
                                      },
                                      "entity_field_option_id": {
                                        "type": "integer",
                                        "description": "Identificador da opção"
                                      },
                                      "title": {
                                        "type": "string",
                                        "description": "Nome da opção"
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "Valor da opção"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "client": {
                    "id": 16,
                    "name": "Lesch, Watsica and Hoppe",
                    "social": "Nienow Inc",
                    "social_revenue": "18732186000309"
                  },
                  "entities": [
                    {
                      "id": 1,
                      "active": true,
                      "applied_in": "client",
                      "description": "Campo personalizado de menu",
                      "entity_fields": [
                        {
                          "id": 1,
                          "entity_field_id": 1,
                          "entity_id": 1,
                          "field_type": "text",
                          "name": "Campo de texto no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "Novo texto da entidade"
                        },
                        {
                          "id": 32,
                          "entity_field_id": 2,
                          "entity_id": 1,
                          "field_type": "text_area",
                          "name": "Campo de área de texto no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "Novo texto do campo de área de texto"
                        },
                        {
                          "id": 35,
                          "entity_field_id": 3,
                          "entity_id": 1,
                          "field_type": "email",
                          "name": "Campo de email no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "tameka@sauer.example"
                        },
                        {
                          "id": 33,
                          "entity_field_id": 4,
                          "entity_id": 1,
                          "field_type": "currency",
                          "name": "Campo de moeda no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "150.55"
                        },
                        {
                          "id": 34,
                          "entity_field_id": 5,
                          "entity_id": 1,
                          "field_type": "phone",
                          "name": "Campo de telefone no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "+5547999999999"
                        },
                        {
                          "id": 37,
                          "entity_field_id": 6,
                          "entity_id": 1,
                          "field_type": "date",
                          "name": "Campo de data no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "2024-06-28"
                        },
                        {
                          "id": 36,
                          "entity_field_id": 7,
                          "entity_id": 1,
                          "field_type": "link",
                          "name": "Campo de link no cliente",
                          "options": [

                          ],
                          "required": false,
                          "value": "https://app.tiflux.com/v/"
                        },
                        {
                          "id": 38,
                          "entity_field_id": 8,
                          "entity_id": 1,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única no cliente",
                          "options": [
                            {
                              "id": 38,
                              "entity_field_id": 8,
                              "entity_field_option_id": 2,
                              "title": "Opção 2",
                              "value": "2"
                            }
                          ],
                          "required": false,
                          "value": "Opção 2"
                        },
                        {
                          "id": null,
                          "entity_field_id": 9,
                          "entity_id": 1,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [
                            {
                              "id": 40,
                              "entity_field_id": 9,
                              "entity_field_option_id": 4,
                              "title": "Check 2",
                              "value": "true"
                            },
                            {
                              "id": 41,
                              "entity_field_id": 9,
                              "entity_field_option_id": 5,
                              "title": "Check 3",
                              "value": "true"
                            }
                          ],
                          "required": false,
                          "value": "Check 3, Check 2"
                        }
                      ],
                      "menu_item": true,
                      "name": "Teste"
                    }
                  ]
                }
              }
            }
          },
          "207": {
            "description": "### **Sucesso Parcial na Atualização de Campos Personalizados**\nEste código de resposta indica que a requisição para atualizar campos personalizados foi **parcialmente bem-sucedida**. Ou seja, alguns dos campos podem ter sido atualizados com sucesso, enquanto outros apresentaram falhas e não foram atualizados.\n\nPara os campos que apresentaram falhas na atualização, o motivo do erro está detalhado no atributo `detail`. Se um campo não constar na listagem de erros, significa que ele foi atualizado com sucesso.",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 20701,
                  "message": "Your request was partially successful. Some entity values were updated successfully, but others had errors",
                  "detail": {
                    "entities": [
                      "The property '#/0/entity_field_id': Couldn't find EntityField with id=0 applied in Client. The entity may be inactive or not exist",
                      "The property '#/1/value' of type integer did not match one or more of the following types: string, null in schema 34337688-21eb-563d-8c1e-79a0682d932b",
                      "The property '#/2/entity_field_option_id': Cannot send EntityFieldOption in a field_type currency",
                      "The property '#/3/value': Is not a valid phone number",
                      "The property '#/4/value': Is not a valid email",
                      "The property '#/5/value': Is not a valid link",
                      "The property '#/6/value': Is not a valid date",
                      "The property '#/7/value': Option id=0 is not a valid option in EntityField (id=8)"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Parâmetro inválido encontrado**\nVocê informou algum atributo inválido ou fora do padrão dessa requisição. Confira os exemplos e o schema, para garantir que o corpo da sua requisição esteja no formato correto",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40001,
                  "message": "Unknown parameters",
                  "detail": {
                    "error": [
                      "found unpermitted parameter: :name"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/entities"
              },
              "examples": {
                "Text field": {
                  "summary": "Text field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 1,
                        "value": "Novo texto do campo tipo texto"
                      }
                    ]
                  }
                },
                "Text_area field": {
                  "summary": "Text_area field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 2,
                        "value": "Novo texto do campo de área de texto"
                      }
                    ]
                  }
                },
                "Currency field": {
                  "summary": "Currency field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 4,
                        "value": "150.55"
                      }
                    ]
                  }
                },
                "Phone field": {
                  "summary": "Phone field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 5,
                        "value": "47999999999",
                        "country_code": "BR"
                      }
                    ]
                  }
                },
                "Email field": {
                  "summary": "Email field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 3,
                        "value": "new_mail@to.entity.com"
                      }
                    ]
                  }
                },
                "Link field": {
                  "summary": "Link field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 7,
                        "value": "https://app.tiflux.com/v/"
                      }
                    ]
                  }
                },
                "Date field": {
                  "summary": "Date field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 6,
                        "value": "2024-06-28"
                      }
                    ]
                  }
                },
                "Single_select field": {
                  "summary": "Single_select field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 8,
                        "value": "2"
                      }
                    ]
                  }
                },
                "Checkbox field": {
                  "summary": "Checkbox field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 9,
                        "entity_field_option_id": 3,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 9,
                        "entity_field_option_id": 4,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 9,
                        "entity_field_option_id": 5,
                        "value": "true"
                      }
                    ]
                  }
                },
                "Update all entity values": {
                  "summary": "Update all entity values",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 1,
                        "value": "Novo texto da entidade"
                      },
                      {
                        "entity_field_id": 2,
                        "value": "Novo texto do campo de área de texto"
                      },
                      {
                        "entity_field_id": 4,
                        "value": "150.55"
                      },
                      {
                        "entity_field_id": 5,
                        "value": "47999999999",
                        "country_code": "BR"
                      },
                      {
                        "entity_field_id": 3,
                        "value": "tameka@sauer.example"
                      },
                      {
                        "entity_field_id": 7,
                        "value": "https://app.tiflux.com/v/"
                      },
                      {
                        "entity_field_id": 6,
                        "value": "2024-06-28"
                      },
                      {
                        "entity_field_id": 8,
                        "value": "2"
                      },
                      {
                        "entity_field_id": 9,
                        "entity_field_option_id": 3,
                        "value": "false"
                      },
                      {
                        "entity_field_id": 9,
                        "entity_field_option_id": 4,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 9,
                        "entity_field_option_id": 5,
                        "value": "true"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Este schema define a estrutura de dados para atualização de campos personalizados de um cliente. Ele é composto por um array de objetos, onde cada objeto representa um campo personalizado a ser atualizado"
        }
      }
    },
    "/clients/{id}/email_tickets_permissions": {
      "post": {
        "summary": "Adicionar domínio para abrir tickets por e-mail",
        "tags": [
          "Clientes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Adiciona um domínio de e-mail como permitido para criar tickets por e-mail.\n\nAssim você pode especificar quais domínios têm permissão para abrir tickets diretamente na mesa em nome deste cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_id_email_tickets_permissions",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "active": true,
                  "address": "gmail.com",
                  "client_id": 15,
                  "created_at": "2026-08-27T21:03:34Z",
                  "permission_type": "domain"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID da permissão criada"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "A permissão está ativa?"
                    },
                    "address": {
                      "type": "string",
                      "description": "Domínio do endereço de email permitido"
                    },
                    "client_id": {
                      "type": "integer",
                      "description": "ID do cliente para o qual a permissão foi criada"
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data da criação"
                    },
                    "permission_type": {
                      "type": "string",
                      "description": "Tipo de permissão",
                      "enum": [
                        "email",
                        "domain"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "active",
                    "address",
                    "client_id",
                    "created_at",
                    "permission_type"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40402,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=99"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Endereço de email mal formatado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "address": [
                      "errado@.com is not a valid email domain"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar tickets por e-mail"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "string",
                    "format": "email",
                    "default": null,
                    "description": "Endereço de e-mail ou domínio autorizado a abrir tickets em nome do cliente. Pode ser um endereço completo (ex: suporte@exemplo.com) ou apenas um domínio genérico (ex: @exemplo.com)."
                  }
                },
                "required": [
                  "address"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "address": "teste@gmail.com"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/clients/{id}/users": {
      "post": {
        "summary": "Criar usuário cliente",
        "tags": [
          "Clientes",
          "Usuários"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identificador do cliente ao qual o novo usuário será vinculado",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Cria um novo usuário cliente para sua organização, enviando um convite por e-mail.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_id_users",
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "message": "Client user was successfully invited",
                  "user": {
                    "id": 35,
                    "name": "New Client User Name",
                    "email": "client_mail@mail.com"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Mensagem de convite informativa"
                    },
                    "user": {
                      "type": "object",
                      "description": "Objeto representando o usuário que foi criado/convidado",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID do usuário criado"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        },
                        "email": {
                          "type": "string",
                          "description": "Endereço de email"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "email"
                      ]
                    }
                  },
                  "required": [
                    "user",
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar usuários"
          },
          {
            "color": "red",
            "label": "Cadastrar solicitantes e usuários clientes"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/create_client_user"
              },
              "examples": {
                "Criar usuário cliente": {
                  "summary": "Criar usuário cliente",
                  "value": {
                    "user": {
                      "name": "New Client User Name",
                      "email": "client_mail@mail.com"
                    }
                  }
                },
                "Criar usuário cliente com todos os atributos": {
                  "summary": "Criar usuário cliente com todos os atributos",
                  "value": {
                    "user": {
                      "name": "Client User Name 2",
                      "email": "client_mail2@mail.com",
                      "telephone": "(47) 99999-9999",
                      "country_code": "br",
                      "extension": 123,
                      "authorization_flow": true
                    }
                  }
                },
                "Criar usuário cliente quando organização já atingiu o limite de max_users (atendentes)": {
                  "summary": "Criar usuário cliente quando organização já atingiu o limite de max_users (atendentes)",
                  "value": {
                    "user": {
                      "name": "Client User Max Users",
                      "email": "client_user_max@example.com"
                    }
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/clients/{client_id}/contacts": {
      "get": {
        "summary": "Listar contatos",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "client_id",
            "in": "path",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os contatos que existem em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_contacts",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 33,
                    "email": "trenton@haag-weber.example",
                    "owner": "Magda Anderson",
                    "telephone": "+13204194945",
                    "use": "Personal"
                  },
                  {
                    "id": 34,
                    "email": "jude@thiel-altenwerth.example",
                    "owner": "Prof. Danilo Lynch",
                    "telephone": "+15857157677",
                    "use": "Personal"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "post": {
        "summary": "Criar contato",
        "tags": [
          "Contatos"
        ],
        "description": "Cria um novo contato em um determinado cliente.",
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_client_id_contacts",
        "responses": {
          "201": {
            "description": "### **Contato criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 35,
                  "email": "hyman_hills@blick-mayer.test",
                  "owner": "Shawnna Hettinger",
                  "telephone": "+5519906155256",
                  "use": "Personal"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "number": [
                      "can't be blank"
                    ],
                    "owner": [
                      "can't be blank"
                    ],
                    "use": [
                      "can't be blank"
                    ],
                    "email": [
                      "is invalid"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Não informou um body pra requisição**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: contact"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "Número brasileiro": {
                  "summary": "Número brasileiro",
                  "value": {
                    "use": "Personal",
                    "number": "+55 (19) 90615-5256",
                    "owner": "Shawnna Hettinger",
                    "email": "hyman_hills@blick-mayer.test"
                  }
                },
                "Número dos estados unidos": {
                  "summary": "Número dos estados unidos",
                  "value": {
                    "use": "Commercial",
                    "number": "+1 (931) 308-7285",
                    "country": "US",
                    "owner": "Rosella Harvey",
                    "email": "helaine.willms@hand-altenwerth.example"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/clients/{client_id}/contacts/{id}": {
      "get": {
        "summary": "Exibir contato",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do contato",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um contato cadastrado em um determinado cliente.\n\nNo momento, um cadastro de contato não possui muitas informações no sistema. Sendo assim, o objeto retornado nessa requisição, contém os mesmos atributos que a requisição de [listar contatos](#get-/clients/-client_id-/contacts)",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_contacts_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 33,
                  "email": "trenton@haag-weber.example",
                  "owner": "Magda Anderson",
                  "telephone": "+13204194945",
                  "use": "Personal"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou contato não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Contact with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "put": {
        "summary": "Atualizar contato",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do contato",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza informações de um contato cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_clients_client_id_contacts_id",
        "responses": {
          "200": {
            "description": "### **Contato atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 33,
                  "email": "trenton@haag-weber.example",
                  "owner": "Boyd Schiller",
                  "telephone": "+13204194945",
                  "use": "Personal"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou contato não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Contact with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "owner": "Boyd Schiller"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Excluir contato",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do contato",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove um contato cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_clients_client_id_contacts_id",
        "responses": {
          "204": {
            "description": "### **Contato removido com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Cliente ou contato não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Contact with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/contracts": {
      "get": {
        "summary": "Listar contratos",
        "tags": [
          "Contratos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "client_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por clientes.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "982",
                  "2",
                  "1024"
                ],
                "summary": "Filtrar por mais de 1 cliente"
              },
              "2": {
                "value": [
                  "44"
                ],
                "summary": "Filtrar por 1 cliente"
              }
            }
          },
          {
            "name": "contract_type_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por tipos de contratos.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "3",
                  "289",
                  "3"
                ],
                "summary": "Filtrar por mais de 1 tipo de contrato"
              },
              "2": {
                "value": [
                  "27"
                ],
                "summary": "Filtrar por 1 tipo de contrato"
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filtrar por status do contrato.\n\nPor padrão, se o status não for especificado, apenas contratos ativos serão listados.\n\nPara filtrar por múltiplos status, informe-os em sequência, separados por vírgula.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "actives",
                  "readjust",
                  "expired"
                ]
              }
            },
            "examples": {
              "1": {
                "value": [
                  "actives"
                ],
                "summary": "DEFAULT: Filtra por contratos ativos"
              },
              "2": {
                "value": [
                  "expired"
                ],
                "summary": "Filtrar por contratos inativos"
              },
              "3": {
                "value": [
                  "readjust"
                ],
                "summary": "Filtrar por contratos pendentes de reajuste"
              },
              "4": {
                "value": [
                  "actives",
                  "readjust",
                  "expired"
                ],
                "summary": "Filtrar por todos os status"
              }
            }
          }
        ],
        "description": "Lista os contratos que existem na sua organização.\n\n> Os valores dos campos `rider_tax`, `rider_value` e `total_value` serão exibidos apenas para usuários com a permissão <span style=\"white-space: nowrap; margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Visualizar valores dos tickets</span>. Caso o usuário não possua esta permissão, esses campos retornarão `\"--\"` na resposta.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_contracts",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "cancelled": false,
                    "client": {
                      "id": 19,
                      "name": "Cummerata Inc"
                    },
                    "contract_type": {
                      "id": 1,
                      "name": "Contract type free"
                    },
                    "duration": 120,
                    "expiration_date": "2033-12-31",
                    "modality": "Free",
                    "name": "A sample contract",
                    "readjust_duration": 40,
                    "readjustment_date": "2027-04-30",
                    "rider_tax": "0.00",
                    "rider_value": "999.90",
                    "status": "actives",
                    "total_value": "999.90"
                  }
                ],
                "schema": {
                  "title": "SCHEMA: Listar contratos",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Identificador do contrato"
                      },
                      "cancelled": {
                        "type": "boolean",
                        "description": "Indica se o contrato está cancelado ou com cancelamento agendado"
                      },
                      "client": {
                        "type": "object",
                        "description": "Objeto contendo informações sobre o cliente associado ao contrato",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Identificador do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "contract_type": {
                        "type": "object",
                        "description": "Objeto contendo informações sobre o tipo de contrato",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Identificador do tipo de contrato"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do tipo de contrato"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "duration": {
                        "type": "number",
                        "nullable": true,
                        "description": "Duração do contrato em meses. Presente apenas se determinado um prazo de expiração do contrato"
                      },
                      "expiration_date": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data de expiração do contrato"
                      },
                      "modality": {
                        "type": "string",
                        "description": "Modalidade",
                        "enum": [
                          "Free",
                          "Credit",
                          "Shared",
                          "Hours",
                          "Saas/Product",
                          "Per ticket",
                          "Cumulative Hours"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do contrato"
                      },
                      "readjust_duration": {
                        "type": "number",
                        "nullable": true,
                        "description": "Intervalo (em meses) para reajuste do contrato. Presente apenas se o contrato tiver reajuste de valores"
                      },
                      "readjustment_date": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data de reajuste do contrato, se aplicável"
                      },
                      "rider_tax": {
                        "type": "string",
                        "description": "Utilizado em contratos de crédito. Esse é o valor fixo mensal à ser pago pelo contrato. Este valor informado não é usado como crédito mensal para abater das horas trabalhadas."
                      },
                      "rider_value": {
                        "type": "string",
                        "description": "Valor do último adendo"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "actives",
                          "readjust",
                          "expired"
                        ],
                        "description": "Status ou situação em que o contrato se encontra:\n\n* `actives`: Ativo\n\n* `readjust`: Pendente de reajuste\n\n* `expired`: Inativo"
                      },
                      "total_value": {
                        "type": "string",
                        "description": "Valor total do contrato: valor do último adendo (rider_value) + valor fixo mensal (rider_tax)"
                      }
                    },
                    "required": [
                      "id",
                      "readjustment_date",
                      "cancelled",
                      "client",
                      "contract_type",
                      "duration",
                      "expiration_date",
                      "modality",
                      "name",
                      "readjust_duration",
                      "rider_tax",
                      "rider_value",
                      "status",
                      "total_value"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "status": [
                      "contains invalid values: 123"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar contratos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/contracts/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "ID do contrato",
          "example": 1,
          "required": true,
          "schema": {
            "type": "integer"
          }
        }
      ],
      "put": {
        "summary": "Atualizar contrato",
        "tags": [
          "Contratos"
        ],
        "parameters": [

        ],
        "description": "Atualiza informações de um determinado contrato.\n\n**Tipos de contratos suportados:**\n\n* Horas\n\n* Crédito\n\n**Regras e validações:**\n\n* Os atributos aceitos no corpo da requisição, bem como os retornados na resposta, variam de acordo com o tipo de contrato informado. Consulte os exemplos e os schemas, para entender as diferenças entre cada tipo\n\n* Não é permitido atualizar contratos cancelados ou inativos",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_contracts_id",
        "responses": {
          "200": {
            "description": "Contrato atualizado com sucesso",
            "content": {
              "application/json": {
                "examples": {
                  "Atualizar contrato de horas": {
                    "value": {
                      "id": 2,
                      "active": true,
                      "automatic_billing": false,
                      "automatic_renewal": false,
                      "billing_days_before": 10,
                      "billing_in_batch": false,
                      "client": {
                        "id": 19,
                        "name": "Cummerata Inc"
                      },
                      "consumption_reminder": {
                        "notification": false,
                        "percent": null,
                        "emails": null
                      },
                      "contract_type": {
                        "id": 2,
                        "name": "Contract type hours: D'Amore-Grimes",
                        "modality": "Hours"
                      },
                      "duration": 120,
                      "expiration_date": "2033-12-31",
                      "last_rider": {
                        "id": 2,
                        "description": "Adendo atualizado",
                        "discount_type": "currency",
                        "discount_value": 200.0,
                        "due_day": 20,
                        "qtd_hours": "180:00",
                        "release": 0,
                        "rider_number": 2,
                        "surplus_hour_value": 55.0,
                        "value": 6000.0
                      },
                      "name": "Novo nome do contrato de horas",
                      "permit_appointments_readjustment": false,
                      "technical_observations": "Observações técnicas atualizadas"
                    }
                  },
                  "Atualizar contrato de crédito": {
                    "value": {
                      "id": 4,
                      "active": true,
                      "automatic_billing": false,
                      "automatic_renewal": false,
                      "billing_days_before": 28,
                      "billing_in_batch": false,
                      "client": {
                        "id": 19,
                        "name": "Cummerata Inc"
                      },
                      "consumption_reminder": {
                        "notification": true,
                        "percent": 80,
                        "emails": "email1@email.com,email2@email.com"
                      },
                      "contract_type": {
                        "id": 4,
                        "name": "Contract type credit",
                        "modality": "Credit"
                      },
                      "duration": 120,
                      "expiration_date": "2033-12-31",
                      "last_rider": {
                        "id": 4,
                        "description": "Adendo atualizado",
                        "discount_type": "currency",
                        "discount_value": 100.0,
                        "due_day": 7,
                        "external_value": 0.0,
                        "internal_value": 0.0,
                        "release": 0,
                        "remote_value": 0.0,
                        "rider_number": 2,
                        "tax": 10.0,
                        "value": 120.0
                      },
                      "name": "Novo nome do contrato de crédito",
                      "permit_appointments_readjustment": false,
                      "technical_observations": "Observações técnicas atualizadas"
                    }
                  }
                },
                "schema": {
                  "title": "SCHEMA: Exibir contrato",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Identificador do contrato"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do contrato"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Indica se o contrato está ativo"
                        },
                        "expiration_date": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data de expiração do contrato"
                        },
                        "duration": {
                          "type": "number",
                          "nullable": true,
                          "description": "Duração do contrato em meses"
                        },
                        "automatic_renewal": {
                          "type": "boolean",
                          "description": "Renovação automática"
                        },
                        "permit_appointments_readjustment": {
                          "type": "boolean",
                          "description": "Permite apontamentos quando pendente de reajuste"
                        },
                        "billing_in_batch": {
                          "type": "boolean",
                          "description": "Faturamento em lote"
                        },
                        "automatic_billing": {
                          "type": "boolean",
                          "description": "Faturamento automático"
                        },
                        "billing_days_before": {
                          "type": "number",
                          "description": "Faturar em quantos dias antes",
                          "minimum": 0,
                          "maximum": 28
                        },
                        "technical_observations": {
                          "type": "string",
                          "nullable": true,
                          "description": "Observações técnicas"
                        },
                        "consumption_reminder": {
                          "type": "object",
                          "description": "Configuração de lembrete de consumo",
                          "properties": {
                            "notification": {
                              "type": "boolean",
                              "description": "Notificar sobre consumo?"
                            },
                            "percent": {
                              "type": "number",
                              "nullable": true,
                              "description": "(%) Percentual de consumo para alertar"
                            },
                            "emails": {
                              "type": "string",
                              "nullable": true,
                              "description": "Emails para enviar notificações, separados por vírgula"
                            }
                          },
                          "required": [
                            "notification",
                            "percent",
                            "emails"
                          ]
                        },
                        "client": {
                          "type": "object",
                          "description": "Objeto contendo informações sobre o cliente associado ao contrato",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Identificador do cliente"
                            },
                            "name": {
                              "type": "string",
                              "description": "Nome do cliente"
                            }
                          },
                          "required": [
                            "id",
                            "name"
                          ]
                        },
                        "contract_type": {
                          "type": "object",
                          "description": "Objeto contendo informações sobre o tipo de contrato",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Identificador do tipo de contrato"
                            },
                            "name": {
                              "type": "string",
                              "description": "Nome do tipo de contrato"
                            },
                            "modality": {
                              "type": "string",
                              "description": "Nome da modalidade do contrato",
                              "enum": [
                                "Hours",
                                "Credit"
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "name",
                            "modality"
                          ]
                        },
                        "last_rider": {
                          "type": "object",
                          "nullable": true,
                          "description": "Último adendo do contrato",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Identificador do adendo"
                            },
                            "rider_number": {
                              "type": "number",
                              "description": "Número do adendo"
                            },
                            "release": {
                              "type": "number",
                              "description": "Número da versão do adendo"
                            },
                            "due_day": {
                              "type": "number",
                              "description": "Dia de vencimento",
                              "minimum": 1,
                              "maximum": 28
                            },
                            "description": {
                              "type": "string",
                              "nullable": true,
                              "description": "Descrição do adendo"
                            },
                            "value": {
                              "type": "number",
                              "description": "Valor mensal"
                            },
                            "discount_value": {
                              "type": "number",
                              "description": "Desconto"
                            },
                            "discount_type": {
                              "type": "string",
                              "nullable": true,
                              "description": "Tipo de desconto"
                            },
                            "qtd_hours": {
                              "type": "string",
                              "description": "Horas por ciclo de fechamento"
                            },
                            "surplus_hour_value": {
                              "type": "number",
                              "description": "Valor da hora excedente"
                            }
                          },
                          "required": [
                            "id",
                            "rider_number",
                            "release",
                            "due_day",
                            "description",
                            "value",
                            "discount_value",
                            "discount_type",
                            "qtd_hours",
                            "surplus_hour_value"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "active",
                        "expiration_date",
                        "duration",
                        "automatic_renewal",
                        "billing_in_batch",
                        "automatic_billing",
                        "billing_days_before",
                        "consumption_reminder",
                        "last_rider",
                        "client",
                        "contract_type"
                      ],
                      "description": "Contrato de horas"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Identificador do contrato"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do contrato"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Indica se o contrato está ativo"
                        },
                        "expiration_date": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data de expiração do contrato"
                        },
                        "duration": {
                          "type": "number",
                          "nullable": true,
                          "description": "Duração do contrato em meses"
                        },
                        "automatic_renewal": {
                          "type": "boolean",
                          "description": "Renovação automática"
                        },
                        "permit_appointments_readjustment": {
                          "type": "boolean",
                          "description": "Permite apontamentos quando pendente de reajuste"
                        },
                        "billing_in_batch": {
                          "type": "boolean",
                          "description": "Faturamento em lote"
                        },
                        "automatic_billing": {
                          "type": "boolean",
                          "description": "Faturamento automático"
                        },
                        "billing_days_before": {
                          "type": "number",
                          "description": "Faturar em quantos dias antes",
                          "minimum": 0,
                          "maximum": 28
                        },
                        "technical_observations": {
                          "type": "string",
                          "nullable": true,
                          "description": "Observações técnicas"
                        },
                        "consumption_reminder": {
                          "type": "object",
                          "description": "Configuração de lembrete de consumo",
                          "properties": {
                            "notification": {
                              "type": "boolean",
                              "description": "Notificar sobre consumo?"
                            },
                            "percent": {
                              "type": "number",
                              "nullable": true,
                              "description": "(%) Percentual de consumo para alertar"
                            },
                            "emails": {
                              "type": "string",
                              "nullable": true,
                              "description": "Emails para enviar notificações, separados por vírgula"
                            }
                          },
                          "required": [
                            "notification",
                            "percent",
                            "emails"
                          ]
                        },
                        "client": {
                          "type": "object",
                          "description": "Objeto contendo informações sobre o cliente associado ao contrato",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Identificador do cliente"
                            },
                            "name": {
                              "type": "string",
                              "description": "Nome do cliente"
                            }
                          },
                          "required": [
                            "id",
                            "name"
                          ]
                        },
                        "contract_type": {
                          "type": "object",
                          "description": "Objeto contendo informações sobre o tipo de contrato",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Identificador do tipo de contrato"
                            },
                            "name": {
                              "type": "string",
                              "description": "Nome do tipo de contrato"
                            },
                            "modality": {
                              "type": "string",
                              "description": "Nome da modalidade do contrato",
                              "enum": [
                                "Hours",
                                "Credit"
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "name",
                            "modality"
                          ]
                        },
                        "last_rider": {
                          "type": "object",
                          "nullable": true,
                          "description": "Último adendo do contrato",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Identificador do adendo"
                            },
                            "rider_number": {
                              "type": "number",
                              "description": "Número do adendo"
                            },
                            "release": {
                              "type": "number",
                              "description": "Número da versão do adendo"
                            },
                            "due_day": {
                              "type": "number",
                              "description": "Dia de vencimento",
                              "minimum": 1,
                              "maximum": 28
                            },
                            "description": {
                              "type": "string",
                              "nullable": true,
                              "description": "Descrição do adendo"
                            },
                            "value": {
                              "type": "number",
                              "description": "Crédito mensal"
                            },
                            "discount_value": {
                              "type": "number",
                              "description": "Desconto"
                            },
                            "discount_type": {
                              "type": "string",
                              "nullable": true,
                              "description": "Tipo de desconto"
                            },
                            "external_value": {
                              "type": "number",
                              "description": "Valor hora externo"
                            },
                            "internal_value": {
                              "type": "number",
                              "description": "Valor hora interno"
                            },
                            "remote_value": {
                              "type": "number",
                              "description": "Valor hora remoto"
                            },
                            "tax": {
                              "type": "number",
                              "description": "Valor fixo mensal"
                            }
                          },
                          "required": [
                            "id",
                            "rider_number",
                            "release",
                            "due_day",
                            "description",
                            "value",
                            "discount_value",
                            "discount_type",
                            "external_value",
                            "internal_value",
                            "remote_value",
                            "tax"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "active",
                        "expiration_date",
                        "duration",
                        "automatic_renewal",
                        "billing_in_batch",
                        "automatic_billing",
                        "billing_days_before",
                        "consumption_reminder",
                        "last_rider",
                        "client",
                        "contract_type"
                      ],
                      "description": "Contrato de crédito"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Erro de validação",
            "content": {
              "application/json": {
                "examples": {
                  "Não é possível atualizar um contrato cancelado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "errors": [
                          "Cannot update a cancelled contract"
                        ]
                      }
                    }
                  },
                  "Contrato inativo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "active": [
                          "Cannot update an inactive contract"
                        ]
                      }
                    }
                  },
                  "billing_days_before fora do intervalo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "billing_days_before": [
                          "The maximum number of days for invoicing before the due date must be 28"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "Contrato não encontrado",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Contract with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar contratos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "description": "Atualização de contrato de horas",
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Nome do contrato"
                      },
                      "automatic_renewal": {
                        "type": "boolean",
                        "description": "Renovação automática?"
                      },
                      "billing_in_batch": {
                        "type": "boolean",
                        "description": "Faturamento em lote?"
                      },
                      "automatic_billing": {
                        "type": "boolean",
                        "description": "Faturamento automático?"
                      },
                      "billing_days_before": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 28,
                        "description": "Faturar quantos dias antes (0-28)"
                      },
                      "technical_observations": {
                        "type": "string",
                        "description": "Observações técnicas"
                      },
                      "rider": {
                        "type": "object",
                        "description": "Dados do adendo (contrato de horas)",
                        "properties": {
                          "due_day": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 28,
                            "description": "Dia de vencimento (1-28)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Descrição do adendo"
                          },
                          "value": {
                            "type": "float",
                            "description": "Valor mensal"
                          },
                          "discount_value": {
                            "type": "float",
                            "description": "Desconto"
                          },
                          "qtd_hours": {
                            "type": "float",
                            "description": "Horas por ciclo de fechamento"
                          },
                          "surplus_hour_value": {
                            "type": "float",
                            "description": "Valor da hora excedente"
                          }
                        }
                      }
                    }
                  },
                  {
                    "description": "Atualização de contrato de crédito",
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Nome do contrato"
                      },
                      "automatic_renewal": {
                        "type": "boolean",
                        "description": "Renovação automática?"
                      },
                      "billing_in_batch": {
                        "type": "boolean",
                        "description": "Faturamento em lote?"
                      },
                      "automatic_billing": {
                        "type": "boolean",
                        "description": "Faturamento automático?"
                      },
                      "billing_days_before": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 28,
                        "description": "Faturar quantos dias antes (0-28)"
                      },
                      "technical_observations": {
                        "type": "string",
                        "description": "Observações técnicas"
                      },
                      "rider": {
                        "type": "object",
                        "description": "Dados do adendo (contrato de crédito)",
                        "properties": {
                          "due_day": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 28,
                            "description": "Dia de vencimento (1-28)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Descrição do adendo"
                          },
                          "value": {
                            "type": "float",
                            "description": "Crédito mensal"
                          },
                          "discount_value": {
                            "type": "float",
                            "description": "Desconto"
                          },
                          "tax": {
                            "type": "float",
                            "description": "Valor fixo mensal"
                          }
                        }
                      }
                    }
                  }
                ]
              },
              "examples": {
                "Atualizar contrato de horas": {
                  "summary": "Atualizar contrato de horas",
                  "value": {
                    "name": "Novo nome do contrato de horas",
                    "automatic_renewal": false,
                    "billing_days_before": 10,
                    "technical_observations": "Observações técnicas atualizadas",
                    "rider": {
                      "due_day": 20,
                      "description": "Adendo atualizado",
                      "value": 6000.0,
                      "discount_value": 200.0,
                      "qtd_hours": 180.0,
                      "surplus_hour_value": 55.0
                    }
                  }
                },
                "Atualizar contrato de crédito": {
                  "summary": "Atualizar contrato de crédito",
                  "value": {
                    "name": "Novo nome do contrato de crédito",
                    "automatic_renewal": false,
                    "billing_days_before": 28,
                    "technical_observations": "Observações técnicas atualizadas",
                    "rider": {
                      "due_day": 7,
                      "description": "Adendo atualizado",
                      "value": 120.0,
                      "discount_value": 100.0,
                      "tax": 10.0
                    }
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/departments": {
      "get": {
        "summary": "Listar departamentos",
        "tags": [
          "Departamentos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Filtra departamentos cujo nome contém o valor informado (busca parcial, sem distinção de maiúsculas/minúsculas)",
            "required": false
          }
        ],
        "description": "Lista os departamentos da sua organização.\n\n- **Administrador:** retorna todos os departamentos ativos\n- **Técnico:** retorna apenas os departamentos vinculados ao seu grupo de atendentes",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_departments",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 108,
                    "name": "Bartell, Nicolas and Heidenreich"
                  },
                  {
                    "id": 22,
                    "name": "Bednar, Waelchi and Abernathy"
                  },
                  {
                    "id": 14,
                    "name": "Bogan-Friesen"
                  },
                  {
                    "id": 1,
                    "name": "Christiansen, Zemlak and Hahn"
                  },
                  {
                    "id": 13,
                    "name": "Cremin-Pacocha"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do departamento"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do departamento"
                      }
                    },
                    "required": [
                      "id",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "name": [
                      "is too long (maximum is 255 characters)"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Acessar o chat"
          }
        ]
      }
    },
    "/entities": {
      "get": {
        "summary": "Listar campos personalizados",
        "tags": [
          "Campos personalizados"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "Filtra por campos personalizados ativos ou inativos",
            "examples": {
              "Ativos": {
                "value": true
              },
              "Inativos": {
                "value": false
              }
            },
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "applied_in",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ticket",
                "equipment",
                "client",
                "solicitant",
                "services_catalog",
                "services_catalogs_area",
                "services_catalogs_item"
              ]
            },
            "description": "Filtra por onde o campo personalizado está aplicado"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Busca os campos personalizados pelo nome"
          }
        ],
        "description": "Lista os campos personalizados que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_entities",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "active": true,
                    "applied_in": "client",
                    "name": "Teste"
                  },
                  {
                    "id": 2,
                    "active": true,
                    "applied_in": "client",
                    "name": "Campo personalizado aplicado em clientes"
                  },
                  {
                    "id": 3,
                    "active": true,
                    "applied_in": "equipment",
                    "name": "Campo personalizado aplicado em recursos"
                  },
                  {
                    "id": 4,
                    "active": true,
                    "applied_in": "ticket",
                    "name": "Campo personalizado aplicado em tickets"
                  },
                  {
                    "id": 5,
                    "active": true,
                    "applied_in": "services_catalog",
                    "name": "Campo personalizado aplicado em catálogo de serviços"
                  },
                  {
                    "id": 6,
                    "active": true,
                    "applied_in": "services_catalogs_area",
                    "name": "Campo personalizado aplicado em área de catálogo de serviços"
                  },
                  {
                    "id": 7,
                    "active": true,
                    "applied_in": "services_catalogs_item",
                    "name": "Campo personalizado aplicado em item de catálogo de serviços"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do campo personalizado"
                      },
                      "active": {
                        "type": "boolean",
                        "description": "Informa se o campo personalizado está ativo"
                      },
                      "applied_in": {
                        "type": "string",
                        "enum": [
                          "ticket",
                          "equipment",
                          "client",
                          "solicitant",
                          "services_catalog",
                          "services_catalogs_area",
                          "services_catalogs_item"
                        ],
                        "description": "Onde o campo personalizado está aplicado"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do campo personalizado"
                      }
                    },
                    "required": [
                      "id",
                      "active",
                      "applied_in",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "active precisa ser um valor booleano": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "active": [
                          "teste is not a valid option. Active must be true and false"
                        ]
                      }
                    }
                  },
                  "Opção inválida de applied_in": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "applied_in": [
                          "0 is not a valid option. Applied in must be ticket, equipment, client, solicitant, services_catalog, services_catalogs_area or services_catalogs_item"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ]
      },
      "post": {
        "summary": "Criar campo personalizado",
        "tags": [
          "Campos personalizados"
        ],
        "parameters": [

        ],
        "description": "Cria um novo campo personalizado na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_entities",
        "responses": {
          "201": {
            "description": "### **Campo personalizado criado com sucesso**",
            "content": {
              "application/json": {
                "examples": {
                  "Exemplo aplicado em clientes": {
                    "value": {
                      "id": 8,
                      "active": true,
                      "applied_in": "client",
                      "description": "Descrição do campo aplicado em clientes",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": true,
                      "name": "Nome do campo aplicado em clientes",
                      "service_catalog": null
                    }
                  },
                  "Exemplo aplicado em tickets": {
                    "value": {
                      "id": 9,
                      "active": true,
                      "applied_in": "ticket",
                      "description": "Descrição do campo personalizado aplicado em tickets",
                      "desk_ids": [
                        5
                      ],
                      "equipment_type_id": null,
                      "menu_item": true,
                      "name": "Nome do campo personalizado aplicado em tickets",
                      "service_catalog": null
                    }
                  },
                  "Exemplo aplicado em recursos": {
                    "value": {
                      "id": 10,
                      "active": true,
                      "applied_in": "equipment",
                      "description": "Descrição do campo personalizado aplicado em recursos",
                      "desk_ids": [

                      ],
                      "equipment_type_id": 2,
                      "menu_item": false,
                      "name": "Nome do campo personalizado aplicado em recursos",
                      "service_catalog": null
                    }
                  },
                  "Exemplo aplicado em catálogo": {
                    "value": {
                      "id": 11,
                      "active": true,
                      "applied_in": "services_catalog",
                      "description": "Descrição do campo personalizado aplicado em catálogo de serviço",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Nome do campo personalizado aplicado em catálogo de serviço",
                      "service_catalog": {
                        "catalog_id": 3,
                        "catalog_name": "Catálogo de exemplo"
                      }
                    }
                  },
                  "Exemplo aplicado em área do catálogo": {
                    "value": {
                      "id": 12,
                      "active": true,
                      "applied_in": "services_catalogs_area",
                      "description": "Descrição do campo personalizado aplicado em área do catálogo de serviço",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Nome do campo personalizado aplicado em área do catálogo de serviço",
                      "service_catalog": {
                        "area_id": 3,
                        "area_name": "Área de exemplo",
                        "catalog_id": 3,
                        "catalog_name": "Catálogo de exemplo"
                      }
                    }
                  },
                  "Exemplo aplicado em item do catálogo": {
                    "value": {
                      "id": 13,
                      "active": true,
                      "applied_in": "services_catalogs_item",
                      "description": "Descrição do campo personalizado aplicado em item do catálogo de serviço",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Nome do campo personalizado aplicado em item do catálogo de serviço",
                      "service_catalog": {
                        "item_id": 3,
                        "item_name": "Item de exemplo",
                        "area_id": 3,
                        "area_name": "Área de exemplo",
                        "catalog_id": 3,
                        "catalog_name": "Catálogo de exemplo"
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do campo personalizado"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado está ativo"
                    },
                    "applied_in": {
                      "type": "string",
                      "enum": [
                        "ticket",
                        "equipment",
                        "client",
                        "solicitant",
                        "services_catalog",
                        "services_catalogs_area",
                        "services_catalogs_item"
                      ],
                      "description": "Onde o campo personalizado está aplicado"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição do campo personalizado"
                    },
                    "desk_ids": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "default": [

                      ],
                      "description": "Em quais mesas de serviços o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a uma mesa, o campo deve ser do tipo applied_in ticket"
                    },
                    "equipment_type_id": {
                      "type": "integer",
                      "nullable": true,
                      "default": null,
                      "description": "Em qual tipo de equipamento o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um tipo de equipamento, o campo deve ser do tipo applied_in equipment"
                    },
                    "menu_item": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado é um item de menu"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do campo personalizado"
                    },
                    "service_catalog": {
                      "default": null,
                      "description": "Objeto que representa o contexto de aplicação do campo personalizado, contendo os dados do catálogo de serviço ao qual ele está vinculado.\nA estrutura varia de acordo com o valor do campo `applied_in`. Onde a presença de cada atributo depende do nível de aplicação do campo personalizado",
                      "oneOf": [
                        {
                          "type": "null",
                          "description": "Retorna NULL quando o campo personalizado não está aplicado em informações de catálogos de serviços"
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em um catálogo (`services_catalog`): inclui apenas informações do catálogo",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em uma área (`services_catalogs_area`): inclui informações do catálogo e da sua área",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            },
                            "area_id": {
                              "type": "integer",
                              "description": "ID da área de catálogo de serviços"
                            },
                            "area_name": {
                              "type": "string",
                              "description": "Nome da área de catálogo de serviços"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em um item (`services_catalogs_item`): inclui todos os dados anteriores, além das informações do item de catálogo",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            },
                            "area_id": {
                              "type": "integer",
                              "description": "ID da área de catálogo de serviços"
                            },
                            "area_name": {
                              "type": "string",
                              "description": "Nome da área de catálogo de serviços"
                            },
                            "item_id": {
                              "type": "integer",
                              "description": "ID do item de catálogo de serviços"
                            },
                            "item_name": {
                              "type": "string",
                              "description": "Nome do item de catálogo de serviços"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "active",
                    "applied_in",
                    "name",
                    "menu_item"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "name e applied_in são obrigatórios": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "name": [
                          "can't be blank"
                        ],
                        "applied_in": [
                          "can't be blank",
                          " is not a valid option. Applied in must be client, ticket, solicitant, equipment, services_catalog, services_catalogs_area or services_catalogs_item"
                        ]
                      }
                    }
                  },
                  "informou desk_ids em campos não aplicados em ticket": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "desk_ids": [
                          "Changing desk_ids is not allowed because the custom field is not applied in ticket"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Não informou um body pra requisição**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: entity"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40302`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para utilizar o parâmetro `applied_in` da forma como foi informado.\n\nPara criar um campo personalizado aplicado em `services_catalog`, `services_catalogs_area`, `services_catalogs_item`, `ticket` ou `equipment`, seu usuário deve possuir a **licença de Tickets**.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40302,
                      "message": "Access Denied - Unauthorized parameter usage",
                      "detail": {
                        "applied_in": [
                          "You cannot create entities applied in 'ticket'",
                          "A 'tickets' license is required to create entities applied in 'services_catalog', 'services_catalogs_area', 'services_catalogs_item', 'ticket' or 'equipment'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar campos personalizados"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do campo personalizado"
                  },
                  "applied_in": {
                    "type": "string",
                    "enum": [
                      "ticket",
                      "equipment",
                      "client",
                      "solicitant",
                      "services_catalog",
                      "services_catalogs_area",
                      "services_catalogs_item"
                    ],
                    "description": "Onde o campo personalizado será aplicado?"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição do campo personalizado"
                  },
                  "desk_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "default": [

                    ],
                    "description": "Em quais mesas de serviços o campo personalizado será aplicado?\n\nPara aplicar um campo personalizado a uma mesa, o campo deve ser do tipo applied_in ticket"
                  },
                  "equipment_type_id": {
                    "type": "integer",
                    "nullable": true,
                    "default": null,
                    "description": "Em qual tipo de equipamento o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um tipo de equipamento, o campo deve ser do tipo applied_in equipment"
                  },
                  "menu_item": {
                    "type": "boolean",
                    "description": "Informa se o campo personalizado é um item de menu"
                  },
                  "services_catalog_id": {
                    "type": "integer",
                    "nullable": true,
                    "default": null,
                    "description": "Em qual catálogo de serviços o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um catálogo, o campo deve ser do tipo applied_in services_catalog"
                  },
                  "services_catalogs_area_id": {
                    "type": "integer",
                    "nullable": true,
                    "default": null,
                    "description": "Em qual área de catálogo de serviços o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a uma área de catálogo, o campo deve ser do tipo applied_in services_catalogs_area"
                  },
                  "services_catalogs_item_id": {
                    "type": "integer",
                    "nullable": true,
                    "default": null,
                    "description": "Em qual item de catálogo de serviços o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um item de catálogo, o campo deve ser do tipo applied_in services_catalogs_item"
                  }
                },
                "required": [
                  "name",
                  "applied_in"
                ]
              },
              "examples": {
                "Exemplo aplicado em clientes": {
                  "summary": "Exemplo aplicado em clientes",
                  "value": {
                    "name": "Nome do campo aplicado em clientes",
                    "applied_in": "client",
                    "menu_item": true,
                    "description": "Descrição do campo aplicado em clientes"
                  }
                },
                "Exemplo aplicado em tickets": {
                  "summary": "Exemplo aplicado em tickets",
                  "value": {
                    "name": "Nome do campo personalizado aplicado em tickets",
                    "applied_in": "ticket",
                    "menu_item": true,
                    "description": "Descrição do campo personalizado aplicado em tickets",
                    "desk_ids": [
                      5
                    ]
                  }
                },
                "Exemplo aplicado em recursos": {
                  "summary": "Exemplo aplicado em recursos",
                  "value": {
                    "name": "Nome do campo personalizado aplicado em recursos",
                    "applied_in": "equipment",
                    "menu_item": false,
                    "description": "Descrição do campo personalizado aplicado em recursos",
                    "equipment_type_id": 2
                  }
                },
                "Exemplo aplicado em catálogo": {
                  "summary": "Exemplo aplicado em catálogo",
                  "value": {
                    "name": "Nome do campo personalizado aplicado em catálogo de serviço",
                    "applied_in": "services_catalog",
                    "menu_item": false,
                    "description": "Descrição do campo personalizado aplicado em catálogo de serviço",
                    "services_catalog_id": 3
                  }
                },
                "Exemplo aplicado em área do catálogo": {
                  "summary": "Exemplo aplicado em área do catálogo",
                  "value": {
                    "name": "Nome do campo personalizado aplicado em área do catálogo de serviço",
                    "applied_in": "services_catalogs_area",
                    "menu_item": false,
                    "description": "Descrição do campo personalizado aplicado em área do catálogo de serviço",
                    "services_catalogs_area_id": 3
                  }
                },
                "Exemplo aplicado em item do catálogo": {
                  "summary": "Exemplo aplicado em item do catálogo",
                  "value": {
                    "name": "Nome do campo personalizado aplicado em item do catálogo de serviço",
                    "applied_in": "services_catalogs_item",
                    "menu_item": false,
                    "description": "Descrição do campo personalizado aplicado em item do catálogo de serviço",
                    "services_catalogs_item_id": 3
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Campos personalizados aplicados em **tickets**:\n- Para aplicar o campo personalizado em *mesas de serviços específicas*, utilize o parâmetro `desk_ids`. Se `desk_ids` não for definido, o campo será aplicado em todas as mesas.\n\nCampos personalizados aplicados em **recursos**:\n- Para aplicar o campo personalizado em *um tipo específico de recurso*, utilize o parâmetro `equipment_type_id`. Se `equipment_type_id` não for definido, o campo será aplicado em todos os recursos."
        }
      }
    },
    "/entities/{id}": {
      "get": {
        "summary": "Exibir campo personalizado",
        "tags": [
          "Campos personalizados"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do campo personalizado",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um determinado campo personalizado.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_entities_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Campo aplicado em ticket": {
                    "value": {
                      "id": 4,
                      "active": true,
                      "applied_in": "ticket",
                      "description": "Campo personalizado de menu",
                      "desk_ids": [
                        4
                      ],
                      "equipment_type_id": null,
                      "menu_item": true,
                      "name": "Campo personalizado aplicado em tickets",
                      "service_catalog": null
                    }
                  },
                  "Campo aplicado em recurso": {
                    "value": {
                      "id": 3,
                      "active": true,
                      "applied_in": "equipment",
                      "description": "Campo personalizado de menu",
                      "desk_ids": [

                      ],
                      "equipment_type_id": 1,
                      "menu_item": true,
                      "name": "Campo personalizado aplicado em recursos",
                      "service_catalog": null
                    }
                  },
                  "Campo aplicado em cliente": {
                    "value": {
                      "id": 2,
                      "active": true,
                      "applied_in": "client",
                      "description": "Campo personalizado de menu",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": true,
                      "name": "Campo personalizado aplicado em clientes",
                      "service_catalog": null
                    }
                  },
                  "Campo aplicado em catálogo de serviços": {
                    "value": {
                      "id": 5,
                      "active": true,
                      "applied_in": "services_catalog",
                      "description": "Campo personalizado de menu",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Campo personalizado aplicado em catálogo de serviços",
                      "service_catalog": {
                        "catalog_id": 2,
                        "catalog_name": "Catálogo com campos personalizados"
                      }
                    }
                  },
                  "Campo aplicado em área de catálogo de serviços": {
                    "value": {
                      "id": 6,
                      "active": true,
                      "applied_in": "services_catalogs_area",
                      "description": "Campo personalizado de menu",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Campo personalizado aplicado em área de catálogo de serviços",
                      "service_catalog": {
                        "area_id": 2,
                        "area_name": "Área de catálogo com campos personalizados",
                        "catalog_id": 2,
                        "catalog_name": "Catálogo com campos personalizados"
                      }
                    }
                  },
                  "Campo aplicado em item de catálogo de serviços": {
                    "value": {
                      "id": 7,
                      "active": true,
                      "applied_in": "services_catalogs_item",
                      "description": "Campo personalizado de menu",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Campo personalizado aplicado em item de catálogo de serviços",
                      "service_catalog": {
                        "item_id": 2,
                        "item_name": "Item de catálogo com campos personalizados",
                        "area_id": 2,
                        "area_name": "Área de catálogo com campos personalizados",
                        "catalog_id": 2,
                        "catalog_name": "Catálogo com campos personalizados"
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do campo personalizado"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado está ativo"
                    },
                    "applied_in": {
                      "type": "string",
                      "enum": [
                        "ticket",
                        "equipment",
                        "client",
                        "solicitant",
                        "services_catalog",
                        "services_catalogs_area",
                        "services_catalogs_item"
                      ],
                      "description": "Onde o campo personalizado está aplicado"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição do campo personalizado"
                    },
                    "desk_ids": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "default": [

                      ],
                      "description": "Em quais mesas de serviços o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a uma mesa, o campo deve ser do tipo applied_in ticket"
                    },
                    "equipment_type_id": {
                      "type": "integer",
                      "nullable": true,
                      "default": null,
                      "description": "Em qual tipo de equipamento o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um tipo de equipamento, o campo deve ser do tipo applied_in equipment"
                    },
                    "menu_item": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado é um item de menu"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do campo personalizado"
                    },
                    "service_catalog": {
                      "default": null,
                      "description": "Objeto que representa o contexto de aplicação do campo personalizado, contendo os dados do catálogo de serviço ao qual ele está vinculado.\nA estrutura varia de acordo com o valor do campo `applied_in`. Onde a presença de cada atributo depende do nível de aplicação do campo personalizado",
                      "oneOf": [
                        {
                          "type": "null",
                          "description": "Retorna NULL quando o campo personalizado não está aplicado em informações de catálogos de serviços"
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em um catálogo (`services_catalog`): inclui apenas informações do catálogo",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em uma área (`services_catalogs_area`): inclui informações do catálogo e da sua área",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            },
                            "area_id": {
                              "type": "integer",
                              "description": "ID da área de catálogo de serviços"
                            },
                            "area_name": {
                              "type": "string",
                              "description": "Nome da área de catálogo de serviços"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em um item (`services_catalogs_item`): inclui todos os dados anteriores, além das informações do item de catálogo",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            },
                            "area_id": {
                              "type": "integer",
                              "description": "ID da área de catálogo de serviços"
                            },
                            "area_name": {
                              "type": "string",
                              "description": "Nome da área de catálogo de serviços"
                            },
                            "item_id": {
                              "type": "integer",
                              "description": "ID do item de catálogo de serviços"
                            },
                            "item_name": {
                              "type": "string",
                              "description": "Nome do item de catálogo de serviços"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "active",
                    "applied_in",
                    "name",
                    "menu_item"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Campo personalizado não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Entity with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **O ID do campo personalizado informado está inválido**\n\nLembre-se que o ID informado deve ser um número inteiro",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42205,
                  "message": "Problems with path parameters values",
                  "detail": {
                    "id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Atualizar campo personalizado",
        "tags": [
          "Campos personalizados"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do campo personalizado",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza informações sobre um determinado campo personalizado.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_entities_id",
        "responses": {
          "200": {
            "description": "### **Campo personalizado atualizado com sucesso**",
            "content": {
              "application/json": {
                "examples": {
                  "Exemplo aplicado em clientes": {
                    "value": {
                      "id": 2,
                      "active": false,
                      "applied_in": "client",
                      "description": "Nova descrição",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Novo nome",
                      "service_catalog": null
                    }
                  },
                  "Exemplo aplicado em tickets": {
                    "value": {
                      "id": 4,
                      "active": true,
                      "applied_in": "ticket",
                      "description": "Nova descrição do campo personalizado aplicado em tickets",
                      "desk_ids": [
                        5
                      ],
                      "equipment_type_id": null,
                      "menu_item": true,
                      "name": "Novo nome do campo personalizado aplicado em tickets",
                      "service_catalog": null
                    }
                  },
                  "Exemplo aplicado em recursos": {
                    "value": {
                      "id": 3,
                      "active": true,
                      "applied_in": "equipment",
                      "description": "Nova descrição do campo personalizado aplicado em recursos",
                      "desk_ids": [

                      ],
                      "equipment_type_id": 3,
                      "menu_item": false,
                      "name": "Novo nome do campo personalizado aplicado em recursos",
                      "service_catalog": null
                    }
                  },
                  "Exemplo aplicado em catálogo": {
                    "value": {
                      "id": 5,
                      "active": true,
                      "applied_in": "services_catalog",
                      "description": "Nova descrição do campo personalizado aplicado em catálogo de serviços",
                      "desk_ids": [

                      ],
                      "equipment_type_id": null,
                      "menu_item": false,
                      "name": "Novo nome do campo personalizado aplicado em catálogo",
                      "service_catalog": {
                        "catalog_id": 2,
                        "catalog_name": "Catálogo com campos personalizados"
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do campo personalizado"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado está ativo"
                    },
                    "applied_in": {
                      "type": "string",
                      "enum": [
                        "ticket",
                        "equipment",
                        "client",
                        "solicitant",
                        "services_catalog",
                        "services_catalogs_area",
                        "services_catalogs_item"
                      ],
                      "description": "Onde o campo personalizado está aplicado"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição do campo personalizado"
                    },
                    "desk_ids": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "default": [

                      ],
                      "description": "Em quais mesas de serviços o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a uma mesa, o campo deve ser do tipo applied_in ticket"
                    },
                    "equipment_type_id": {
                      "type": "integer",
                      "nullable": true,
                      "default": null,
                      "description": "Em qual tipo de equipamento o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um tipo de equipamento, o campo deve ser do tipo applied_in equipment"
                    },
                    "menu_item": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado é um item de menu"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do campo personalizado"
                    },
                    "service_catalog": {
                      "default": null,
                      "description": "Objeto que representa o contexto de aplicação do campo personalizado, contendo os dados do catálogo de serviço ao qual ele está vinculado.\nA estrutura varia de acordo com o valor do campo `applied_in`. Onde a presença de cada atributo depende do nível de aplicação do campo personalizado",
                      "oneOf": [
                        {
                          "type": "null",
                          "description": "Retorna NULL quando o campo personalizado não está aplicado em informações de catálogos de serviços"
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em um catálogo (`services_catalog`): inclui apenas informações do catálogo",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em uma área (`services_catalogs_area`): inclui informações do catálogo e da sua área",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            },
                            "area_id": {
                              "type": "integer",
                              "description": "ID da área de catálogo de serviços"
                            },
                            "area_name": {
                              "type": "string",
                              "description": "Nome da área de catálogo de serviços"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "description": "Se aplicado em um item (`services_catalogs_item`): inclui todos os dados anteriores, além das informações do item de catálogo",
                          "properties": {
                            "catalog_id": {
                              "type": "integer",
                              "description": "ID do catálogo de serviço"
                            },
                            "catalog_name": {
                              "type": "string",
                              "description": "Nome do catálogo de serviço"
                            },
                            "area_id": {
                              "type": "integer",
                              "description": "ID da área de catálogo de serviços"
                            },
                            "area_name": {
                              "type": "string",
                              "description": "Nome da área de catálogo de serviços"
                            },
                            "item_id": {
                              "type": "integer",
                              "description": "ID do item de catálogo de serviços"
                            },
                            "item_name": {
                              "type": "string",
                              "description": "Nome do item de catálogo de serviços"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "active",
                    "applied_in",
                    "name",
                    "menu_item"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Campo personalizado não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Entity with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "Não é possível alterar equipment_type_id em ticket": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "equipment_type_id": [
                          "Changing equipment_type_id is not allowed because the custom field is not applied in equipment"
                        ]
                      }
                    }
                  },
                  "Não é possível alterar desk_id em client": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "desk_ids": [
                          "Changing desk_ids is not allowed because the custom field is not applied in ticket"
                        ]
                      }
                    }
                  },
                  "Não é possível alterar menu_item em catálogo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "menu_item": [
                          "Changing menu_item is not allowed when the custom field is applied in solicitant or catalog"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Problemas com os parâmetros**\nEssa resposta significa que os parâmetros estão inválidos ou não foi informado um body para a requisição",
            "content": {
              "application/json": {
                "examples": {
                  "Não é possível alterar applied_in": {
                    "value": {
                      "error_code": 40001,
                      "message": "Unknown parameters",
                      "detail": {
                        "error": [
                          "found unpermitted parameter: :applied_in"
                        ]
                      }
                    }
                  },
                  "Não foi informado body para a requisição": {
                    "value": {
                      "error_code": 40003,
                      "message": "Missing required parameters. The request's body is invalid",
                      "detail": {
                        "error": [
                          "param is missing or the value is empty: entity"
                        ]
                      }
                    }
                  },
                  "Não é possível alterar services_catalog_id": {
                    "value": {
                      "error_code": 40001,
                      "message": "Unknown parameters",
                      "detail": {
                        "error": [
                          "found unpermitted parameter: :services_catalog_id"
                        ]
                      }
                    }
                  },
                  "Não é possível alterar services_catalogs_area_id": {
                    "value": {
                      "error_code": 40001,
                      "message": "Unknown parameters",
                      "detail": {
                        "error": [
                          "found unpermitted parameter: :services_catalogs_area_id"
                        ]
                      }
                    }
                  },
                  "Não é possível alterar services_catalogs_item_id": {
                    "value": {
                      "error_code": 40001,
                      "message": "Unknown parameters",
                      "detail": {
                        "error": [
                          "found unpermitted parameter: :services_catalogs_item_id"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar campos personalizados"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Novo nome do campo personalizado"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativar ou inativar um campo personalizado"
                  },
                  "description": {
                    "type": "string",
                    "description": "Nova descrição do campo personalizado"
                  },
                  "desk_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "default": [

                    ],
                    "description": "Em quais mesas de serviços o campo personalizado será aplicado?\n\nPara aplicar um campo personalizado a uma mesa, o campo deve ser do tipo applied_in ticket"
                  },
                  "equipment_type_id": {
                    "type": "integer",
                    "nullable": true,
                    "default": null,
                    "description": "Em qual tipo de equipamento o campo personalizado está aplicado.\n\nPara aplicar um campo personalizado a um tipo de equipamento, o campo deve ser do tipo applied_in equipment"
                  },
                  "menu_item": {
                    "type": "boolean",
                    "description": "Informa se o campo personalizado é um item de menu"
                  }
                }
              },
              "examples": {
                "Exemplo aplicado em clientes": {
                  "summary": "Exemplo aplicado em clientes",
                  "value": {
                    "name": "Novo nome",
                    "active": false,
                    "description": "Nova descrição",
                    "menu_item": false
                  }
                },
                "Exemplo aplicado em tickets": {
                  "summary": "Exemplo aplicado em tickets",
                  "value": {
                    "name": "Novo nome do campo personalizado aplicado em tickets",
                    "menu_item": true,
                    "description": "Nova descrição do campo personalizado aplicado em tickets",
                    "desk_ids": [
                      5
                    ]
                  }
                },
                "Exemplo aplicado em recursos": {
                  "summary": "Exemplo aplicado em recursos",
                  "value": {
                    "name": "Novo nome do campo personalizado aplicado em recursos",
                    "menu_item": false,
                    "description": "Nova descrição do campo personalizado aplicado em recursos",
                    "equipment_type_id": 3
                  }
                },
                "Exemplo aplicado em catálogo": {
                  "summary": "Exemplo aplicado em catálogo",
                  "value": {
                    "name": "Novo nome do campo personalizado aplicado em catálogo",
                    "description": "Nova descrição do campo personalizado aplicado em catálogo de serviços"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/entities/{entity_id}/fields": {
      "get": {
        "summary": "Listar campos",
        "tags": [
          "Campos personalizados"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "entity_id",
            "in": "path",
            "description": "ID do campo personalizado",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "required",
            "in": "query",
            "required": false,
            "description": "Filtra por campos obrigatórios ou não obrigatórios",
            "examples": {
              "Ativos": {
                "value": true
              },
              "Inativos": {
                "value": false
              }
            },
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "field_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "text",
                "text_area",
                "currency",
                "phone",
                "email",
                "link",
                "date",
                "single_select",
                "checkbox"
              ]
            },
            "description": "Filtra pelo tipo do campo"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Busca os campos pelo nome"
          }
        ],
        "description": "Lista os campos de um determinado campo personalizado.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_entities_entity_id_fields",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 10,
                    "field_type": "text",
                    "index": 0,
                    "name": "Nome do campo personalizado",
                    "required": false
                  },
                  {
                    "id": 11,
                    "field_type": "text_area",
                    "index": 1,
                    "name": "Campo de área de texto",
                    "required": false
                  },
                  {
                    "id": 12,
                    "field_type": "email",
                    "index": 2,
                    "name": "Campo de email",
                    "required": false
                  },
                  {
                    "id": 13,
                    "field_type": "currency",
                    "index": 3,
                    "name": "Campo de moeda",
                    "required": false
                  },
                  {
                    "id": 14,
                    "field_type": "phone",
                    "index": 4,
                    "name": "Campo de telefone",
                    "required": false
                  },
                  {
                    "id": 15,
                    "field_type": "date",
                    "index": 5,
                    "name": "Campo de data",
                    "required": false
                  },
                  {
                    "id": 16,
                    "field_type": "link",
                    "index": 6,
                    "name": "Campo de link",
                    "required": false
                  },
                  {
                    "id": 17,
                    "field_type": "single_select",
                    "index": 7,
                    "name": "Campo de Seleção única",
                    "required": false
                  },
                  {
                    "id": 18,
                    "field_type": "checkbox",
                    "index": 8,
                    "name": "Campo de Checkbox",
                    "required": false
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do campo"
                      },
                      "field_type": {
                        "type": "string",
                        "enum": [
                          "email",
                          "date",
                          "currency",
                          "phone",
                          "checkbox",
                          "text",
                          "text_area",
                          "single_select",
                          "link"
                        ],
                        "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                      },
                      "index": {
                        "type": "integer",
                        "description": "Ordem na qual os campos são exibidos na interface do tiflux"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do campo personalizado"
                      },
                      "required": {
                        "type": "boolean",
                        "description": "Informa se o campo personalizado é de preenchimento obrigatório"
                      }
                    },
                    "required": [
                      "id",
                      "field_type",
                      "index",
                      "name",
                      "required"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Campo personalizado não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Entity with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Opção inválida de field_type": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "field_type": [
                          "0 is not a valid option. Field type must be 'text', 'text_area', 'currency', 'phone', 'email', 'link', 'date', 'single_select' or 'checkbox'"
                        ]
                      }
                    }
                  },
                  "Opção inválida de required": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "required": [
                          "Verdadeiro! is not a valid option. Required must be 'true' or 'false'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ]
      },
      "post": {
        "summary": "Criar campo",
        "tags": [
          "Campos personalizados"
        ],
        "description": "Cria um campo em um determinado campo personalizado.",
        "parameters": [
          {
            "name": "entity_id",
            "in": "path",
            "description": "ID do campo personalizado",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_entities_entity_id_fields",
        "responses": {
          "201": {
            "description": "### **Campo criado com sucesso**",
            "content": {
              "application/json": {
                "examples": {
                  "Criando campo do tipo texto": {
                    "value": {
                      "id": 64,
                      "field_type": "text",
                      "index": 9,
                      "name": "Novo campo do tipo texto",
                      "options": [

                      ],
                      "required": true
                    }
                  },
                  "Criando campo com opções": {
                    "value": {
                      "id": 65,
                      "field_type": "single_select",
                      "index": 9,
                      "name": "Novo campo do tipo seleção única",
                      "options": [
                        {
                          "id": 36,
                          "null_option": false,
                          "value": "Opção 1"
                        },
                        {
                          "id": 37,
                          "null_option": false,
                          "value": "Opção 2"
                        }
                      ],
                      "required": false
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do campo"
                    },
                    "field_type": {
                      "type": "string",
                      "enum": [
                        "email",
                        "date",
                        "currency",
                        "phone",
                        "checkbox",
                        "text",
                        "text_area",
                        "single_select",
                        "link"
                      ],
                      "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                    },
                    "index": {
                      "type": "integer",
                      "description": "Ordem na qual os campos são exibidos na interface do tiflux"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do campo"
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Informa se o campo é de preenchimento obrigatório"
                    },
                    "options": {
                      "description": "Lista com valores das opções criadas",
                      "default": [

                      ],
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador da opção"
                          },
                          "null_option": {
                            "type": "boolean",
                            "description": "Informa se é uma opção padrão cadastrada pelo sistema"
                          },
                          "value": {
                            "type": "string",
                            "description": "Valor da opção"
                          }
                        },
                        "required": [
                          "id",
                          "null_option",
                          "value"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "field_type",
                    "index",
                    "name",
                    "required"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Campo personalizado não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Entity with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Foi informado um field_type inválido": {
                    "value": {
                      "error_code": 42203,
                      "message": "Problems to validate body attributes in database",
                      "detail": {
                        "error": [
                          "'0' is not a valid field_type"
                        ]
                      }
                    }
                  },
                  "Cadastrar opções em campo != single_select e checkbox": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "entity_field_options.base": [
                          "Only checkbox and single_select field types can have options"
                        ]
                      }
                    }
                  },
                  "Cadastrar campo com opções duplicadas": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "options": [
                          "Cannot create options with the same value"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Problemas com os parâmetros**\nEssa resposta significa que os parâmetros estão inválidos ou não foi informado um body para a requisição",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: entity_field"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar campos personalizados"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do campo"
                  },
                  "field_type": {
                    "type": "string",
                    "enum": [
                      "email",
                      "date",
                      "currency",
                      "phone",
                      "checkbox",
                      "text",
                      "text_area",
                      "single_select",
                      "link"
                    ],
                    "description": "Tipos de campo aceitos: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Informa se o campo é de preenchimento obrigatório",
                    "default": false
                  },
                  "options": {
                    "description": "Lista com valores das opções que serão criadas.\n\nSó é possível criar opções em campos do tipo checkbox e single_select",
                    "default": [

                    ],
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "value": {
                          "type": "string",
                          "description": "Valor da opção"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "name",
                  "field_type"
                ]
              },
              "examples": {
                "Criando campo do tipo texto": {
                  "summary": "Criando campo do tipo texto",
                  "value": {
                    "name": "Novo campo do tipo texto",
                    "field_type": "text",
                    "required": true
                  }
                },
                "Criando campo com opções": {
                  "summary": "Criando campo com opções",
                  "value": {
                    "name": "Novo campo do tipo seleção única",
                    "field_type": "single_select",
                    "options": [
                      {
                        "value": "Opção 1"
                      },
                      {
                        "value": "Opção 2"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Ao criar um campo do tipo *single_select* ou *checkbox*, é possível cadastrar opções para eles utilizando o parâmetro `options`. Caso `options` não seja informado, será cadastrada uma opção \"*Padrão*\" para eles."
        }
      }
    },
    "/entities/{entity_id}/fields/{id}": {
      "get": {
        "summary": "Exibir campo",
        "tags": [
          "Campos personalizados"
        ],
        "description": "Exibe informações detalhadas de um campo, de um determinado campo personalizado.",
        "parameters": [
          {
            "name": "entity_id",
            "in": "path",
            "description": "ID do campo personalizado",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do campo",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_entities_entity_id_fields_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 10,
                  "field_type": "text",
                  "index": 0,
                  "name": "Nome do campo personalizado",
                  "required": false
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do campo"
                    },
                    "field_type": {
                      "type": "string",
                      "enum": [
                        "email",
                        "date",
                        "currency",
                        "phone",
                        "checkbox",
                        "text",
                        "text_area",
                        "single_select",
                        "link"
                      ],
                      "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                    },
                    "index": {
                      "type": "integer",
                      "description": "Ordem na qual os campos são exibidos na interface do tiflux"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do campo personalizado"
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado é de preenchimento obrigatório"
                    }
                  },
                  "required": [
                    "id",
                    "field_type",
                    "index",
                    "name",
                    "required"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Campo personalizado ou seu campo não foram encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Entity with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "id precisa ser um número": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "id": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "entity_id precisa ser um número": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "entity_id": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Atualizar campo",
        "tags": [
          "Campos personalizados"
        ],
        "description": "Atualiza um campo, de um determinado campo personalizado.",
        "parameters": [
          {
            "name": "entity_id",
            "in": "path",
            "description": "ID do campo personalizado",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do campo",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_entities_entity_id_fields_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 10,
                  "field_type": "text",
                  "index": 0,
                  "name": "Novo nome",
                  "required": false
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador do campo"
                    },
                    "field_type": {
                      "type": "string",
                      "enum": [
                        "email",
                        "date",
                        "currency",
                        "phone",
                        "checkbox",
                        "text",
                        "text_area",
                        "single_select",
                        "link"
                      ],
                      "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                    },
                    "index": {
                      "type": "integer",
                      "description": "Ordem na qual os campos são exibidos na interface do tiflux"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do campo personalizado"
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Informa se o campo personalizado é de preenchimento obrigatório"
                    }
                  },
                  "required": [
                    "id",
                    "field_type",
                    "index",
                    "name",
                    "required"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Campo personalizado ou seu campo não foram encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Entity with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Problemas com os parâmetros**\nEssa resposta significa que os parâmetros estão inválidos ou não foi informado um body para a requisição",
            "content": {
              "application/json": {
                "examples": {
                  "Não é possível alterar field_type": {
                    "value": {
                      "error_code": 40001,
                      "message": "Unknown parameters",
                      "detail": {
                        "error": [
                          "found unpermitted parameter: :field_type"
                        ]
                      }
                    }
                  },
                  "Não foi informado body para a requisição": {
                    "value": {
                      "error_code": 40003,
                      "message": "Missing required parameters. The request's body is invalid",
                      "detail": {
                        "error": [
                          "param is missing or the value is empty: entity_field"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar campos personalizados"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Novo nome do campo"
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Informa se o campo é de preenchimento obrigatório"
                  }
                }
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Novo nome",
                    "required": false
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/entity_fields/{entity_field_id}/options": {
      "get": {
        "summary": "Listar opções",
        "tags": [
          "Campos personalizados"
        ],
        "description": "Caso um campo seja do tipo seleção única ou checkbox, ele terá opções de escolhas cadastradas para preenchimento.\n\nEste método lista as opções de um determinado campo.",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "entity_field_id",
            "in": "path",
            "description": "ID do campo",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Pesquisar uma opção pelo seu valor",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_entity_fields_entity_field_id_options",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 6,
                    "null_option": false,
                    "value": "Opção 1"
                  },
                  {
                    "id": 7,
                    "null_option": false,
                    "value": "Opção 2"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador da opção"
                      },
                      "null_option": {
                        "type": "boolean",
                        "description": "Informa se é uma opção padrão cadastrada pelo sistema"
                      },
                      "value": {
                        "type": "string",
                        "description": "Valor da opção"
                      }
                    },
                    "required": [
                      "id",
                      "null_option",
                      "value"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Campo não foi encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find EntityField with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "entity_field_id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar opção",
        "tags": [
          "Campos personalizados"
        ],
        "description": "Caso um campo seja do tipo seleção única ou checkbox, você pode criar opções de escolhas para preenchimento.\n\nEste método cria uma opção para um determinado campo.",
        "parameters": [
          {
            "name": "entity_field_id",
            "in": "path",
            "description": "ID do campo",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_entity_fields_entity_field_id_options",
        "responses": {
          "201": {
            "description": "### **Opção criada com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 39,
                  "null_option": false,
                  "value": "Nova opção de escolha"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da opção"
                    },
                    "null_option": {
                      "type": "boolean",
                      "description": "Informa se é uma opção padrão cadastrada pelo sistema"
                    },
                    "value": {
                      "type": "string",
                      "description": "Valor da opção"
                    }
                  },
                  "required": [
                    "id",
                    "null_option",
                    "value"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Campo não foi encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find EntityField with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Valor de entity_field_id inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "entity_field_id": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Criando opção em tipo de campo não permitido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "base": [
                          "Only checkbox and single_select field types can have options"
                        ]
                      }
                    }
                  },
                  "Não é possível cadastrar uma opção duplicada": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "value": [
                          "Cannot create options with the same value"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar campos personalizados"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "Valor da opção"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "value": "Nova opção de escolha"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/entity_fields/{entity_field_id}/options/{id}": {
      "put": {
        "summary": "Atualizar opção",
        "tags": [
          "Campos personalizados"
        ],
        "description": "Caso um campo seja do tipo seleção única ou checkbox, ele terá opções de escolhas cadastradas para preenchimento.\n\nEste método atualiza uma opção de um determinado campo.",
        "parameters": [
          {
            "name": "entity_field_id",
            "in": "path",
            "description": "ID do campo",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID da opção",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_entity_fields_entity_field_id_options_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 7,
                  "null_option": false,
                  "value": "Novo valor da opção"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da opção"
                    },
                    "null_option": {
                      "type": "boolean",
                      "description": "Informa se é uma opção padrão cadastrada pelo sistema"
                    },
                    "value": {
                      "type": "string",
                      "description": "Valor da opção"
                    }
                  },
                  "required": [
                    "id",
                    "null_option",
                    "value"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Campo ou opção não foram encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find EntityField with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Valor de entity_field_id inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "entity_field_id": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Não é possível cadastrar uma opção duplicada": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "value": [
                          "Cannot create options with the same value"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar campos personalizados"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "Valor da opção"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "value": "Novo valor da opção"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/equipment-groups": {
      "get": {
        "summary": "Listar grupos de recurso",
        "tags": [
          "Grupos de Recurso"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "client_id",
            "in": "query",
            "required": false,
            "description": "Filtrar por cliente",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os grupos de recurso que existem na sua organização. Pode ser filtrado por cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_equipment-groups",
        "responses": {
          "200": {
            "description": "Filtrado por cliente",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 21,
                    "client": {
                      "id": 20,
                      "name": "Mills-Mitchell"
                    },
                    "name": "Equipment Group"
                  },
                  {
                    "id": 22,
                    "client": {
                      "id": 20,
                      "name": "Mills-Mitchell"
                    },
                    "name": "Equipment Group"
                  },
                  {
                    "id": 20,
                    "client": {
                      "id": 20,
                      "name": "Mills-Mitchell"
                    },
                    "name": "Mills-Mitchell"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do grupo de recurso"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do grupo de recurso"
                      },
                      "client": {
                        "type": "object",
                        "description": "Dados do cliente",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "client"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "limit": [
                      "must be greater than 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar recursos"
          },
          {
            "color": "red",
            "label": "Gerenciar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/equipment-types": {
      "get": {
        "summary": "Listar tipos de recurso",
        "tags": [
          "Tipos de Recurso"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filtra a busca por tipos de recurso cujo nome contém o valor informado",
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "required": false,
            "examples": {
              "0": {
                "value": "",
                "description": "Quando não informado, retorna todos os tipos de recurso"
              },
              "1": {
                "value": "pr",
                "description": "Retorna tipos de recurso com nomes que contenham *pr*, como: \"**Pr**ojetor\", \"Im**pr**essora\" ou \"Com**pr**essor\""
              }
            }
          }
        ],
        "description": "Lista os tipos de recurso que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_equipment-types",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "name": "Fahey-Bechtelar"
                  },
                  {
                    "id": 4,
                    "name": "Osinski, Mills and Runolfsdottir"
                  },
                  {
                    "id": 3,
                    "name": "Schimmel Inc"
                  },
                  {
                    "id": 2,
                    "name": "Schumm LLC"
                  },
                  {
                    "id": 5,
                    "name": "Senger, Gerlach and Jenkins"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do tipo de recurso"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do tipo de recurso"
                      }
                    },
                    "required": [
                      "id",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "name": [
                      "is too long (maximum is 255 characters)"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar recursos"
          },
          {
            "color": "red",
            "label": "Gerenciar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/equipments": {
      "get": {
        "summary": "Listar recursos",
        "tags": [
          "Recursos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "client_id",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "required": false,
            "description": "Filtrar os recursos por ID do cliente",
            "examples": {
              "": {
                "value": ""
              },
              "1": {
                "value": 1
              }
            }
          },
          {
            "name": "include_manufacturer",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false,
            "description": "Com esse parâmetro é possível incluir as informações de fabricante. Ao informar esse parâmetro como **true**, será adicionado um atributo de nome `manufacturer` no corpo da resposta dessa requisição",
            "examples": {
              "": {
                "value": ""
              },
              "Ativas": {
                "value": true
              },
              "Inativas": {
                "value": false
              }
            }
          },
          {
            "name": "include_system",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false,
            "description": "Com esse parâmetro é possível incluir as informações de sistema do recurso. Ao informar esse parâmetro como **true**, será adicionado um atributo de nome `system` no corpo da resposta dessa requisição",
            "examples": {
              "": {
                "value": ""
              },
              "Ativas": {
                "value": true
              },
              "Inativas": {
                "value": false
              }
            }
          },
          {
            "name": "include_technical_info",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false,
            "description": "Com esse parâmetro é possível incluir o inventário técnico completo de hardware reportado pelo agente (processador, memória, placa-mãe, discos, rede, antivírus, impressoras etc.)",
            "examples": {
              "": {
                "value": ""
              },
              "Ativas": {
                "value": true
              },
              "Inativas": {
                "value": false
              }
            }
          }
        ],
        "description": "Lista os recursos que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_equipments",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Listar recursos": {
                    "value": [
                      {
                        "id": 1,
                        "acquisition_date": "2024-01-25",
                        "agent": {
                          "email": "admin@gmail.com",
                          "phone": "+15029999999",
                          "ramal": "2",
                          "user": "Admin",
                          "version": "1.1.1.1"
                        },
                        "client": {
                          "id": 21,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "equipment_group": {
                          "id": 24,
                          "name": "Equipment Group"
                        },
                        "equipment_type": {
                          "id": 6,
                          "name": "Dibbert-Spencer"
                        },
                        "ipv4": "192.168.0.1",
                        "last_connection": "2024-05-15T19:01:14Z",
                        "last_seen": "2024-06-25T11:04:39+00:00",
                        "manufacturer": {
                          "serial": "Chassis Serial Number",
                          "name": "System manufacturer",
                          "model": "System Product Name"
                        },
                        "monitoring_active": false,
                        "name": "Equipment for tests",
                        "network_name": "PC-TEST",
                        "online": false,
                        "splashtop": false,
                        "system": {
                          "name": "Microsoft Windows 10 Pro",
                          "version": "10.0.16299",
                          "kernel": "64 bits",
                          "service_pack": ""
                        },
                        "tipeertopeer": false,
                        "updated_by_id": 1,
                        "user": "admin",
                        "warranty_date": "2034-01-24"
                      },
                      {
                        "id": 2,
                        "acquisition_date": "2024-01-25",
                        "agent": {
                          "email": "admin@gmail.com",
                          "phone": "+15029999999",
                          "ramal": "2",
                          "user": "Admin",
                          "version": "1.1.1.1"
                        },
                        "client": {
                          "id": 21,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "equipment_group": {
                          "id": 23,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "equipment_type": {
                          "id": 6,
                          "name": "Dibbert-Spencer"
                        },
                        "ipv4": "192.168.0.1, 192.168.0.2",
                        "last_connection": "2024-05-15T19:01:14Z",
                        "last_seen": "2024-06-25T11:04:39+00:00",
                        "manufacturer": {
                          "name": "Dell",
                          "model": "OptiPlex",
                          "serial": "ABC123"
                        },
                        "monitoring_active": false,
                        "name": "Equipment for tests",
                        "network_name": "PC-TEST",
                        "online": false,
                        "splashtop": false,
                        "system": {
                          "name": "Microsoft Windows 10 Pro",
                          "kernel": "64 bits",
                          "version": "10.0.16299",
                          "service_pack": ""
                        },
                        "tipeertopeer": false,
                        "updated_by_id": 1,
                        "user": "admin",
                        "warranty_date": "2034-01-24"
                      }
                    ]
                  },
                  "Listar recursos com inventário técnico (include_technical_info=true)": {
                    "value": [
                      {
                        "id": 1,
                        "acquisition_date": "2024-01-25",
                        "agent": {
                          "email": "admin@gmail.com",
                          "phone": "+15029999999",
                          "ramal": "2",
                          "user": "Admin",
                          "version": "1.1.1.1"
                        },
                        "antivirus": [

                        ],
                        "client": {
                          "id": 21,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "disks": [

                        ],
                        "disksmart": [

                        ],
                        "equipment_group": {
                          "id": 24,
                          "name": "Equipment Group"
                        },
                        "equipment_type": {
                          "id": 6,
                          "name": "Dibbert-Spencer"
                        },
                        "ipv4": "192.168.0.1",
                        "last_connection": "2024-05-15T19:01:14Z",
                        "last_seen": "2024-06-25T11:04:39+00:00",
                        "manufacturer": {
                          "serial": "Chassis Serial Number",
                          "name": "System manufacturer",
                          "model": "System Product Name"
                        },
                        "memory": null,
                        "monitoring_active": false,
                        "motherboard": null,
                        "name": "Equipment for tests",
                        "network": [
                          {
                            "name": "Test Networking Controller",
                            "ipv4": "192.168.0.1",
                            "mac": "00:00:00:00:00:01"
                          }
                        ],
                        "network_name": "PC-TEST",
                        "online": false,
                        "printer": [

                        ],
                        "processor": null,
                        "sound": [

                        ],
                        "splashtop": false,
                        "system": {
                          "name": "Microsoft Windows 10 Pro",
                          "version": "10.0.16299",
                          "kernel": "64 bits",
                          "service_pack": ""
                        },
                        "tipeertopeer": false,
                        "updated_by_id": 1,
                        "user": "admin",
                        "vga": [

                        ],
                        "warranty_date": "2034-01-24",
                        "windows_update": {
                          "pending_count": 0,
                          "has_critical_pending": false
                        }
                      },
                      {
                        "id": 2,
                        "acquisition_date": "2024-01-25",
                        "agent": {
                          "email": "admin@gmail.com",
                          "phone": "+15029999999",
                          "ramal": "2",
                          "user": "Admin",
                          "version": "1.1.1.1"
                        },
                        "antivirus": [
                          {
                            "name": "Windows Defender",
                            "up_to_date": true,
                            "active": true
                          }
                        ],
                        "client": {
                          "id": 21,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "disks": [
                          {
                            "name": "C:",
                            "size_gb": 476.94,
                            "use_percent": 62.5
                          },
                          {
                            "name": "D:",
                            "size_gb": 209.77,
                            "use_percent": 50.0
                          }
                        ],
                        "disksmart": [
                          {
                            "model": "ST1000DM003",
                            "status": "OK"
                          }
                        ],
                        "equipment_group": {
                          "id": 23,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "equipment_type": {
                          "id": 6,
                          "name": "Dibbert-Spencer"
                        },
                        "ipv4": "192.168.0.1, 192.168.0.2",
                        "last_connection": "2024-05-15T19:01:14Z",
                        "last_seen": "2024-06-25T11:04:39+00:00",
                        "manufacturer": {
                          "name": "Dell",
                          "model": "OptiPlex",
                          "serial": "ABC123"
                        },
                        "memory": {
                          "total_gb": 15.26
                        },
                        "monitoring_active": false,
                        "motherboard": {
                          "manufacturer": "Dell",
                          "model": "0J37VW",
                          "bios": "1.2.3"
                        },
                        "name": "Equipment for tests",
                        "network": [
                          {
                            "name": "Ethernet",
                            "ipv4": "192.168.0.1",
                            "mac": "00:00:00:00:00:01"
                          },
                          {
                            "name": "Wi-Fi Adapter",
                            "ipv4": "192.168.0.2",
                            "mac": "00:00:00:00:00:02"
                          }
                        ],
                        "network_name": "PC-TEST",
                        "online": false,
                        "printer": [
                          {
                            "name": "HP LaserJet",
                            "port": "USB001",
                            "default": true
                          },
                          {
                            "name": "Canon G3000",
                            "port": "USB002",
                            "default": false
                          }
                        ],
                        "processor": {
                          "name": "Intel(R) Core(TM) i7-9700"
                        },
                        "sound": [
                          {
                            "name": "Realtek High Definition Audio"
                          }
                        ],
                        "splashtop": false,
                        "system": {
                          "name": "Microsoft Windows 10 Pro",
                          "kernel": "64 bits",
                          "version": "10.0.16299",
                          "service_pack": ""
                        },
                        "tipeertopeer": false,
                        "updated_by_id": 1,
                        "user": "admin",
                        "vga": [
                          {
                            "name": "NVIDIA GTX 1650",
                            "vram_mb": 4096
                          }
                        ],
                        "warranty_date": "2034-01-24",
                        "windows_update": {
                          "pending_count": 3,
                          "has_critical_pending": true
                        }
                      }
                    ]
                  }
                },
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do recurso"
                          },
                          "acquisition_date": {
                            "type": "string",
                            "description": "Data de aquisição - Formato: YYYY-MM-DD"
                          },
                          "agent": {
                            "type": "object",
                            "description": "Informações do agente instalado na máquina",
                            "properties": {
                              "email": {
                                "type": "string",
                                "description": "Email do solicitante"
                              },
                              "phone": {
                                "type": "string",
                                "description": "Telefone do solicitante"
                              },
                              "ramal": {
                                "type": "string",
                                "description": "Ramal do solicitante"
                              },
                              "user": {
                                "type": "string",
                                "description": "Nome do solicitante"
                              },
                              "version": {
                                "type": "string",
                                "description": "Versão do agente instalada"
                              }
                            },
                            "required": [
                              "email",
                              "phone",
                              "ramal",
                              "user",
                              "version"
                            ]
                          },
                          "client": {
                            "type": "object",
                            "description": "Cliente vinculado ao recurso",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do cliente"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do cliente"
                              }
                            },
                            "required": [
                              "id",
                              "name"
                            ]
                          },
                          "equipment_group": {
                            "type": "object",
                            "description": "Grupo de recurso",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do grupo"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do grupo"
                              }
                            },
                            "nullable": true
                          },
                          "equipment_type": {
                            "type": "object",
                            "description": "Tipo de recurso",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do tipo"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do tipo"
                              }
                            },
                            "nullable": true
                          },
                          "ipv4": {
                            "type": "string",
                            "description": "Informação do endereço IP"
                          },
                          "last_connection": {
                            "type": "string",
                            "description": "Data e hora do último acesso ao recurso"
                          },
                          "last_seen": {
                            "type": "string",
                            "description": "Última att?"
                          },
                          "manufacturer": {
                            "type": "object",
                            "description": "Informações do fabricante do recurso. Exibido apenas com `include_manufacturer=true`",
                            "properties": {
                              "serial": {
                                "type": "string",
                                "description": "TAG"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome"
                              },
                              "model": {
                                "type": "string",
                                "description": "Modelo"
                              }
                            },
                            "nullable": true
                          },
                          "monitoring_active": {
                            "type": "boolean",
                            "description": "O monitoramento está ativo?"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do recurso cadastrado no tiflux"
                          },
                          "network_name": {
                            "type": "string",
                            "description": "Nome de rede do computador"
                          },
                          "online": {
                            "type": "boolean",
                            "description": "O recurso está online?"
                          },
                          "splashtop": {
                            "type": "boolean",
                            "description": "O recurso possui Splashtop instalado e disponível para acesso?"
                          },
                          "system": {
                            "type": "object",
                            "description": "Informações do sistema do recurso. Exibido apenas com `include_system=true`",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Nome"
                              },
                              "version": {
                                "type": "string",
                                "description": "Versão"
                              },
                              "kernel": {
                                "type": "string",
                                "description": "Kernel"
                              },
                              "service_pack": {
                                "type": "string",
                                "description": "Atualização"
                              }
                            },
                            "nullable": true
                          },
                          "tipeertopeer": {
                            "type": "boolean",
                            "description": "O recurso possui TiPeerToPeer instalado e disponível para acesso?"
                          },
                          "updated_by_id": {
                            "type": "integer",
                            "description": "Identificador do último usuário que atualizou alguma informação do recurso"
                          },
                          "user": {
                            "type": "string",
                            "description": "Nome do usuário do recurso"
                          },
                          "warranty_date": {
                            "type": "string",
                            "description": "Data de garantia - Formato: YYYY-MM-DD"
                          }
                        },
                        "required": [
                          "id",
                          "acquisition_date",
                          "agent",
                          "client",
                          "equipment_group",
                          "equipment_type",
                          "ipv4",
                          "last_connection",
                          "last_seen",
                          "monitoring_active",
                          "name",
                          "network_name",
                          "online",
                          "splashtop",
                          "tipeertopeer",
                          "updated_by_id",
                          "user",
                          "warranty_date"
                        ]
                      }
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do recurso"
                          },
                          "acquisition_date": {
                            "type": "string",
                            "description": "Data de aquisição - Formato: YYYY-MM-DD"
                          },
                          "agent": {
                            "type": "object",
                            "description": "Informações do agente instalado na máquina",
                            "properties": {
                              "email": {
                                "type": "string",
                                "description": "Email do solicitante"
                              },
                              "phone": {
                                "type": "string",
                                "description": "Telefone do solicitante"
                              },
                              "ramal": {
                                "type": "string",
                                "description": "Ramal do solicitante"
                              },
                              "user": {
                                "type": "string",
                                "description": "Nome do solicitante"
                              },
                              "version": {
                                "type": "string",
                                "description": "Versão do agente instalada"
                              }
                            },
                            "required": [
                              "email",
                              "phone",
                              "ramal",
                              "user",
                              "version"
                            ]
                          },
                          "client": {
                            "type": "object",
                            "description": "Cliente vinculado ao recurso",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do cliente"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do cliente"
                              }
                            },
                            "required": [
                              "id",
                              "name"
                            ]
                          },
                          "equipment_group": {
                            "type": "object",
                            "description": "Grupo de recurso",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do grupo"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do grupo"
                              }
                            },
                            "nullable": true
                          },
                          "equipment_type": {
                            "type": "object",
                            "description": "Tipo de recurso",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do tipo"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do tipo"
                              }
                            },
                            "nullable": true
                          },
                          "ipv4": {
                            "type": "string",
                            "description": "Informação do endereço IP"
                          },
                          "last_connection": {
                            "type": "string",
                            "description": "Data e hora do último acesso ao recurso"
                          },
                          "last_seen": {
                            "type": "string",
                            "description": "Última att?"
                          },
                          "manufacturer": {
                            "type": "object",
                            "description": "Informações do fabricante do recurso. Exibido apenas com `include_manufacturer=true`",
                            "properties": {
                              "serial": {
                                "type": "string",
                                "description": "TAG"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome"
                              },
                              "model": {
                                "type": "string",
                                "description": "Modelo"
                              }
                            },
                            "nullable": true
                          },
                          "monitoring_active": {
                            "type": "boolean",
                            "description": "O monitoramento está ativo?"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do recurso cadastrado no tiflux"
                          },
                          "network_name": {
                            "type": "string",
                            "description": "Nome de rede do computador"
                          },
                          "online": {
                            "type": "boolean",
                            "description": "O recurso está online?"
                          },
                          "splashtop": {
                            "type": "boolean",
                            "description": "O recurso possui Splashtop instalado e disponível para acesso?"
                          },
                          "system": {
                            "type": "object",
                            "description": "Informações do sistema do recurso. Exibido apenas com `include_system=true`",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Nome"
                              },
                              "version": {
                                "type": "string",
                                "description": "Versão"
                              },
                              "kernel": {
                                "type": "string",
                                "description": "Kernel"
                              },
                              "service_pack": {
                                "type": "string",
                                "description": "Atualização"
                              }
                            },
                            "nullable": true
                          },
                          "tipeertopeer": {
                            "type": "boolean",
                            "description": "O recurso possui TiPeerToPeer instalado e disponível para acesso?"
                          },
                          "updated_by_id": {
                            "type": "integer",
                            "description": "Identificador do último usuário que atualizou alguma informação do recurso"
                          },
                          "user": {
                            "type": "string",
                            "description": "Nome do usuário do recurso"
                          },
                          "warranty_date": {
                            "type": "string",
                            "description": "Data de garantia - Formato: YYYY-MM-DD"
                          },
                          "processor": {
                            "type": "object",
                            "nullable": true,
                            "description": "Processador do recurso. Exibido apenas com `include_technical_info=true`",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "memory": {
                            "type": "object",
                            "nullable": true,
                            "description": "Memória RAM total do recurso, em gigabytes. Exibido apenas com `include_technical_info=true`",
                            "properties": {
                              "total_gb": {
                                "type": "number",
                                "nullable": true
                              }
                            }
                          },
                          "motherboard": {
                            "type": "object",
                            "nullable": true,
                            "description": "Placa-mãe do recurso. Exibido apenas com `include_technical_info=true`",
                            "properties": {
                              "manufacturer": {
                                "type": "string",
                                "nullable": true
                              },
                              "model": {
                                "type": "string",
                                "nullable": true
                              },
                              "bios": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "vga": {
                            "type": "array",
                            "description": "Placas de vídeo (GPU) do recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "vram_mb": {
                                  "type": "integer",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          "disks": {
                            "type": "array",
                            "description": "Discos do recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "size_gb": {
                                  "type": "number",
                                  "nullable": true
                                },
                                "use_percent": {
                                  "type": "number",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          "disksmart": {
                            "type": "array",
                            "description": "Status S.M.A.R.T dos discos do recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "model": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "status": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          "network": {
                            "type": "array",
                            "description": "Interfaces de rede do recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "ipv4": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "mac": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          "antivirus": {
                            "type": "array",
                            "description": "Antivírus instalados no recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "up_to_date": {
                                  "type": "boolean",
                                  "nullable": true
                                },
                                "active": {
                                  "type": "boolean",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          "windows_update": {
                            "type": "object",
                            "description": "Status de atualizações pendentes do Windows. Exibido apenas com `include_technical_info=true`",
                            "properties": {
                              "pending_count": {
                                "type": "integer"
                              },
                              "has_critical_pending": {
                                "type": "boolean"
                              }
                            }
                          },
                          "sound": {
                            "type": "array",
                            "description": "Dispositivos de áudio do recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          },
                          "printer": {
                            "type": "array",
                            "description": "Impressoras do recurso. Exibido apenas com `include_technical_info=true`",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "port": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "default": {
                                  "type": "boolean",
                                  "nullable": true
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "include_system": [
                      "teste is not a valid option. Include system must be 'true' or 'false'"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "post": {
        "summary": "Criar recurso",
        "tags": [
          "Recursos"
        ],
        "parameters": [

        ],
        "description": "Cria um novo recurso na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_equipments",
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "acquisition_date": "2025-11-20",
                  "client": {
                    "id": 21,
                    "name": "Corwin, Bode and Mosciski"
                  },
                  "equipment_group": {
                    "id": 24,
                    "name": "Equipment Group"
                  },
                  "equipment_type": {
                    "id": 6,
                    "name": "Dibbert-Spencer"
                  },
                  "name": "Recurso cadastrado pela API",
                  "updated_by_id": 1,
                  "warranty_date": "2029-11-20"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "acquisition_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "client": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "equipment_group": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "equipment_type": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "updated_by_id": {
                      "type": "integer"
                    },
                    "warranty_date": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "acquisition_date",
                    "client",
                    "equipment_group",
                    "equipment_type",
                    "name",
                    "updated_by_id",
                    "warranty_date"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Data de garantia precisa ser maior que data de aquisição": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "warranty_date": [
                          "must be greater than :acquisition_date (2025-11-20)"
                        ]
                      }
                    }
                  },
                  "Valores das datas devem ser um datetime": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "acquisition_date": [
                          "invalid datetime"
                        ],
                        "warranty_date": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "name deve ser menor que 255 caracteres": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "name": [
                          "is too long (maximum is 255 characters)"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Atributos não encontrados**",
            "content": {
              "application/json": {
                "examples": {
                  "client_id inválido": {
                    "value": {
                      "error_code": 40402,
                      "message": "Cannot find record",
                      "detail": {
                        "client_id": [
                          "client not found"
                        ]
                      }
                    }
                  },
                  "equipment_group_id inválido": {
                    "value": {
                      "error_code": 40402,
                      "message": "Cannot find record",
                      "detail": {
                        "equipment_group_id": [
                          "equipment group not found or does not belongs to client"
                        ]
                      }
                    }
                  },
                  "equipment_type_id inválido": {
                    "value": {
                      "error_code": 40402,
                      "message": "Cannot find record",
                      "detail": {
                        "equipment_type_id": [
                          "equipment type not found"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do recurso",
                    "maxLength": 255
                  },
                  "client_id": {
                    "type": "string",
                    "description": "Identificador (ID) do cliente"
                  },
                  "equipment_group_id": {
                    "type": "string",
                    "description": "Identificador (ID) do grupo de recurso"
                  },
                  "equipment_type_id": {
                    "type": "string",
                    "description": "Identificador (ID) do tipo de recurso"
                  },
                  "acquisition_date": {
                    "type": "string",
                    "nullable": true,
                    "description": "Data de aquisição - Formato: YYYY-MM-DD"
                  },
                  "warranty_date": {
                    "type": "string",
                    "nullable": true,
                    "description": "Data de garantia - Formato: YYYY-MM-DD"
                  }
                },
                "required": [
                  "name",
                  "client_id",
                  "equipment_type_id"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Recurso cadastrado pela API",
                    "client_id": 21,
                    "equipment_group_id": 24,
                    "equipment_type_id": 6,
                    "acquisition_date": "2025-11-20",
                    "warranty_date": "2029-11-20"
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Se o campo `equipment_group_id` não for preenchido, o recurso será automaticamente associado ao primeiro grupo de recursos já cadastrado no cliente."
        }
      }
    },
    "/equipments/{id}": {
      "get": {
        "summary": "Exibir recurso",
        "tags": [
          "Recursos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do recurso",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "show_entities",
            "in": "query",
            "description": "Exibir informações de campos personalizados no recurso?",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false
          }
        ],
        "description": "Exibe informações completas de um determinado recurso.\n\nAo informar o parâmetro `show_entities`, será adicionado um atributo de nome `entities` na resposta dessa requisição, contendo a lista de campos personalizados vinculados ao tipo desse recurso.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_equipments_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Exibir informações do recurso": {
                    "value": {
                      "id": 4,
                      "acquisition_date": "2024-01-25",
                      "agent_email": "admin@gmail.com",
                      "agent_user": "Admin",
                      "antivirus": [
                        {
                          "name": "Windows Defender",
                          "up_to_date": true,
                          "active": true
                        }
                      ],
                      "client": {
                        "id": 21,
                        "name": "Corwin, Bode and Mosciski"
                      },
                      "current_user": "admin",
                      "disks": [
                        {
                          "name": "C:",
                          "size_gb": 476.94,
                          "use_percent": 62.5
                        },
                        {
                          "name": "D:",
                          "size_gb": 209.77,
                          "use_percent": 50.0
                        }
                      ],
                      "disksmart": [
                        {
                          "model": "ST1000DM003",
                          "status": "OK"
                        }
                      ],
                      "equipment_group": {
                        "id": 23,
                        "name": "Corwin, Bode and Mosciski"
                      },
                      "equipment_type": {
                        "id": 6,
                        "name": "Dibbert-Spencer"
                      },
                      "last_seen": "2024-06-25T11:04:39Z",
                      "manufacturer": {
                        "name": "Dell",
                        "model": "OptiPlex",
                        "serial": "ABC123"
                      },
                      "memory": {
                        "total_gb": 15.26
                      },
                      "motherboard": {
                        "manufacturer": "Dell",
                        "model": "0J37VW",
                        "bios": "1.2.3"
                      },
                      "name": "Equipment for tests",
                      "network": [
                        {
                          "name": "Ethernet",
                          "ipv4": "192.168.0.1",
                          "mac": "00:00:00:00:00:01"
                        },
                        {
                          "name": "Wi-Fi Adapter",
                          "ipv4": "192.168.0.2",
                          "mac": "00:00:00:00:00:02"
                        }
                      ],
                      "network_name": "PC-TEST",
                      "operating_system": {
                        "name": "Microsoft Windows 10 Pro",
                        "kernel": "64 bits",
                        "version": "10.0.16299",
                        "service_pack": ""
                      },
                      "printer": [
                        {
                          "name": "HP LaserJet",
                          "port": "USB001",
                          "default": true
                        },
                        {
                          "name": "Canon G3000",
                          "port": "USB002",
                          "default": false
                        }
                      ],
                      "processor": {
                        "name": "Intel(R) Core(TM) i7-9700"
                      },
                      "sound": [
                        {
                          "name": "Realtek High Definition Audio"
                        }
                      ],
                      "updated_by_id": 1,
                      "vga": [
                        {
                          "name": "NVIDIA GTX 1650",
                          "vram_mb": 4096
                        }
                      ],
                      "warranty_date": "2034-01-24",
                      "windows_update": {
                        "pending_count": 3,
                        "has_critical_pending": true
                      }
                    }
                  },
                  "Exibir campos personalizados do recurso (show_entities=true)": {
                    "value": {
                      "id": 4,
                      "acquisition_date": "2024-01-25",
                      "agent_email": "admin@gmail.com",
                      "agent_user": "Admin",
                      "antivirus": [
                        {
                          "name": "Windows Defender",
                          "up_to_date": true,
                          "active": true
                        }
                      ],
                      "client": {
                        "id": 21,
                        "name": "Corwin, Bode and Mosciski"
                      },
                      "current_user": "admin",
                      "disks": [
                        {
                          "name": "C:",
                          "size_gb": 476.94,
                          "use_percent": 62.5
                        },
                        {
                          "name": "D:",
                          "size_gb": 209.77,
                          "use_percent": 50.0
                        }
                      ],
                      "disksmart": [
                        {
                          "model": "ST1000DM003",
                          "status": "OK"
                        }
                      ],
                      "entities": [
                        {
                          "id": 14,
                          "active": true,
                          "applied_in": "equipment",
                          "description": "Campo personalizado de menu",
                          "entity_fields": [
                            {
                              "id": 42,
                              "entity_field_id": 67,
                              "entity_id": 14,
                              "field_type": "text",
                              "name": "Número de patrimônio",
                              "options": [

                              ],
                              "required": false,
                              "value": "12345"
                            },
                            {
                              "id": null,
                              "entity_field_id": 68,
                              "entity_id": 14,
                              "field_type": "single_select",
                              "name": "Centro de custo",
                              "options": [

                              ],
                              "required": false,
                              "value": null
                            }
                          ],
                          "menu_item": true,
                          "name": "Teste"
                        }
                      ],
                      "equipment_group": {
                        "id": 23,
                        "name": "Corwin, Bode and Mosciski"
                      },
                      "equipment_type": {
                        "id": 6,
                        "name": "Dibbert-Spencer"
                      },
                      "last_seen": "2024-06-25T11:04:39Z",
                      "manufacturer": {
                        "name": "Dell",
                        "model": "OptiPlex",
                        "serial": "ABC123"
                      },
                      "memory": {
                        "total_gb": 15.26
                      },
                      "motherboard": {
                        "manufacturer": "Dell",
                        "model": "0J37VW",
                        "bios": "1.2.3"
                      },
                      "name": "Equipment for tests",
                      "network": [
                        {
                          "name": "Ethernet",
                          "ipv4": "192.168.0.1",
                          "mac": "00:00:00:00:00:01"
                        },
                        {
                          "name": "Wi-Fi Adapter",
                          "ipv4": "192.168.0.2",
                          "mac": "00:00:00:00:00:02"
                        }
                      ],
                      "network_name": "PC-TEST",
                      "operating_system": {
                        "name": "Microsoft Windows 10 Pro",
                        "kernel": "64 bits",
                        "version": "10.0.16299",
                        "service_pack": ""
                      },
                      "printer": [
                        {
                          "name": "HP LaserJet",
                          "port": "USB001",
                          "default": true
                        },
                        {
                          "name": "Canon G3000",
                          "port": "USB002",
                          "default": false
                        }
                      ],
                      "processor": {
                        "name": "Intel(R) Core(TM) i7-9700"
                      },
                      "sound": [
                        {
                          "name": "Realtek High Definition Audio"
                        }
                      ],
                      "updated_by_id": 1,
                      "vga": [
                        {
                          "name": "NVIDIA GTX 1650",
                          "vram_mb": 4096
                        }
                      ],
                      "warranty_date": "2034-01-24",
                      "windows_update": {
                        "pending_count": 3,
                        "has_critical_pending": true
                      }
                    }
                  }
                },
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Identificador do recurso"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do recurso cadastrado no tiflux"
                        },
                        "acquisition_date": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data de aquisição - Formato: YYYY-MM-DD"
                        },
                        "warranty_date": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data de garantia - Formato: YYYY-MM-DD"
                        },
                        "updated_by_id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Identificador do último usuário que atualizou o recurso"
                        },
                        "equipment_group": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "equipment_type": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "client": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "current_user": {
                          "type": "string",
                          "nullable": true,
                          "description": "Usuário logado na máquina"
                        },
                        "agent_user": {
                          "type": "string",
                          "nullable": true,
                          "description": "Usuário do agente instalado"
                        },
                        "agent_email": {
                          "type": "string",
                          "nullable": true,
                          "description": "Email vinculado ao agente instalado"
                        },
                        "last_seen": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data e hora do último contato com o agente"
                        },
                        "network_name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome de rede do computador"
                        },
                        "manufacturer": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "model": {
                              "type": "string",
                              "nullable": true
                            },
                            "serial": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Fabricante do recurso"
                        },
                        "processor": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Processador do recurso"
                        },
                        "memory": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "total_gb": {
                              "type": "number",
                              "nullable": true
                            }
                          },
                          "description": "Memória RAM total do recurso, em gigabytes"
                        },
                        "motherboard": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "manufacturer": {
                              "type": "string",
                              "nullable": true
                            },
                            "model": {
                              "type": "string",
                              "nullable": true
                            },
                            "bios": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Placa-mãe do recurso"
                        },
                        "vga": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              },
                              "vram_mb": {
                                "type": "integer",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Placas de vídeo (GPU) do recurso"
                        },
                        "disks": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "size_gb": {
                                "type": "number",
                                "nullable": true
                              },
                              "use_percent": {
                                "type": "number",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Discos do recurso"
                        },
                        "disksmart": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "model": {
                                "type": "string",
                                "nullable": true
                              },
                              "status": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Status S.M.A.R.T dos discos do recurso"
                        },
                        "network": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "ipv4": {
                                "type": "string",
                                "nullable": true
                              },
                              "mac": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Interfaces de rede do recurso"
                        },
                        "operating_system": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "kernel": {
                              "type": "string",
                              "nullable": true
                            },
                            "version": {
                              "type": "string",
                              "nullable": true
                            },
                            "service_pack": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Sistema operacional do recurso"
                        },
                        "antivirus": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              },
                              "up_to_date": {
                                "type": "boolean",
                                "nullable": true
                              },
                              "active": {
                                "type": "boolean",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Antivírus instalados no recurso"
                        },
                        "windows_update": {
                          "type": "object",
                          "properties": {
                            "pending_count": {
                              "type": "integer"
                            },
                            "has_critical_pending": {
                              "type": "boolean"
                            }
                          },
                          "description": "Status de atualizações pendentes do Windows"
                        },
                        "sound": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Dispositivos de áudio do recurso"
                        },
                        "printer": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              },
                              "port": {
                                "type": "string",
                                "nullable": true
                              },
                              "default": {
                                "type": "boolean",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Impressoras do recurso"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "acquisition_date",
                        "warranty_date",
                        "updated_by_id",
                        "equipment_group",
                        "equipment_type",
                        "client",
                        "current_user",
                        "agent_user",
                        "agent_email",
                        "last_seen",
                        "network_name",
                        "manufacturer",
                        "processor",
                        "memory",
                        "motherboard",
                        "vga",
                        "disks",
                        "disksmart",
                        "network",
                        "operating_system",
                        "antivirus",
                        "windows_update",
                        "sound",
                        "printer"
                      ]
                    },
                    {
                      "type": "object",
                      "title": "Exibir campos personalizados do recurso (show_entities=true)",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Identificador do recurso"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do recurso cadastrado no tiflux"
                        },
                        "acquisition_date": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data de aquisição - Formato: YYYY-MM-DD"
                        },
                        "warranty_date": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data de garantia - Formato: YYYY-MM-DD"
                        },
                        "updated_by_id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Identificador do último usuário que atualizou o recurso"
                        },
                        "equipment_group": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "equipment_type": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "client": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        },
                        "current_user": {
                          "type": "string",
                          "nullable": true,
                          "description": "Usuário logado na máquina"
                        },
                        "agent_user": {
                          "type": "string",
                          "nullable": true,
                          "description": "Usuário do agente instalado"
                        },
                        "agent_email": {
                          "type": "string",
                          "nullable": true,
                          "description": "Email vinculado ao agente instalado"
                        },
                        "last_seen": {
                          "type": "string",
                          "nullable": true,
                          "description": "Data e hora do último contato com o agente"
                        },
                        "network_name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome de rede do computador"
                        },
                        "manufacturer": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "model": {
                              "type": "string",
                              "nullable": true
                            },
                            "serial": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Fabricante do recurso"
                        },
                        "processor": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Processador do recurso"
                        },
                        "memory": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "total_gb": {
                              "type": "number",
                              "nullable": true
                            }
                          },
                          "description": "Memória RAM total do recurso, em gigabytes"
                        },
                        "motherboard": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "manufacturer": {
                              "type": "string",
                              "nullable": true
                            },
                            "model": {
                              "type": "string",
                              "nullable": true
                            },
                            "bios": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Placa-mãe do recurso"
                        },
                        "vga": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              },
                              "vram_mb": {
                                "type": "integer",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Placas de vídeo (GPU) do recurso"
                        },
                        "disks": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "size_gb": {
                                "type": "number",
                                "nullable": true
                              },
                              "use_percent": {
                                "type": "number",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Discos do recurso"
                        },
                        "disksmart": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "model": {
                                "type": "string",
                                "nullable": true
                              },
                              "status": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Status S.M.A.R.T dos discos do recurso"
                        },
                        "network": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "ipv4": {
                                "type": "string",
                                "nullable": true
                              },
                              "mac": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Interfaces de rede do recurso"
                        },
                        "operating_system": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "kernel": {
                              "type": "string",
                              "nullable": true
                            },
                            "version": {
                              "type": "string",
                              "nullable": true
                            },
                            "service_pack": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "description": "Sistema operacional do recurso"
                        },
                        "antivirus": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              },
                              "up_to_date": {
                                "type": "boolean",
                                "nullable": true
                              },
                              "active": {
                                "type": "boolean",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Antivírus instalados no recurso"
                        },
                        "windows_update": {
                          "type": "object",
                          "properties": {
                            "pending_count": {
                              "type": "integer"
                            },
                            "has_critical_pending": {
                              "type": "boolean"
                            }
                          },
                          "description": "Status de atualizações pendentes do Windows"
                        },
                        "sound": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Dispositivos de áudio do recurso"
                        },
                        "printer": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "nullable": true
                              },
                              "port": {
                                "type": "string",
                                "nullable": true
                              },
                              "default": {
                                "type": "boolean",
                                "nullable": true
                              }
                            }
                          },
                          "description": "Impressoras do recurso"
                        },
                        "entities": {
                          "type": "array",
                          "description": "Campos personalizados configurados para o tipo desse recurso",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do campo personalizado"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do campo personalizado"
                              },
                              "applied_in": {
                                "type": "string",
                                "description": "Onde o campo personalizado está aplicado"
                              },
                              "description": {
                                "type": "string",
                                "nullable": true,
                                "description": "Descrição do campo personalizado"
                              },
                              "active": {
                                "type": "boolean",
                                "description": "Informa se o campo personalizado está ativo"
                              },
                              "menu_item": {
                                "type": "boolean",
                                "nullable": true,
                                "description": "Informa se o campo personalizado é um item de menu"
                              },
                              "entity_fields": {
                                "type": "array",
                                "description": "**Lista de campos, dos campos personalizados vinculados nesse objeto**",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "description": "Identificador do valor preenchido",
                                      "nullable": true
                                    },
                                    "field_type": {
                                      "type": "string",
                                      "enum": [
                                        "email",
                                        "date",
                                        "currency",
                                        "phone",
                                        "checkbox",
                                        "text",
                                        "text_area",
                                        "single_select",
                                        "link"
                                      ],
                                      "description": "Tipos de campo: \"**email**\", \"**date**\", \"**currency**\", \"**phone**\", \"**checkbox**\", \"**text**\", \"**text_area**\", \"**single_select**\", \"**link**\""
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "Nome do campo"
                                    },
                                    "required": {
                                      "type": "boolean",
                                      "description": "Informa se o campo é de preenchimento obrigatório"
                                    },
                                    "entity_field_id": {
                                      "type": "integer",
                                      "description": "Identificador do campo"
                                    },
                                    "entity_id": {
                                      "type": "integer",
                                      "description": "Identificador do campo personalizado"
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "Valor preenchido",
                                      "nullable": true
                                    },
                                    "options": {
                                      "description": "**Lista com valores das opções preenchidas no campo** (utilizado em campos do tipo checkbox e single_select)",
                                      "default": [

                                      ],
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "Identificador do valor preenchido"
                                          },
                                          "entity_field_id": {
                                            "type": "integer",
                                            "description": "Identificador do campo"
                                          },
                                          "entity_field_option_id": {
                                            "type": "integer",
                                            "description": "Identificador da opção"
                                          },
                                          "title": {
                                            "type": "string",
                                            "description": "Nome da opção"
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "Valor da opção"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "acquisition_date",
                        "warranty_date",
                        "updated_by_id",
                        "equipment_group",
                        "equipment_type",
                        "client",
                        "current_user",
                        "agent_user",
                        "agent_email",
                        "last_seen",
                        "network_name",
                        "manufacturer",
                        "processor",
                        "memory",
                        "motherboard",
                        "vga",
                        "disks",
                        "disksmart",
                        "network",
                        "operating_system",
                        "antivirus",
                        "windows_update",
                        "sound",
                        "printer",
                        "entities"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Recurso não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Equipment with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "put": {
        "summary": "Atualizar recurso",
        "tags": [
          "Recursos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do recurso",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza informações de um determinado recurso.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_equipments_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "acquisition_date": "2025-11-20",
                  "client": {
                    "id": 21,
                    "name": "Corwin, Bode and Mosciski"
                  },
                  "equipment_group": {
                    "id": 24,
                    "name": "Equipment Group"
                  },
                  "equipment_type": {
                    "id": 6,
                    "name": "Dibbert-Spencer"
                  },
                  "name": "Novo nome do recurso",
                  "updated_by_id": 1,
                  "warranty_date": "2029-11-20"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "acquisition_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "client": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "equipment_group": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "equipment_type": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "updated_by_id": {
                      "type": "integer"
                    },
                    "warranty_date": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "acquisition_date",
                    "client",
                    "equipment_group",
                    "equipment_type",
                    "name",
                    "updated_by_id",
                    "warranty_date"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Registros não encontrados**",
            "content": {
              "application/json": {
                "examples": {
                  "Recurso não encontrado": {
                    "value": {
                      "error_code": 40401,
                      "message": "Cannot find record",
                      "detail": {
                        "error": [
                          "Couldn't find Equipment with 'id'=\"0\""
                        ]
                      }
                    }
                  },
                  "equipment_group_id inválido": {
                    "value": {
                      "error_code": 40402,
                      "message": "Cannot find record",
                      "detail": {
                        "equipment_group_id": [
                          "equipment group not found or does not belongs to client"
                        ]
                      }
                    }
                  },
                  "equipment_type_id inválido": {
                    "value": {
                      "error_code": 40402,
                      "message": "Cannot find record",
                      "detail": {
                        "equipment_type_id": [
                          "equipment type not found"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "name": [
                      "can't be blank"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do recurso",
                    "maxLength": 255
                  },
                  "equipment_group_id": {
                    "type": "string",
                    "description": "Identificador (ID) do grupo de recurso"
                  },
                  "equipment_type_id": {
                    "type": "string",
                    "description": "Identificador (ID) do tipo de recurso"
                  },
                  "acquisition_date": {
                    "type": "string",
                    "nullable": true,
                    "description": "Data de aquisição - Formato: YYYY-MM-DD"
                  },
                  "warranty_date": {
                    "type": "string",
                    "nullable": true,
                    "description": "Data de garantia - Formato: YYYY-MM-DD"
                  }
                },
                "required": [

                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Novo nome do recurso",
                    "equipment_group_id": 24,
                    "equipment_type_id": 6,
                    "acquisition_date": "2025-11-20",
                    "warranty_date": "2029-11-20"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/equipments/{id}/softwares": {
      "get": {
        "summary": "Listar softwares",
        "tags": [
          "Recursos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do recurso",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista todos os softwares de um determinado recurso.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_equipments_id_softwares",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "name": "Microsoft Application Error Reporting",
                    "version": "12.0.6015.5000",
                    "vendor": "Microsoft Corporation"
                  },
                  {
                    "name": "Ti Service And Agent",
                    "version": "2.0.0.0",
                    "vendor": "TiFLUX"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "**Nome** do software"
                      },
                      "version": {
                        "type": "string",
                        "description": "**Versão** instalada"
                      },
                      "vendor": {
                        "type": "string",
                        "description": "**Fornecedor** do software"
                      }
                    },
                    "required": [
                      "name",
                      "version",
                      "vendor"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "equipment_id": [
                      "must be greater than 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar recursos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/templates/gupshup": {
      "get": {
        "summary": "Listar templates gupshup",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "integration_id",
            "in": "query",
            "description": "Filtrar a busca pelo id de integrações",
            "required": false,
            "examples": {
              "1": {
                "value": 1
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os templates para Gupshup que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_templates_gupshup",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Listar todos os templates Gupshup": {
                    "value": [
                      {
                        "id": 1,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 1,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 2,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 2,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 3,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 2,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 4,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 2,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 5,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 3,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 6,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 3,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 7,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 3,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      }
                    ]
                  },
                  "Lista templates do Gupshp da integração com integration_id = 2": {
                    "value": [
                      {
                        "id": 2,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 2,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 3,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 2,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      },
                      {
                        "id": 4,
                        "category": "ALERT_UPDATE",
                        "content": "You are in department {{1}}",
                        "description": "basic template",
                        "integration_id": 2,
                        "name": "hsm_template",
                        "status": "APPROVED"
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "teste se integration_id for diferente de um inteiro positivo": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "integration_id": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar Modelos"
          }
        ]
      }
    },
    "/templates/whatsapp_cloud": {
      "get": {
        "summary": "Listar templates whatsapp cloud",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "integration_id",
            "in": "query",
            "description": "Filtrar a busca pelo id de integrações",
            "required": false,
            "examples": {
              "1": {
                "value": 1
              }
            },
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filtrar a busca pelo status do template: APPROVED, MISSING_VARS, REJECTED ou PENDING",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "APPROVED",
                "MISSING_VARS",
                "REJECTED",
                "PENDING"
              ]
            }
          }
        ],
        "description": "Lista os templates para Whatsapp Cloud que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_templates_whatsapp_cloud",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Listar todos os templates Whatsapp Cloud": {
                    "value": [
                      {
                        "id": 1,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 4,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "APPROVED",
                        "template_id": "xnvybavnktgmttsukldlqcnjwvbsdkcj"
                      },
                      {
                        "id": 2,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 4,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "APPROVED",
                        "template_id": "lwdwuwlhwacifoxximqxpuaewcvzgmwr"
                      },
                      {
                        "id": 3,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 4,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "APPROVED",
                        "template_id": "zdvbljpyqfnjakbxzcrrhlofmkuaohew"
                      },
                      {
                        "id": 4,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 5,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "REJECTED",
                        "template_id": "nfscevlzcdowvadfgwlbkxagorqxeevf"
                      },
                      {
                        "id": 5,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 5,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "REJECTED",
                        "template_id": "mvxaugzdycdhqpjhcfscbblyoeqojzjt"
                      },
                      {
                        "id": 6,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 5,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "REJECTED",
                        "template_id": "evfspcejewllixuuljhaqavocywiwngq"
                      }
                    ]
                  },
                  "Lista templates do Whatsapp Cloud da integração com integration_id = 4": {
                    "value": [
                      {
                        "id": 1,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 4,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "APPROVED",
                        "template_id": "xnvybavnktgmttsukldlqcnjwvbsdkcj"
                      },
                      {
                        "id": 2,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 4,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "APPROVED",
                        "template_id": "lwdwuwlhwacifoxximqxpuaewcvzgmwr"
                      },
                      {
                        "id": 3,
                        "body": {
                          "type": "BODY",
                          "text": "teste idioma"
                        },
                        "category": "CATEGORY",
                        "footer": null,
                        "header": null,
                        "integration_id": 4,
                        "keys": {
                          "header": {
                          },
                          "body": {
                          }
                        },
                        "language": "pt_BR",
                        "name": "integracao_teste",
                        "status": "APPROVED",
                        "template_id": "zdvbljpyqfnjakbxzcrrhlofmkuaohew"
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "teste se integration_id for diferente de um inteiro positivo": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "integration_id": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar Modelos"
          }
        ]
      }
    },
    "/integrations": {
      "get": {
        "summary": "Listar integrações",
        "tags": [
          "Integrações"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filtrar a busca por integrações ativas ou inativas",
            "required": false,
            "schema": {
              "type": "boolean",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "_type",
            "in": "query",
            "description": "Filtrar a busca por tipo de integração: asaas, call_center_pabxflex, call_center_vipsolutions, contaazul, github, gupshup, jira, openai, whatsapp_cloud ou zapi",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asaas",
                "call_center_pabxflex",
                "call_center_vipsolutions",
                "contaazul",
                "github",
                "gupshup",
                "jira",
                "openai",
                "whatsapp_cloud",
                "zapi"
              ]
            }
          }
        ],
        "description": "Lista as integrações que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_integrations",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Listar todas integrações": {
                    "value": [
                      {
                        "id": 1,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Warner",
                          "phonenumber": "(518) 269-7617 x5433",
                          "app_id": "ftunwogvuaiijlljkotgwmrzviedqujn"
                        }
                      },
                      {
                        "id": 2,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Coy",
                          "phonenumber": "248.405.9173 x6377",
                          "app_id": "ypzbqmmqftyvuqiheiyglwcuvukytrvi"
                        }
                      },
                      {
                        "id": 3,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Ivana",
                          "phonenumber": "740-864-8331 x7809",
                          "app_id": "xpbvxdvltdrujxnqoxoumxhqvxdxvorh"
                        }
                      },
                      {
                        "id": 4,
                        "_type": "whatsapp_cloud",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Salvador",
                          "phonenumber": "419-708-5681 x7240",
                          "app_id": "zarezftedabostzedsjseofuwhwausex"
                        }
                      },
                      {
                        "id": 5,
                        "_type": "whatsapp_cloud",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Terrie",
                          "phonenumber": "479.940.1054 x8281",
                          "app_id": "bphpwdjqiydqfjwcdqzudadyymcstsdm"
                        }
                      },
                      {
                        "id": 6,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Vallie",
                          "phonenumber": "947.702.1700 x4201",
                          "app_id": "pglxtylqufhuiirxtzvkntmivptbjehd"
                        }
                      },
                      {
                        "id": 7,
                        "_type": "gupshup",
                        "active": false,
                        "integration_fields": {
                          "app_name": "Magali",
                          "phonenumber": "848.424.9247",
                          "app_id": "naoefvevroconsnwdeahbswwzoydctcd"
                        }
                      }
                    ]
                  },
                  "Lista todas integrações ativas": {
                    "value": [
                      {
                        "id": 1,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Warner",
                          "phonenumber": "(518) 269-7617 x5433",
                          "app_id": "ftunwogvuaiijlljkotgwmrzviedqujn"
                        }
                      },
                      {
                        "id": 2,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Coy",
                          "phonenumber": "248.405.9173 x6377",
                          "app_id": "ypzbqmmqftyvuqiheiyglwcuvukytrvi"
                        }
                      },
                      {
                        "id": 3,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Ivana",
                          "phonenumber": "740-864-8331 x7809",
                          "app_id": "xpbvxdvltdrujxnqoxoumxhqvxdxvorh"
                        }
                      },
                      {
                        "id": 4,
                        "_type": "whatsapp_cloud",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Salvador",
                          "phonenumber": "419-708-5681 x7240",
                          "app_id": "zarezftedabostzedsjseofuwhwausex"
                        }
                      },
                      {
                        "id": 5,
                        "_type": "whatsapp_cloud",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Terrie",
                          "phonenumber": "479.940.1054 x8281",
                          "app_id": "bphpwdjqiydqfjwcdqzudadyymcstsdm"
                        }
                      },
                      {
                        "id": 6,
                        "_type": "gupshup",
                        "active": true,
                        "integration_fields": {
                          "app_name": "Vallie",
                          "phonenumber": "947.702.1700 x4201",
                          "app_id": "pglxtylqufhuiirxtzvkntmivptbjehd"
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "active - Não pode ser um valor diferente de true e false": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "active": [
                          "123 is not a valid option. Active must be true or false"
                        ]
                      }
                    }
                  },
                  "_type - Não pode ser um valor diferente de asaas, call_center_vipsolutions, contaazul, github, gupshup, openai ou whatsapp_web": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "_type": [
                          "123 is not a valid option. Type must be asaas, call_center_pabxflex, call_center_vipsolutions, contaazul, github, gupshup, jira, openai, whatsapp_cloud or zapi"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar integrações"
          }
        ]
      }
    },
    "/knowledge-folders": {
      "get": {
        "summary": "Listar pastas de conhecimentos",
        "tags": [
          "Conhecimentos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "description": "Parâmetro de busca que permite realizar buscas em pastas de conhecimentos. Com ele, é possível procurar pastas pelos campos de: título, tags e primeiros caracteres da descrição.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista as pastas de conhecimentos cadastradas na sua organização.\n\nEsta rota não exige nenhuma permissão específica, porém segue os seguintes critérios:\n\n- Sempre retorna as pastas que contém conhecimentos públicos e também, as pastas com conhecimentos relacionados ao grupo de atendentes do usuário autenticado.\n\n- Para ver **todas** as pastas sem nenhuma restrição, é necessário a permissão de <span style=\"white-space: nowrap; margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Gerenciar base de conhecimento</span>\n\n- O campo `qty_knowledges` retorna a quantidade de conhecimentos não arquivados dentro da pasta, e `knowledge_ids` retorna os IDs desses conhecimentos.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_knowledge-folders",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "description": "text",
                    "icon": "📚",
                    "knowledge_ids": [
                      1
                    ],
                    "qty_knowledges": 1,
                    "tags": [
                      "TAG 1",
                      "TAG 2"
                    ],
                    "title": "Nome da pasta 1"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "description": "Identificador da pasta de conhecimentos",
                        "type": "integer"
                      },
                      "title": {
                        "description": "Título",
                        "type": "string"
                      },
                      "description": {
                        "type": "string",
                        "description": "Descrição da pasta de conhecimentos"
                      },
                      "icon": {
                        "type": "string",
                        "nullable": true,
                        "description": "Ícone da pasta de conhecimentos"
                      },
                      "tags": {
                        "type": "array",
                        "description": "Lista contendo as tags da pasta de conhecimentos",
                        "items": {
                          "type": "string"
                        }
                      },
                      "qty_knowledges": {
                        "description": "Quantidade de conhecimentos não arquivados que estão dentro dessa pasta",
                        "type": "integer"
                      },
                      "knowledge_ids": {
                        "type": "array",
                        "description": "Lista contendo os IDs dos conhecimentos que estão dentro dessa pasta",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "description",
                      "icon",
                      "tags",
                      "qty_knowledges",
                      "knowledge_ids"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Testa se for informado uma string: 'a'": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/knowledge-folders/{id}": {
      "get": {
        "summary": "Exibir pasta de conhecimentos",
        "tags": [
          "Conhecimentos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID da pasta de conhecimentos",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre uma pasta de conhecimentos cadastrada na sua organização.\n\nEsta rota não exige nenhuma permissão específica, porém segue os mesmos critérios de visibilidade da rota de [listar pastas de conhecimentos](#get-/knowledge-folders):\n\n- Sempre retorna as pastas que contém conhecimentos públicos e também, as pastas com conhecimentos relacionados ao grupo de atendentes do usuário autenticado. Caso a pasta não seja visível para o usuário autenticado, a resposta será `404`.\n\n- Para ver **todas** as pastas sem nenhuma restrição, é necessário a permissão de <span style=\"white-space: nowrap; margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Gerenciar base de conhecimento</span>\n\n- O campo `qty_knowledges` retorna a quantidade de conhecimentos não arquivados dentro da pasta, e `knowledges` retorna o `id` e o `title` desses conhecimentos, ordenados pelo título.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_knowledge-folders_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "description": "text",
                  "icon": "📚",
                  "knowledges": [
                    {
                      "id": 1,
                      "title": "Conhecimento de exemplo"
                    }
                  ],
                  "qty_knowledges": 1,
                  "tags": [
                    "TAG 1",
                    "TAG 2"
                  ],
                  "title": "Nome da pasta 1"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Identificador da pasta de conhecimentos",
                      "type": "integer"
                    },
                    "title": {
                      "description": "Título",
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição da pasta de conhecimentos"
                    },
                    "icon": {
                      "type": "string",
                      "nullable": true,
                      "description": "Ícone da pasta de conhecimentos"
                    },
                    "tags": {
                      "type": "array",
                      "description": "Lista contendo as tags da pasta de conhecimentos",
                      "items": {
                        "type": "string"
                      }
                    },
                    "qty_knowledges": {
                      "description": "Quantidade de conhecimentos não arquivados que estão dentro dessa pasta",
                      "type": "integer"
                    },
                    "knowledges": {
                      "type": "array",
                      "description": "Lista contendo os conhecimentos não arquivados que estão dentro dessa pasta, ordenados pelo título",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "description": "Identificador do conhecimento",
                            "type": "integer"
                          },
                          "title": {
                            "description": "Título do conhecimento",
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "title"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "title",
                    "description",
                    "icon",
                    "tags",
                    "qty_knowledges",
                    "knowledges"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Pasta de conhecimentos não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find KnowledgeFolder with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/knowledges": {
      "get": {
        "summary": "Listar conhecimentos",
        "tags": [
          "Conhecimentos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "knowledge_folder_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por pastas de conhecimentos.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": "",
                "summary": "Sem filtro"
              },
              "1": {
                "value": [
                  "1",
                  "2",
                  "3"
                ],
                "summary": "Filtrar por mais de 1 pasta"
              },
              "2": {
                "value": [
                  "4"
                ],
                "summary": "Filtrar por 1 pasta"
              }
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Parâmetro de busca que permite realizar buscas em conhecimentos. Com ele, é possível procurar conhecimentos pelos campos de: título, tags e primeiros caracteres da descrição.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os conhecimentos cadastrados na sua organização.\n\nEsta rota não exige nenhuma permissão específica, porém segue os seguintes critérios:\n\n- Sempre retorna conhecimentos públicos e também, os conhecimentos relacionados ao grupo de atendentes do usuário autenticado.\n\n- Para ver **todos** os conhecimentos sem nenhuma restrição, é necessário a permissão de <span style=\"white-space: nowrap; margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Gerenciar base de conhecimento</span>",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_knowledges",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 9,
                    "created_at": "2025-01-10T17:30:49Z",
                    "created_by_user": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "description": "text",
                    "knowledge_folder_ids": [
                      9
                    ],
                    "private": false,
                    "tags": [
                      "TAG 1",
                      "TAG 2"
                    ],
                    "title": "Conhecimento de exemplo",
                    "updated_at": "2026-08-27T21:03:46Z"
                  },
                  {
                    "id": 1,
                    "created_at": "2025-01-10T17:30:49Z",
                    "created_by_user": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "description": "text",
                    "knowledge_folder_ids": [
                      1
                    ],
                    "private": false,
                    "tags": [
                      "TAG 1",
                      "TAG 2"
                    ],
                    "title": "Conhecimento de exemplo",
                    "updated_at": "2026-08-27T21:03:45Z"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "description": "Identificador do conhecimento",
                        "type": "integer"
                      },
                      "created_at": {
                        "description": "Data da criação do conhecimento",
                        "type": "string"
                      },
                      "created_by_user": {
                        "description": "Objeto representando o usuário que criou o conhecimento",
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "description": {
                        "type": "string",
                        "description": "Descrição ou texto do conhecimento, em formato HTML. Serão exibidos apenas os primeiros 300 caracteres da descrição do conhecimento"
                      },
                      "knowledge_folder_ids": {
                        "type": "array",
                        "description": "Lista contendo os IDs das pastas de conhecimentos que estão relacionadas a este conhecimento",
                        "items": {
                          "type": "integer"
                        }
                      },
                      "private": {
                        "description": "O conhecimento é privado?",
                        "type": "boolean"
                      },
                      "tags": {
                        "type": "array",
                        "description": "Lista contendo as tags do conhecimento",
                        "items": {
                          "type": "string"
                        }
                      },
                      "title": {
                        "description": "Título",
                        "type": "string"
                      },
                      "updated_at": {
                        "description": "Data da última modificação do conhecimento",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "created_at",
                      "created_by_user",
                      "description",
                      "knowledge_folder_ids",
                      "private",
                      "tags",
                      "title",
                      "updated_at"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "knowledge_folder_ids": [
                      "must be a comma-separated list of integers"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar conhecimento",
        "tags": [
          "Conhecimentos"
        ],
        "parameters": [

        ],
        "description": "Cria um novo conhecimento em sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_knowledges",
        "responses": {
          "201": {
            "description": "### **Conhecimento criado com sucesso**",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Identificador do conhecimento",
                      "type": "integer"
                    },
                    "client_ids": {
                      "type": "array",
                      "description": "Lista contendo os IDs dos clientes que tem permissão para acessar o conhecimento",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "created_at": {
                      "description": "Data da criação do conhecimento",
                      "type": "string"
                    },
                    "created_by_user": {
                      "description": "Objeto representando o usuário que criou o conhecimento",
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição ou texto do conhecimento, em formato HTML"
                    },
                    "knowledge_folder_ids": {
                      "type": "array",
                      "description": "Lista contendo os IDs das pastas de conhecimentos que foram relacionadas a este conhecimento",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "private": {
                      "description": "O conhecimento é privado?",
                      "type": "boolean"
                    },
                    "services_catalogs_item_ids": {
                      "type": "array",
                      "description": "Lista contendo os IDs dos itens de catálogos de serviço que foram relacionados ao conhecimento",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "tags": {
                      "type": "array",
                      "description": "Lista contendo as tags do conhecimento",
                      "items": {
                        "type": "string"
                      }
                    },
                    "technical_group_ids": {
                      "type": "array",
                      "description": "Lista contendo os IDs dos grupos de atendentes que tem permissão para acessar o conhecimento",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "title": {
                      "description": "Título",
                      "type": "string"
                    },
                    "updated_at": {
                      "description": "Data da última modificação do conhecimento",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "client_ids",
                    "created_at",
                    "created_by_user",
                    "description",
                    "knowledge_folder_ids",
                    "private",
                    "tags",
                    "technical_group_ids",
                    "services_catalogs_item_ids",
                    "title",
                    "updated_at"
                  ]
                },
                "example": {
                  "id": 13,
                  "client_ids": [
                    23
                  ],
                  "created_at": "2026-08-27T21:03:46Z",
                  "created_by_user": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  },
                  "description": "Descrição do conhecimento criado por API",
                  "knowledge_folder_ids": [
                    9
                  ],
                  "private": true,
                  "services_catalogs_item_ids": [
                    5
                  ],
                  "tags": [
                    "TAG1",
                    "TAG2"
                  ],
                  "technical_group_ids": [
                    116
                  ],
                  "title": "Título do conhecimento criado por API",
                  "updated_at": "2026-08-27T21:03:46Z"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "description": [
                      "can't be blank"
                    ],
                    "knowledge_folder_ids": [
                      "can't be blank",
                      "a knowledge must have at least one folder"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar conhecimento"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "description": "Título",
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição ou texto do conhecimento, em formato HTML"
                  },
                  "knowledge_folder_ids": {
                    "type": "array",
                    "description": "Lista contendo os IDs das pastas de conhecimentos que serão relacionadas ao conhecimento",
                    "items": {
                      "type": "integer"
                    }
                  },
                  "tags": {
                    "type": "array",
                    "description": "Lista contendo as tags do conhecimento. Devem ser strings que não possuem vírgula em seu nome",
                    "items": {
                      "type": "string"
                    }
                  },
                  "services_catalogs_item_ids": {
                    "type": "array",
                    "description": "Lista contendo os IDs dos itens de catálogos de serviço que serão relacionados ao conhecimento",
                    "items": {
                      "type": "integer"
                    }
                  },
                  "private": {
                    "description": "O conhecimento é privado?",
                    "type": "boolean",
                    "default": true
                  },
                  "technical_group_ids": {
                    "type": "array",
                    "description": "Lista contendo os IDs dos grupos de atendentes que terão permissão para acessar o conhecimento. Só será aceito caso o conhecimento seja do tipo privado",
                    "items": {
                      "type": "integer"
                    }
                  },
                  "client_ids": {
                    "type": "array",
                    "description": "Lista contendo os IDs dos clientes que terão permissão para acessar o conhecimento. Só será aceito caso o conhecimento seja do tipo privado",
                    "items": {
                      "type": "integer"
                    }
                  }
                },
                "required": [
                  "description",
                  "knowledge_folder_ids",
                  "title"
                ]
              },
              "examples": {
                "Criando um conhecimento padrão": {
                  "summary": "Criando um conhecimento padrão",
                  "value": {
                    "title": "Título do conhecimento criado por API",
                    "description": "<h1>Este é apenas um exemplo de como criar um conhecimento pela API!</h1><br><div>A descrição do conhecimento pode conter tags HTML</div>",
                    "knowledge_folder_ids": [
                      9
                    ]
                  }
                },
                "Criando um conhecimento público": {
                  "summary": "Criando um conhecimento público",
                  "value": {
                    "title": "Título do conhecimento público criado por API",
                    "description": "Descrição do conhecimento público criado por API. Para criar um conhecimento como público, basta informar 'private' como false",
                    "knowledge_folder_ids": [
                      9
                    ],
                    "private": false
                  }
                },
                "Criando um conhecimento privado com relacionamentos": {
                  "summary": "Criando um conhecimento privado com relacionamentos",
                  "value": {
                    "title": "Título do conhecimento privado criado por API",
                    "description": "Descrição do conhecimento público criado por API. O parâmetro 'private' assume o valor true se não informado. Então, por padrão, o conhecimento já é criado como privado. Note também, que é possível relacionar clientes e grupos técnicos que terão acesso ao conhecimento.",
                    "knowledge_folder_ids": [
                      9
                    ],
                    "private": true,
                    "client_ids": [
                      23
                    ],
                    "technical_group_ids": [
                      116
                    ]
                  }
                },
                "Criando um conhecimento com todos os atributos": {
                  "summary": "Criando um conhecimento com todos os atributos",
                  "value": {
                    "title": "Título do conhecimento criado por API",
                    "description": "Descrição do conhecimento criado por API",
                    "knowledge_folder_ids": [
                      9
                    ],
                    "private": true,
                    "client_ids": [
                      23
                    ],
                    "technical_group_ids": [
                      116
                    ],
                    "tags": [
                      "TAG1",
                      "TAG2"
                    ],
                    "services_catalogs_item_ids": [
                      5
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Confira abaixo alguns exemplos de corpo da requisição, para criação de um conhecimento.\n\n- Para conferir todos os parâmetros aceitos nessa rota, acesse a aba de SCHEMA."
        }
      }
    },
    "/knowledges/{id}": {
      "get": {
        "summary": "Exibir conhecimento",
        "tags": [
          "Conhecimentos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do conhecimento",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um conhecimento cadastrado na sua organização.\n\nEsta rota não exige nenhuma permissão específica, porém segue os mesmos critérios de visibilidade da rota de [listar conhecimentos](#get-/knowledges): retorna conhecimentos públicos e também os conhecimentos relacionados ao grupo de atendentes (ou clientes) do usuário autenticado. Caso o conhecimento não seja visível para o usuário autenticado, a resposta será `404`.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "get_knowledges_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 9,
                  "created_at": "2025-01-10T17:30:49Z",
                  "description": "text",
                  "private": false,
                  "tags": [
                    "TAG 1",
                    "TAG 2"
                  ],
                  "title": "Conhecimento de exemplo",
                  "updated_at": "2026-08-27T21:03:46Z"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Identificador do conhecimento",
                      "type": "integer"
                    },
                    "title": {
                      "description": "Título",
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição ou texto do conhecimento, em formato HTML"
                    },
                    "tags": {
                      "type": "array",
                      "description": "Lista contendo as tags do conhecimento",
                      "items": {
                        "type": "string"
                      }
                    },
                    "private": {
                      "description": "O conhecimento é privado?",
                      "type": "boolean"
                    },
                    "created_at": {
                      "description": "Data da criação do conhecimento",
                      "type": "string"
                    },
                    "updated_at": {
                      "description": "Data da última modificação do conhecimento",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "title",
                    "description",
                    "tags",
                    "private",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Conhecimento não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Knowledge with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Excluir conhecimento",
        "tags": [
          "Conhecimentos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do conhecimento",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exclui um conhecimento cadastrado na sua organização.\n\n- Ao ser excluído, o conhecimento é **desvinculado de todas as pastas** em que estava.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_knowledges_id",
        "responses": {
          "204": {
            "description": "### **Conhecimento excluído com sucesso**\nEssa resposta não contém body"
          },
          "404": {
            "description": "### **Conhecimento não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Knowledge with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar conhecimento"
          }
        ]
      }
    },
    "/reports/feedbacks/chats": {
      "get": {
        "summary": "Avaliações de atendimento - chats",
        "tags": [
          "Relatórios"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Retorna o relatório apenas de chats fechados/avaliados após a data passada como parâmetro. (Caso o parâmetro não seja informado, será considerado os últimos 30 dias)",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "1": {
                "value": "2024-08-15"
              }
            },
            "required": false
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "Retorna o relatório apenas de chats fechados/avaliados anteriormente a data passada como parâmetro. (Caso o parâmetro não seja informado será considerada a data atual)",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "1": {
                "value": "2030-05-21"
              }
            },
            "required": false
          },
          {
            "name": "chats_list",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false,
            "description": "Incluir a lista de chats avaliados na resposta?"
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Esse parâmetro só será utilizado ao informar `chats_list=true` na requisição. Ele representa o número da página retornada no atributo chats_list",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Esse parâmetro só será utilizado ao informar `chats_list=true` na requisição. Ele representa o número de itens retornados no atributo chats_list",
            "required": false
          },
          {
            "name": "responsible_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por atendentes.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "67",
                  "94",
                  "3"
                ],
                "summary": "Filtrar por mais de 1 atendente"
              },
              "2": {
                "value": [
                  "1"
                ],
                "summary": "Filtrar por 1 atendente"
              }
            }
          },
          {
            "name": "department_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por departamentos.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "99",
                  "93"
                ],
                "summary": "Filtrar por mais de 1 departamento"
              },
              "2": {
                "value": [
                  "187"
                ],
                "summary": "Filtrar por 1 departamento"
              }
            }
          },
          {
            "name": "technical_group_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por grupos de atendentes.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "982",
                  "2",
                  "1024"
                ],
                "summary": "Filtrar por mais de 1 grupo de atendente"
              },
              "2": {
                "value": [
                  "44"
                ],
                "summary": "Filtrar por 1 grupo de atendente"
              }
            }
          }
        ],
        "description": "Este método retorna as informações do relatório de Avaliações de atendimento, filtrando por chats.\n- Por padrão, é retornado apenas o resumo das informações, dentro do atributo `summary`.\n- Mas, se você também deseja exibir a lista de chats avaliados, basta utilizar o parâmetro `chats_list=true`. Que será incluso um atributo `chats_list` na resposta, com uma listagem *paginada* dos chats.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_reports_feedbacks_chats",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Resposta padrão": {
                    "value": {
                      "summary": {
                        "answers_percentage": "100.0",
                        "chats_evaluated": 2,
                        "chats_finished": 2,
                        "clients_evaluated": 2,
                        "rating_average": "2.5"
                      }
                    }
                  },
                  "Resposta com a lista de chats": {
                    "value": {
                      "summary": {
                        "answers_percentage": "100.0",
                        "chats_evaluated": 2,
                        "chats_finished": 2,
                        "clients_evaluated": 2,
                        "rating_average": "2.5"
                      },
                      "chats_list": [
                        {
                          "id": 12,
                          "client_id": 9,
                          "client_name": "Flatley LLC",
                          "origin": "gupshup",
                          "rating": "3.0",
                          "rating_time": "2026-08-27T21:03:29Z",
                          "responsible_id": null,
                          "responsible_name": null,
                          "ticket_number": null,
                          "ticket_title": null
                        },
                        {
                          "id": 13,
                          "client_id": 10,
                          "client_name": "Krajcik, Fisher and Nitzsche",
                          "origin": "gupshup",
                          "rating": "2.0",
                          "rating_time": "2026-08-27T21:03:29Z",
                          "responsible_id": null,
                          "responsible_name": null,
                          "ticket_number": null,
                          "ticket_title": null
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "Resposta padrão",
                      "properties": {
                        "summary": {
                          "type": "object",
                          "properties": {
                            "answers_percentage": {
                              "type": "string",
                              "description": "Respostas (%)"
                            },
                            "chats_evaluated": {
                              "type": "integer",
                              "description": "Chats avaliados"
                            },
                            "chats_finished": {
                              "type": "integer",
                              "description": "Chats finalizados"
                            },
                            "clients_evaluated": {
                              "type": "integer",
                              "description": "Quantidade de clientes que avaliaram"
                            },
                            "rating_average": {
                              "type": "string",
                              "description": "Média de avaliação"
                            }
                          },
                          "required": [
                            "answers_percentage",
                            "chats_evaluated",
                            "chats_finished",
                            "clients_evaluated",
                            "rating_average"
                          ]
                        }
                      },
                      "required": [
                        "summary"
                      ]
                    },
                    {
                      "type": "object",
                      "title": "Resposta com a lista de chats",
                      "description": "Resposta recebida ao utilizar `chats_list=true`",
                      "properties": {
                        "summary": {
                          "type": "object",
                          "properties": {
                            "answers_percentage": {
                              "type": "string",
                              "description": "Respostas (%)"
                            },
                            "chats_evaluated": {
                              "type": "integer",
                              "description": "Chats avaliados"
                            },
                            "chats_finished": {
                              "type": "integer",
                              "description": "Chats finalizados"
                            },
                            "clients_evaluated": {
                              "type": "integer",
                              "description": "Quantidade de clientes que avaliaram"
                            },
                            "rating_average": {
                              "type": "string",
                              "description": "Média de avaliação"
                            }
                          },
                          "required": [
                            "answers_percentage",
                            "chats_evaluated",
                            "chats_finished",
                            "clients_evaluated",
                            "rating_average"
                          ]
                        },
                        "chats_list": {
                          "type": "array",
                          "description": "**Lista de chats avaliados**",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do chat"
                              },
                              "client_id": {
                                "type": "integer",
                                "description": "Identificador do cliente",
                                "nullable": true
                              },
                              "client_name": {
                                "type": "string",
                                "description": "Nome fantasia do cliente",
                                "nullable": true
                              },
                              "origin": {
                                "type": "string",
                                "description": "Canal de origem do chat"
                              },
                              "rating": {
                                "type": "string",
                                "description": "Nota da avaliação do chat"
                              },
                              "rating_time": {
                                "type": "string",
                                "format": "datetime",
                                "description": "Data da avaliação do chat"
                              },
                              "responsible_id": {
                                "type": "integer",
                                "description": "Identificador do responsável",
                                "nullable": true
                              },
                              "responsible_name": {
                                "type": "string",
                                "description": "Nome do responsável",
                                "nullable": true
                              },
                              "ticket_number": {
                                "type": "integer",
                                "description": "Número do ticket vinculado ao chat",
                                "nullable": true
                              },
                              "ticket_title": {
                                "type": "string",
                                "description": "Título do ticket vinculado ao chat",
                                "nullable": true
                              }
                            },
                            "required": [
                              "id",
                              "client_id",
                              "client_name",
                              "rating",
                              "rating_time",
                              "responsible_id",
                              "responsible_name",
                              "origin",
                              "ticket_number",
                              "ticket_title"
                            ]
                          }
                        }
                      },
                      "required": [
                        "summary",
                        "chats_list"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Formato inválido de responsible_ids": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "responsible_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "Formato inválido de department_ids": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "department_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "Formato inválido de technical_group_ids": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "technical_group_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "start_date deve ser menor que end_date": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "end_date": [
                          "must be greater than or equal to :start_date (2023-01-01)"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar relatórios administrativos"
          }
        ]
      }
    },
    "/reports/feedbacks/tickets": {
      "get": {
        "summary": "Avaliações de atendimento - tickets",
        "tags": [
          "Relatórios"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Retorna o relatório apenas de tickets revisados/avaliados após a data passada como parâmetro. (Caso o parâmetro não seja informado, será considerado os últimos 30 dias)",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "1": {
                "value": "2024-08-15"
              }
            },
            "required": false
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "Retorna o relatório apenas de tickets revisados/avaliados anteriormente a data passada como parâmetro. (Caso o parâmetro não seja informado será considerada a data atual)",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "1": {
                "value": "2030-05-21"
              }
            },
            "required": false
          },
          {
            "name": "tickets_list",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false,
            "description": "Incluir a lista de tickets avaliados na resposta?"
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Esse parâmetro só será utilizado ao informar `tickets_list=true` na requisição. Ele representa o número da página retornada no atributo tickets_list",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Esse parâmetro só será utilizado ao informar `tickets_list=true` na requisição. Ele representa o número de itens retornados no atributo tickets_list",
            "required": false
          },
          {
            "name": "responsible_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por atendentes.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "9124",
                  "4",
                  "31"
                ],
                "summary": "Filtrar por mais de 1 atendente"
              },
              "2": {
                "value": [
                  "34"
                ],
                "summary": "Filtrar por 1 atendente"
              }
            }
          },
          {
            "name": "desk_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por mesas.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "699",
                  "29"
                ],
                "summary": "Filtrar por mais de uma mesa"
              },
              "2": {
                "value": [
                  "17"
                ],
                "summary": "Filtrar por uma mesa"
              }
            }
          },
          {
            "name": "client_ids",
            "in": "query",
            "required": false,
            "description": "Filtrar por clientes.\n\nOs IDs devem ser informados na sequência e separados por vírgula",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "1": {
                "value": [
                  "82",
                  "200",
                  "12"
                ],
                "summary": "Filtrar por mais de um cliente"
              },
              "2": {
                "value": [
                  "58"
                ],
                "summary": "Filtrar por um cliente"
              }
            }
          }
        ],
        "description": "Este método retorna as informações do relatório de Avaliações de atendimento, filtrando por tickets.\n- Por padrão, é retornado apenas o resumo das informações, dentro do atributo `summary`.\n- Mas, se você também deseja exibir a lista de tickets avaliados, basta utilizar o parâmetro `tickets_list=true`. Que será incluso um atributo `tickets_list` na resposta, com uma listagem *paginada* dos tickets.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_reports_feedbacks_tickets",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Resposta padrão": {
                    "value": {
                      "summary": {
                        "answers_percentage": "100.0",
                        "clients_evaluated": 1,
                        "rating_average": "2.33",
                        "tickets_evaluated": 3,
                        "tickets_finished": 3
                      }
                    }
                  },
                  "Resposta com a lista de tickets": {
                    "value": {
                      "summary": {
                        "answers_percentage": "100.0",
                        "clients_evaluated": 1,
                        "rating_average": "2.33",
                        "tickets_evaluated": 3,
                        "tickets_finished": 3
                      },
                      "tickets_list": [
                        {
                          "id": 1,
                          "client_id": 24,
                          "client_name": "Dare Inc",
                          "comments": "Serviço muito bom!",
                          "desk_id": 6,
                          "desk_name": "API",
                          "rating": 1,
                          "responsible_id": 1,
                          "responsible_name": "Kum Rau Sr.",
                          "revised_in_time": "2026-08-27T21:03:48Z",
                          "ticket_number": 3,
                          "ticket_title": "Only a test"
                        },
                        {
                          "id": 2,
                          "client_id": 24,
                          "client_name": "Dare Inc",
                          "comments": "Serviço muito bom!",
                          "desk_id": 6,
                          "desk_name": "API",
                          "rating": 5,
                          "responsible_id": 1,
                          "responsible_name": "Kum Rau Sr.",
                          "revised_in_time": "2026-08-27T21:03:48Z",
                          "ticket_number": 4,
                          "ticket_title": "Only a test"
                        },
                        {
                          "id": 3,
                          "client_id": 24,
                          "client_name": "Dare Inc",
                          "comments": "Serviço muito bom!",
                          "desk_id": 6,
                          "desk_name": "API",
                          "rating": 1,
                          "responsible_id": 1,
                          "responsible_name": "Kum Rau Sr.",
                          "revised_in_time": "2026-08-27T21:03:48Z",
                          "ticket_number": 5,
                          "ticket_title": "Only a test"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "Resposta padrão",
                      "properties": {
                        "summary": {
                          "type": "object",
                          "properties": {
                            "answers_percentage": {
                              "type": "string",
                              "description": "Respostas (%)"
                            },
                            "tickets_evaluated": {
                              "type": "integer",
                              "description": "Tickets avaliados"
                            },
                            "tickets_finished": {
                              "type": "integer",
                              "description": "Tickets finalizados"
                            },
                            "clients_evaluated": {
                              "type": "integer",
                              "description": "Quantidade de clientes que avaliaram"
                            },
                            "rating_average": {
                              "type": "string",
                              "description": "Média de avaliação"
                            }
                          },
                          "required": [
                            "answers_percentage",
                            "tickets_evaluated",
                            "tickets_finished",
                            "clients_evaluated",
                            "rating_average"
                          ]
                        }
                      },
                      "required": [
                        "summary"
                      ]
                    },
                    {
                      "type": "object",
                      "title": "Resposta com a lista de tickets",
                      "description": "Resposta recebida ao utilizar `tickets_list=true`",
                      "properties": {
                        "summary": {
                          "type": "object",
                          "properties": {
                            "answers_percentage": {
                              "type": "string",
                              "description": "Respostas (%)"
                            },
                            "tickets_evaluated": {
                              "type": "integer",
                              "description": "Tickets avaliados"
                            },
                            "tickets_finished": {
                              "type": "integer",
                              "description": "Tickets finalizados"
                            },
                            "clients_evaluated": {
                              "type": "integer",
                              "description": "Quantidade de clientes que avaliaram"
                            },
                            "rating_average": {
                              "type": "string",
                              "description": "Média de avaliação"
                            }
                          },
                          "required": [
                            "answers_percentage",
                            "tickets_evaluated",
                            "tickets_finished",
                            "clients_evaluated",
                            "rating_average"
                          ]
                        },
                        "tickets_list": {
                          "type": "array",
                          "description": "**Lista de tickets avaliados**",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do feedback"
                              },
                              "client_id": {
                                "type": "integer",
                                "description": "Identificador do cliente"
                              },
                              "client_name": {
                                "type": "string",
                                "description": "Nome fantasia do cliente"
                              },
                              "rating": {
                                "type": "integer",
                                "description": "Nota da avaliação do ticket"
                              },
                              "revised_in_time": {
                                "type": "string",
                                "format": "datetime",
                                "description": "Data que o ticket foi avaliado"
                              },
                              "responsible_id": {
                                "type": "integer",
                                "description": "Identificador do responsável",
                                "nullable": true
                              },
                              "responsible_name": {
                                "type": "string",
                                "description": "Nome do responsável",
                                "nullable": true
                              },
                              "ticket_number": {
                                "type": "integer",
                                "description": "Número do ticket"
                              },
                              "ticket_title": {
                                "type": "string",
                                "description": "Título do ticket"
                              },
                              "desk_id": {
                                "type": "integer",
                                "description": "Identificador da mesa"
                              },
                              "desk_name": {
                                "type": "string",
                                "description": "Nome da mesa"
                              },
                              "comments": {
                                "type": "string",
                                "description": "Comentário da avaliação deixado pelo cliente",
                                "nullable": true
                              }
                            },
                            "required": [
                              "id",
                              "client_id",
                              "client_name",
                              "responsible_id",
                              "responsible_name",
                              "ticket_number",
                              "ticket_title",
                              "rating",
                              "desk_id",
                              "desk_name",
                              "revised_in_time",
                              "comments"
                            ]
                          }
                        }
                      },
                      "required": [
                        "summary",
                        "tickets_list"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Formato inválido de responsible_ids": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "responsible_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "Formato inválido de client_ids": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "client_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "Formato inválido de desk_ids": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "desk_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "start_date deve ser menor que end_date": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "end_date": [
                          "must be greater than or equal to :start_date (2023-01-01)"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar relatórios administrativos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/reports/billings/history": {
      "get": {
        "summary": "Histórico de faturamentos",
        "tags": [
          "Relatórios"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 15,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "billing_start_date",
            "in": "query",
            "description": "Este parâmetro permite filtrar o relatório para incluir apenas itens **faturados a partir da data especificada**. Deve ser usado em conjunto com `billing_end_date` para definir o intervalo de datas. O valor deve estar no formato **YYYY-MM-DD**",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-02-17"
              }
            },
            "required": false
          },
          {
            "name": "billing_end_date",
            "in": "query",
            "description": "Este parâmetro permite filtrar o relatório para incluir apenas itens **faturados até a data especificada**. Deve ser utilizado em conjunto com `billing_start_date` para definir o intervalo de datas. O valor deve estar no formato **YYYY-MM-DD**",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-12-31"
              }
            },
            "required": false
          },
          {
            "name": "due_start_date",
            "in": "query",
            "description": "Este parâmetro permite filtrar os faturamentos para incluir apenas itens com data de **vencimento a partir da data especificada**. Deve ser utilizado em conjunto com `due_end_date` para definir o intervalo de vencimento. O valor deve estar no formato **YYYY-MM-DD**",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-02-17"
              }
            },
            "required": false
          },
          {
            "name": "due_end_date",
            "in": "query",
            "description": "Este parâmetro permite filtrar os faturamentos para incluir apenas itens com data de **vencimento até a data especificada**. Deve ser utilizado em conjunto com `due_start_date` para definir o intervalo de vencimento. O valor deve estar no formato **YYYY-MM-DD**",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-12-31"
              }
            },
            "required": false
          },
          {
            "name": "client_id",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Filtra os faturamentos de um determinado cliente",
            "required": false
          },
          {
            "name": "nfe_number",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Filtra os faturamentos por um Número de NFe",
            "required": false
          },
          {
            "name": "ticket_number",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "description": "Filtra os faturamentos relacionados ao ticket de número informado",
            "required": false
          },
          {
            "name": "_type",
            "required": false,
            "description": "Filtra os faturamentos pelo tipo de faturamento",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "billed",
                "reversed",
                "paid"
              ]
            },
            "examples": {
              "0": {
                "value": "",
                "summary": "Todos"
              },
              "1": {
                "value": "billed",
                "summary": "Faturado"
              },
              "2": {
                "value": "reversed",
                "summary": "Estornado"
              },
              "3": {
                "value": "paid",
                "summary": "Pago"
              }
            }
          }
        ],
        "description": "Este método lista os faturamentos realizados, retornando as informações do relatório histórico de faturamentos.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_reports_billings_history",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "billing_id": 2,
                    "billing_date": "2024-10-10",
                    "client_id": 24,
                    "client_name": "Dare Inc",
                    "due_date": "2024-10-15",
                    "nfe_number": "4310034",
                    "paid": false,
                    "real_value": "755.90",
                    "reversal": false
                  },
                  {
                    "billing_id": 1,
                    "billing_date": "2024-08-22",
                    "client_id": 24,
                    "client_name": "Dare Inc",
                    "due_date": "2024-08-27",
                    "nfe_number": "123123123",
                    "paid": false,
                    "real_value": "1000.00",
                    "reversal": true
                  }
                ]
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "due_start_date": [
                      "invalid datetime"
                    ],
                    "due_end_date": [
                      "can't be blank if :due_start_date is provided"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Faturar serviços avulsos e contratos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/role-groups": {
      "get": {
        "summary": "Listar grupos de permissões",
        "tags": [
          "Grupos de Permissões"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os grupos de permissões que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_role-groups",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "deletable": false,
                    "name": "Administrador"
                  },
                  {
                    "id": 22,
                    "deletable": false,
                    "name": "Clientes"
                  },
                  {
                    "id": 101,
                    "deletable": true,
                    "name": "Super técnicos"
                  },
                  {
                    "id": 81,
                    "deletable": true,
                    "name": "Técnico"
                  },
                  {
                    "id": 84,
                    "deletable": true,
                    "name": "Técnico"
                  },
                  {
                    "id": 89,
                    "deletable": true,
                    "name": "Técnico"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "title": "Listar grupos de permissões",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do grupo de permissões"
                      },
                      "deletable": {
                        "type": "boolean",
                        "description": "Indica se o grupo de permissões pode ser excluído. Grupos padrões não podem ser excluídos."
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do grupo de permissões"
                      }
                    },
                    "required": [
                      "id",
                      "deletable",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "offset": [
                      "must be greater than 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar grupos de permissão"
          }
        ]
      }
    },
    "/role-groups/{id}": {
      "get": {
        "summary": "Exibir grupo de permissões",
        "tags": [
          "Grupos de Permissões"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de permissões",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um determinado grupo de permissões.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_role-groups_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 101,
                  "deletable": true,
                  "description": "Grupo dos super técnicos",
                  "name": "Super técnicos",
                  "roles": [
                    {
                      "id": 18,
                      "description": "Permite abrir e visualizar tickets, adicionar respostas e fazer upload de arquivos em tickets.",
                      "name": "Visualizar e abrir tickets"
                    },
                    {
                      "id": 19,
                      "description": "Permite editar as informações dos tickets existentes.",
                      "name": "Editar tickets"
                    },
                    {
                      "id": 20,
                      "description": "Mudar a prioridade e desativar SLA dos tickets.",
                      "name": "Mudar a prioridade e desativar SLA dos tickets"
                    },
                    {
                      "id": 21,
                      "description": "Permite inserir, remover e editar valorizações extras nos tickets.",
                      "name": "Inserir, remover e editar valorização extra"
                    },
                    {
                      "id": 22,
                      "description": "Permite editar e remover apontamentos de outros usuários.",
                      "name": "Editar apontamentos de todos"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir grupo de permissões",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do grupo de permissões"
                    },
                    "deletable": {
                      "type": "boolean",
                      "description": "Indica se o grupo de permissões pode ser excluído. Grupos padrões não podem ser excluídos."
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição do grupo de permissões"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do grupo de permissões"
                    },
                    "roles": {
                      "type": "array",
                      "description": "**Lista de permissões atribuídas a este grupo de permissões**",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID da permissão"
                          },
                          "description": {
                            "type": "string",
                            "description": "Descrição da permissão"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome da permissão"
                          }
                        },
                        "required": [
                          "id",
                          "description",
                          "name"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "deletable",
                    "name"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "id": [
                      "must be greater than 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Grupo de permissões não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find RoleGroup with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar grupos de permissão"
          }
        ]
      }
    },
    "/role-groups/{id}/users": {
      "get": {
        "summary": "Relacionamento com usuários",
        "tags": [
          "Grupos de Permissões"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de permissões",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "description": "Filtrar a busca de usuários pelo email",
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os usuários que estão relacionados com um determinado grupo de permissões.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_role-groups_id_users",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 125,
                    "_type": "attendant",
                    "active": true,
                    "email": "kuphal_ashely@volkman.test",
                    "gauth_enabled": false,
                    "last_login_at": null,
                    "name": "Ashely Kuphal",
                    "technical_group_id": 128
                  },
                  {
                    "id": 126,
                    "_type": "attendant",
                    "active": true,
                    "email": "ret_hayes_dino@zemlak-cartwright.test",
                    "gauth_enabled": false,
                    "last_login_at": null,
                    "name": "Dino Hayes Ret.",
                    "technical_group_id": 129
                  },
                  {
                    "id": 127,
                    "_type": "attendant",
                    "active": true,
                    "email": "mohr_sen_mauricio@kessler-crist.example",
                    "gauth_enabled": false,
                    "last_login_at": null,
                    "name": "Sen. Mauricio Mohr",
                    "technical_group_id": 130
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do grupo de permissões"
                      },
                      "_type": {
                        "type": "string",
                        "description": "Tipo de usuário",
                        "enum": [
                          "client",
                          "attendant",
                          "admin"
                        ],
                        "nullable": true
                      },
                      "active": {
                        "type": "boolean",
                        "description": "O usuário está ativo?"
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "description": "E-mail do usuário"
                      },
                      "gauth_enabled": {
                        "type": "boolean",
                        "description": "O usuário possui autenticação de dois fatores habilitada?"
                      },
                      "last_login_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data do último acesso do usuário"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do usuário"
                      },
                      "technical_group_id": {
                        "type": "integer",
                        "nullable": true,
                        "description": "ID do grupo de atendentes do usuário"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "email",
                      "gauth_enabled",
                      "active"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Grupo de permissões não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find RoleGroup with 'id'=\"99999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "email inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "email": [
                          "is too long (maximum is 255 characters)"
                        ]
                      }
                    }
                  },
                  "limit inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "must be less than or equal to 200"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar grupos de permissão"
          }
        ]
      }
    },
    "/role-groups/{id}/technical-groups": {
      "get": {
        "summary": "Relacionamento com grupos de atendentes",
        "tags": [
          "Grupos de Permissões"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de permissões",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os grupos de atendentes que estão relacionadas com um determinado grupo de permissões.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_role-groups_id_technical-groups",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 132,
                    "name": "Product Management"
                  },
                  {
                    "id": 133,
                    "name": "Sales"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do grupo de atendentes"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do grupo de atendentes"
                      }
                    },
                    "required": [
                      "id",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Grupo de permissões não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find RoleGroup with 'id'=\"99999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "ID inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "id": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "limit inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "must be less than or equal to 200"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar grupos de permissão"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/appointments": {
      "post": {
        "summary": "Criar apontamento",
        "tags": [
          "Apontamentos"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1234
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Cria um apontamento em um determinado ticket.\n- É possível criar apontamentos em tickets de mesas configuradas com **apontamentos sem valorização** ou **com valorização**.\n- Em mesas **com valorização** são obrigatórios **attendance** e **attendance_kind**, além de **loose_service_id** (quando attendance_kind = 1) ou **contract_rider_id** (quando attendance_kind = 2).\n- O **value** só pode ser informado em apontamentos de **serviço avulso** (attendance_kind = 1), onde é registrado como valor manual; quando omitido, é calculado a partir do serviço avulso cadastrado. Em apontamentos de **contrato** o valor não deve ser informado, pois o faturamento contabiliza a quantidade de horas dos apontamentos.\n- Em apontamentos em **garantia** (guarantee = true) o valor é zero e o campo **value** não deve ser informado.\n- O deslocamento pode ser um deslocamento cadastrado (**shift_id**) ou o deslocamento de outro ticket do mesmo cliente (**shift_owner_ticket_number**), nunca os dois no mesmo apontamento.\n- Em mesas **sem valorização** os campos de valorização não podem ser informados.\n- Não é possível criar apontamentos em mesas configuradas como **sem apontamentos**.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets_ticket_number_appointments",
        "responses": {
          "201": {
            "description": "### **Apontamento criado**",
            "content": {
              "application/json": {
                "examples": {
                  "Apontamento de serviço avulso em mesa com valorização": {
                    "value": {
                      "id": 8,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "20:35",
                      "external_user_name": "João da Silva",
                      "init_time": "17:30",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      },
                      "value": "150.00"
                    }
                  },
                  "Apontamento de serviço avulso com attendance e attendance_kind como texto": {
                    "value": {
                      "id": 9,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "20:35",
                      "external_user_name": null,
                      "init_time": "17:30",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      },
                      "value": "150.00"
                    }
                  },
                  "Apontamento de serviço avulso em garantia": {
                    "value": {
                      "id": 10,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "20:35",
                      "external_user_name": null,
                      "init_time": "17:30",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      },
                      "value": "0.00"
                    }
                  },
                  "Apontamento de serviço avulso sem valor, calculado pelo serviço": {
                    "value": {
                      "id": 11,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "18:30",
                      "external_user_name": null,
                      "init_time": "17:30",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      },
                      "value": "50.00"
                    }
                  },
                  "Apontamento de serviço avulso externo usa o valor de atendimento externo": {
                    "value": {
                      "id": 12,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "09:00",
                      "external_user_name": null,
                      "init_time": "08:00",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      },
                      "value": "100.00"
                    }
                  },
                  "Apontamento com deslocamento de outro ticket do cliente": {
                    "value": {
                      "id": 13,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "11:00",
                      "external_user_name": null,
                      "init_time": "10:00",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      }
                    }
                  },
                  "Apontamento de contrato compartilhado com deslocamento do grupo": {
                    "value": {
                      "id": 14,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "15:00",
                      "external_user_name": null,
                      "init_time": "14:00",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      }
                    }
                  },
                  "Apontamento de contrato em mesa com valorização": {
                    "value": {
                      "id": 15,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "20:35",
                      "external_user_name": "João da Silva",
                      "init_time": "17:30",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      }
                    }
                  },
                  "Apontamento com todos os atributos possíveis": {
                    "value": {
                      "id": 16,
                      "date": "2024-08-16",
                      "description": "Atendimento presencial referente ao contrato de manutenção",
                      "end_time": "09:00",
                      "external_user_name": "João da Silva",
                      "init_time": "08:00",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      },
                      "value": "150.00"
                    }
                  },
                  "Apontamento em mesa sem valorização": {
                    "value": {
                      "id": 17,
                      "date": "2024-08-16",
                      "description": "Descrição do apontamento",
                      "end_time": "20:35",
                      "external_user_name": null,
                      "init_time": "17:30",
                      "user": {
                        "id": 1,
                        "name": "Kum Rau Sr."
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "**Identificador do apontamento**"
                    },
                    "date": {
                      "type": "string",
                      "format": "date",
                      "description": "Dia em que o atendimento foi realizado"
                    },
                    "init_time": {
                      "type": "string",
                      "description": "Horário de início do atendimento. No formato **HH:MM**"
                    },
                    "end_time": {
                      "type": "string",
                      "description": "Horário de fim do atendimento. No formato **HH:MM**"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição do apontamento"
                    },
                    "external_user_name": {
                      "type": "string",
                      "description": "Nome do usuário que executou a ação em uma ferramenta externa",
                      "nullable": true
                    },
                    "value": {
                      "type": "string",
                      "description": "Valor do apontamento. Retornado apenas em apontamentos de **serviço avulso**: nos de contrato o faturamento contabiliza a quantidade de horas, não o valor do apontamento"
                    },
                    "user": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "**Identificador do usuário**"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome do usuário"
                        }
                      },
                      "description": "*Atendente que realizou o apontamento:*"
                    }
                  },
                  "required": [
                    "id",
                    "date",
                    "init_time",
                    "end_time",
                    "description",
                    "user"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Valor do número do ticket inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "ticket_number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Algum valor do corpo da requisição está inválido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "description": [
                          "can't be blank"
                        ],
                        "date": [
                          "invalid date"
                        ],
                        "init_time": [
                          "field is incorrectly formatted. It should follow the 'HH:MM' pattern, with the maximum allowed value being 23:59"
                        ],
                        "end_time": [
                          "field is incorrectly formatted. It should follow the 'HH:MM' pattern, with the maximum allowed value being 23:59"
                        ]
                      }
                    }
                  },
                  "Campos de valorização obrigatórios ausentes em mesa com valorização": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "attendance": [
                          "can't be blank"
                        ],
                        "loose_service_id": [
                          "can't be blank when attendance_kind is 1 (Loose)"
                        ]
                      }
                    }
                  },
                  "Valor informado em apontamento de contrato": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "value": [
                          "can't be informed when attendance_kind is 2 (Contract), the billing considers the appointment hours"
                        ]
                      }
                    }
                  },
                  "Serviço avulso informado em apontamento de contrato": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "loose_service_id": [
                          "can't be informed when attendance_kind is 2 (Contract)"
                        ]
                      }
                    }
                  },
                  "Aditivo de contrato informado em apontamento de serviço avulso": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "contract_rider_id": [
                          "can't be informed when attendance_kind is 1 (Loose)"
                        ]
                      }
                    }
                  },
                  "Valor acima do limite permitido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "value": [
                          "must be greater than or equal to 0 and less than or equal to 9999999.99"
                        ]
                      }
                    }
                  },
                  "Nome do usuário externo com caracteres de marcação": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "external_user_name": [
                          "can't contain the characters < or >"
                        ]
                      }
                    }
                  },
                  "Nome do usuário externo maior que 255 caracteres": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "external_user_name": [
                          "is too long (maximum is 255 characters)"
                        ]
                      }
                    }
                  },
                  "Serviço avulso inexistente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "loose_service_id": [
                          "not found, inactive or does not belong to the organization"
                        ]
                      }
                    }
                  },
                  "Aditivo de contrato inexistente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "contract_rider_id": [
                          "not found or does not belong to the organization"
                        ]
                      }
                    }
                  },
                  "Deslocamento inexistente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_id": [
                          "not found, inactive or does not belong to the organization"
                        ]
                      }
                    }
                  },
                  "Aditivo vinculado a grupo de contratos": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "contract_rider_id": [
                          "belongs to a contract group and can't be used in appointments"
                        ]
                      }
                    }
                  },
                  "Aditivo de contrato de outro cliente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "contract_rider_id": [
                          "does not belong to the client of this ticket"
                        ]
                      }
                    }
                  },
                  "Aditivo de contrato vencido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "contract_rider_id": [
                          "is cancelled or no longer valid"
                        ]
                      }
                    }
                  },
                  "Data anterior ao início da vigência do aditivo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "contract_rider_id": [
                          "is not valid for the informed date, it starts on 2024-01-01"
                        ]
                      }
                    }
                  },
                  "Serviço avulso inativo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "loose_service_id": [
                          "not found, inactive or does not belong to the organization"
                        ]
                      }
                    }
                  },
                  "Serviço avulso restrito a outro cliente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "loose_service_id": [
                          "is not available for the client of this ticket"
                        ]
                      }
                    }
                  },
                  "Atendimento externo sem deslocamento em organização que exige deslocamento": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_id": [
                          "can't be blank when attendance is 1 (External), this organization requires a shift. Inform shift_id or shift_owner_ticket_number"
                        ]
                      }
                    }
                  },
                  "Valor informado em apontamento em garantia": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "value": [
                          "can't be informed when guarantee is true, the appointment value is zero"
                        ]
                      }
                    }
                  },
                  "Deslocamento carona de ticket de outro cliente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_owner_ticket_number": [
                          "not found, closed or does not belong to the client of this ticket"
                        ]
                      }
                    }
                  },
                  "Deslocamento carona de ticket fechado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_owner_ticket_number": [
                          "not found, closed or does not belong to the client of this ticket"
                        ]
                      }
                    }
                  },
                  "Deslocamento carona de ticket sem deslocamento": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_owner_ticket_number": [
                          "has no appointment with a shift to be used"
                        ]
                      }
                    }
                  },
                  "Deslocamento de outro cliente": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_id": [
                          "does not belong to the client of this ticket"
                        ]
                      }
                    }
                  },
                  "Deslocamento carona informado junto com shift_id": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_owner_ticket_number": [
                          "can't be informed together with shift_id"
                        ]
                      }
                    }
                  },
                  "Campos de valorização informados em mesa sem valorização": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "attendance": [
                          "can't be informed, this ticket is in a desk with appointment_type 'Appointments with no Valorization'"
                        ],
                        "attendance_kind": [
                          "can't be informed, this ticket is in a desk with appointment_type 'Appointments with no Valorization'"
                        ],
                        "loose_service_id": [
                          "can't be informed, this ticket is in a desk with appointment_type 'Appointments with no Valorization'"
                        ],
                        "value": [
                          "can't be informed, this ticket is in a desk with appointment_type 'Appointments with no Valorization'"
                        ]
                      }
                    }
                  },
                  "Garantia informada como falsa em mesa sem valorização": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "guarantee": [
                          "can't be informed, this ticket is in a desk with appointment_type 'Appointments with no Valorization'"
                        ]
                      }
                    }
                  },
                  "Deslocamento informado em atendimento que não é externo": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_id": [
                          "can only be informed when attendance is 1 (External)"
                        ]
                      }
                    }
                  },
                  "Deslocamento de contrato informado em apontamento avulso": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "shift_id": [
                          "belongs to a contract and can only be informed when attendance_kind is 2 (Contract)"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Criar e editar apontamentos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "date": {
                    "type": "string",
                    "format": "date",
                    "description": "Dia que será criado o apontamento. Não é possível informar um dia futuro e são aceitos vários formatos, mas recomendamos informar em iso8601: **YYYY-MM-DD**",
                    "example": "2024-08-16"
                  },
                  "init_time": {
                    "type": "string",
                    "description": "Horário de início do atendimento. No formato **HH:MM**",
                    "example": "17:30"
                  },
                  "end_time": {
                    "type": "string",
                    "description": "Horário de fim do atendimento. No formato **HH:MM**",
                    "example": "20:35"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição do apontamento",
                    "example": "Atendimento realizado no cliente"
                  },
                  "external_user_name": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Nome do usuário que executou a ação em uma ferramenta externa. É um valor de registro/exibição, não substitui o usuário autenticado na API. Tamanho máximo de 255 caracteres e não pode conter os caracteres < ou >.",
                    "nullable": true,
                    "example": "João da Silva"
                  },
                  "attendance": {
                    "type": "integer",
                    "enum": [
                      1,
                      2,
                      3
                    ],
                    "description": "Tipo de atendimento: **1** (Externo), **2** (Remoto) ou **3** (Interno). Obrigatório em mesas com valorização.",
                    "nullable": true
                  },
                  "attendance_kind": {
                    "type": "integer",
                    "enum": [
                      1,
                      2
                    ],
                    "description": "Tipo do vínculo de valorização: **1** (Avulso) ou **2** (Contrato). Utilizado apenas em mesas com valorização.",
                    "nullable": true
                  },
                  "contract_rider_id": {
                    "type": "integer",
                    "description": "Identificador do aditivo de contrato (contract_rider) usado como referência. Obrigatório quando attendance_kind é **2** (Contrato) e não pode ser informado quando é **1** (Avulso). Deve pertencer a um contrato vigente do cliente do ticket. Aditivos vinculados diretamente a um **grupo de contratos** não podem ser utilizados.",
                    "nullable": true
                  },
                  "loose_service_id": {
                    "type": "integer",
                    "description": "Identificador do serviço avulso usado como referência. Obrigatório quando attendance_kind é **1** (Avulso) e não pode ser informado quando é **2** (Contrato). Deve ser um serviço **ativo** e disponível para o cliente do ticket.",
                    "nullable": true
                  },
                  "shift_id": {
                    "type": "integer",
                    "description": "Identificador do deslocamento vinculado ao apontamento. Deve ser um deslocamento **ativo** e pertencente à organização. Só pode ser informado quando o atendimento é **externo** (attendance = 1), sendo obrigatório nesse caso quando a organização exige deslocamento. Deslocamentos vinculados a um contrato só podem ser utilizados em apontamentos de contrato (attendance_kind = 2) e devem pertencer ao mesmo contrato informado em contract_rider_id.",
                    "nullable": true
                  },
                  "shift_owner_ticket_number": {
                    "type": "integer",
                    "description": "Número do ticket que possui o deslocamento aproveitado por este apontamento (deslocamento **carona**). Deve ser outro ticket do mesmo cliente e só pode ser informado quando o atendimento é **externo** (attendance = 1), sem shift_id no mesmo apontamento.",
                    "nullable": true
                  },
                  "guarantee": {
                    "type": "boolean",
                    "description": "Indica apontamento em **garantia**. Quando verdadeiro o valor do apontamento é zero e o campo value não deve ser informado.",
                    "nullable": true
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 9999999.99,
                    "description": "Valor do apontamento. Só pode ser informado em apontamentos de **serviço avulso** (attendance_kind = 1), onde é registrado como valor manual. Quando omitido, o valor é calculado a partir do serviço avulso cadastrado. Em apontamentos de **contrato** não deve ser informado, pois o faturamento contabiliza a quantidade de horas dos apontamentos, não o valor.",
                    "nullable": true
                  }
                },
                "required": [
                  "date",
                  "init_time",
                  "end_time",
                  "description"
                ]
              },
              "examples": {
                "Apontamento de serviço avulso em mesa com valorização": {
                  "summary": "Apontamento de serviço avulso em mesa com valorização",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "17:30",
                    "end_time": "20:35",
                    "external_user_name": "João da Silva",
                    "attendance": 2,
                    "attendance_kind": 1,
                    "loose_service_id": 1,
                    "value": 150.0
                  }
                },
                "Apontamento de serviço avulso com attendance e attendance_kind como texto": {
                  "summary": "Apontamento de serviço avulso com attendance e attendance_kind como texto",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "17:30",
                    "end_time": "20:35",
                    "attendance": "1",
                    "attendance_kind": "1",
                    "loose_service_id": 1,
                    "value": 150.0
                  }
                },
                "Apontamento de serviço avulso em garantia": {
                  "summary": "Apontamento de serviço avulso em garantia",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "17:30",
                    "end_time": "20:35",
                    "attendance": 2,
                    "attendance_kind": 1,
                    "loose_service_id": 1,
                    "guarantee": true
                  }
                },
                "Apontamento de serviço avulso sem valor, calculado pelo serviço": {
                  "summary": "Apontamento de serviço avulso sem valor, calculado pelo serviço",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "17:30",
                    "end_time": "18:30",
                    "attendance": 2,
                    "attendance_kind": 1,
                    "loose_service_id": 3
                  }
                },
                "Apontamento de serviço avulso externo usa o valor de atendimento externo": {
                  "summary": "Apontamento de serviço avulso externo usa o valor de atendimento externo",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "08:00",
                    "end_time": "09:00",
                    "attendance": 1,
                    "attendance_kind": 1,
                    "loose_service_id": 3,
                    "shift_id": 1
                  }
                },
                "Apontamento com deslocamento de outro ticket do cliente": {
                  "summary": "Apontamento com deslocamento de outro ticket do cliente",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "10:00",
                    "end_time": "11:00",
                    "attendance": 1,
                    "attendance_kind": 2,
                    "contract_rider_id": 14,
                    "shift_owner_ticket_number": 8
                  }
                },
                "Apontamento de contrato compartilhado com deslocamento do grupo": {
                  "summary": "Apontamento de contrato compartilhado com deslocamento do grupo",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "14:00",
                    "end_time": "15:00",
                    "attendance": 1,
                    "attendance_kind": 2,
                    "contract_rider_id": 20,
                    "shift_id": 5
                  }
                },
                "Apontamento de contrato em mesa com valorização": {
                  "summary": "Apontamento de contrato em mesa com valorização",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "17:30",
                    "end_time": "20:35",
                    "external_user_name": "João da Silva",
                    "attendance": 2,
                    "attendance_kind": 2,
                    "contract_rider_id": 14
                  }
                },
                "Apontamento com todos os atributos possíveis": {
                  "summary": "Apontamento com todos os atributos possíveis",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Atendimento presencial referente ao contrato de manutenção",
                    "init_time": "08:00",
                    "end_time": "09:00",
                    "external_user_name": "João da Silva",
                    "attendance": 1,
                    "attendance_kind": 1,
                    "loose_service_id": 1,
                    "shift_id": 1,
                    "value": 150.0,
                    "guarantee": false
                  }
                },
                "Apontamento em mesa sem valorização": {
                  "summary": "Apontamento em mesa sem valorização",
                  "value": {
                    "date": "2024-08-16",
                    "description": "Descrição do apontamento",
                    "init_time": "17:30",
                    "end_time": "20:35"
                  }
                }
              }
            }
          },
          "required": true
        }
      },
      "get": {
        "summary": "Listar apontamentos",
        "tags": [
          "Apontamentos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 321
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "description": "Filtrar pelo ID do usuário que realizou o apontamento",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Retorna os apontamentos realizados a partir dessa data",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-08-15"
              }
            },
            "required": false
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "Retorna os apontamentos realizados até essa data",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2030-05-21"
              }
            },
            "required": false
          }
        ],
        "description": "Lista os apontamentos de um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_appointments",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Apontamento sem valorização": {
                    "value": [
                      {
                        "id": 1,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "date": "2024-01-20",
                        "description": "this is an appointment without valorization",
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [
                          {
                            "id": 1,
                            "latitude": "-26.27904",
                            "longitude": "-48.84677"
                          }
                        ],
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": null
                      },
                      {
                        "id": 5,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "date": "2024-01-20",
                        "description": "this is an appointment without valorization",
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "user": {
                          "id": 130,
                          "name": "Otha Kozey"
                        },
                        "valorization": null
                      }
                    ]
                  },
                  "Apontamento com valorização": {
                    "value": [
                      {
                        "id": 2,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "date": "2024-11-22",
                        "description": "this is an appointment with valorization",
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": {
                          "attendance": "External",
                          "attendance_kind": "Loose",
                          "contract": {
                            "id": 14,
                            "name": "Hours contract"
                          },
                          "guarantee": false,
                          "loose_service": {
                            "id": 1,
                            "name": "Serviço avulso teste"
                          },
                          "manual_value": true,
                          "shift": {
                            "id": 1,
                            "name": "Deslocamento de carro até Joinville",
                            "value": "150.55"
                          },
                          "shift_owner_ticket": null,
                          "value": "170.05"
                        }
                      },
                      {
                        "id": 4,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "date": "2023-11-23",
                        "description": "this is an appointment with valorization",
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": {
                          "attendance": "External",
                          "attendance_kind": "Loose",
                          "contract": null,
                          "guarantee": false,
                          "loose_service": {
                            "id": 1,
                            "name": "Serviço avulso teste"
                          },
                          "manual_value": true,
                          "shift": null,
                          "shift_owner_ticket": {
                            "ticket_number": 8,
                            "title": "To be, or not to be: that is the question"
                          },
                          "value": "170.05"
                        }
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do apontamento"
                      },
                      "client": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do client"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "description": "*Objeto representando o **cliente** vinculado no apontamento*"
                      },
                      "date": {
                        "type": "string",
                        "format": "date",
                        "description": "Dia em que o atendimento foi realizado"
                      },
                      "init_time": {
                        "type": "string",
                        "description": "Horário de início do atendimento. No formato **HH:MM**"
                      },
                      "end_time": {
                        "type": "string",
                        "description": "Horário de fim do atendimento. No formato **HH:MM**"
                      },
                      "description": {
                        "type": "string",
                        "description": "Descrição do apontamento"
                      },
                      "external_user_name": {
                        "type": "string",
                        "description": "Nome do usuário que executou a ação em uma ferramenta externa",
                        "nullable": true
                      },
                      "user": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do usuário"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do usuário"
                          }
                        },
                        "description": "*Objeto representando o **atendente** que realizou o apontamento*"
                      },
                      "locations": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Identificador da geolocalização"
                            },
                            "latitude": {
                              "type": "string",
                              "description": "Latitude"
                            },
                            "longitude": {
                              "type": "string",
                              "description": "Longitude"
                            }
                          }
                        },
                        "description": "*Lista de **geolocalizações** vinculadas no apontamento*"
                      },
                      "valorization": {
                        "type": "object",
                        "properties": {
                          "attendance": {
                            "type": "string",
                            "description": "Atendimento: externo, remoto ou interno",
                            "enum": [
                              "External",
                              "Remote",
                              "Internal"
                            ]
                          },
                          "attendance_kind": {
                            "type": "string",
                            "description": "Tipo de atendimento: avulso ou contrato",
                            "enum": [
                              "Loose",
                              "Contract"
                            ]
                          },
                          "contract": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do contrato"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do contrato"
                              }
                            },
                            "description": "*Objeto representando o **contrato** vinculado no apontamento*"
                          },
                          "loose_service": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do serviço avulso"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do serviço avulso"
                              }
                            },
                            "description": "*Objeto representando o **serviço avulso** vinculado no apontamento*"
                          },
                          "guarantee": {
                            "type": "boolean",
                            "description": "Apontado como garantia?"
                          },
                          "manual_value": {
                            "type": "boolean",
                            "description": "Definido um valor manual?"
                          },
                          "shift": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do deslocamento"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do deslocamento"
                              },
                              "value": {
                                "type": "string",
                                "description": "Valor do deslocamento"
                              }
                            },
                            "description": "*Objeto representando o **deslocamento** vinculado no apontamento*"
                          },
                          "shift_owner_ticket": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "ticket_number": {
                                "type": "integer",
                                "description": "Número do ticket que possui o deslocamento"
                              },
                              "title": {
                                "type": "string",
                                "description": "Título do ticket que possui o deslocamento"
                              }
                            },
                            "description": "*Objeto representando o **ticket cujo deslocamento foi aproveitado** neste apontamento (deslocamento carona)*"
                          },
                          "value": {
                            "type": "string",
                            "description": "Valor do apontamento"
                          }
                        },
                        "nullable": true,
                        "description": "*Este objeto contém as informações de **valorização do apontamento**. Suas informações de valores só serão preenchidas caso o apontamento seja um apontamento com valorização*"
                      }
                    },
                    "required": [
                      "id",
                      "client",
                      "date",
                      "init_time",
                      "end_time",
                      "description",
                      "user",
                      "locations",
                      "valorization"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "user_id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Visualizar tickets em que eu não sou o responsável"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/appointments": {
      "get": {
        "summary": "Listar apontamentos (global)",
        "tags": [
          "Apontamentos"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "user_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar pelos IDs dos usuários que realizaram os apontamentos, separados por vírgula (`,`) e sem espaços: `user_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.\n\n * **Requer a permissão** <span style=\"margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Visualizar usuários nos relatórios de atendentes</span>. Sem essa permissão, este parâmetro é ignorado e a listagem retorna sempre apenas os apontamentos do próprio usuário autenticado, independente do valor informado.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar por um usuário"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar por mais de um usuário"
              }
            },
            "required": false
          },
          {
            "name": "desk_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar apontamentos pelas mesas dos tickets vinculados, separados por vírgula (`,`) e sem espaços: `desk_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar por uma mesa"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar por mais de uma mesa"
              }
            },
            "required": false
          },
          {
            "name": "client_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar apontamentos pelos clientes dos tickets vinculados, separados por vírgula (`,`) e sem espaços: `client_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar por um cliente"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar por mais de um cliente"
              }
            },
            "required": false
          },
          {
            "name": "contract_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar apontamentos vinculados aos contratos informados. Apontamentos sem contrato não são retornados quando este parâmetro é utilizado. Para contratos da modalidade **compartilhado**, também é aceito o id do **grupo de contratos** (o mesmo id retornado pela listagem `/contracts` para esses casos). A filtragem é resolvida automaticamente para todos os contratos membros do grupo, separados por vírgula (`,`) e sem espaços: `contract_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar por um contrato"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar por mais de um contrato"
              }
            },
            "required": false
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Retorna os apontamentos realizados a partir dessa data. **Obrigatório nesta rota.**",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "1": {
                "value": "2023-01-01"
              }
            },
            "required": true
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "Retorna os apontamentos realizados até essa data. **Obrigatório nesta rota.**",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "examples": {
              "1": {
                "value": "2024-12-31"
              }
            },
            "required": true
          },
          {
            "name": "include_valorization",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false,
            "description": "Com esse parâmetro é possível incluir as informações de valorização de cada apontamento. Ao informar esse parâmetro como **true**, será adicionado um atributo de nome `valorization` no corpo da resposta dessa requisição. **Por padrão (false), o campo `valorization` não é retornado.**"
          }
        ],
        "description": "Lista os apontamentos de todos os tickets da organização, com filtros por usuário, mesas, clientes, contratos e período.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_appointments",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Todos os apontamentos acessíveis no período (usuário com view_users_manage)": {
                    "value": [
                      {
                        "id": 1,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "contract": null,
                        "date": "2024-01-20",
                        "description": "this is an appointment without valorization",
                        "desk": {
                          "id": 7,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [
                          {
                            "id": 1,
                            "latitude": "-26.27904",
                            "longitude": "-48.84677"
                          }
                        ],
                        "ticket": {
                          "number": 6,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": null
                      },
                      {
                        "id": 2,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "contract": {
                          "id": 14,
                          "name": "Hours contract"
                        },
                        "date": "2024-11-22",
                        "description": "this is an appointment with valorization",
                        "desk": {
                          "id": 8,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "ticket": {
                          "number": 7,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": {
                          "attendance": "External",
                          "attendance_kind": "Loose",
                          "contract": {
                            "id": 14,
                            "name": "Hours contract"
                          },
                          "guarantee": false,
                          "loose_service": {
                            "id": 1,
                            "name": "Serviço avulso teste"
                          },
                          "manual_value": true,
                          "shift": {
                            "id": 1,
                            "name": "Deslocamento de carro até Joinville",
                            "value": "150.55"
                          },
                          "shift_owner_ticket": null,
                          "value": "170.05"
                        }
                      },
                      {
                        "id": 3,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "contract": null,
                        "date": "2023-11-24",
                        "description": "this is an appointment with valorization",
                        "desk": {
                          "id": 8,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "ticket": {
                          "number": 8,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": {
                          "attendance": "External",
                          "attendance_kind": "Loose",
                          "contract": null,
                          "guarantee": false,
                          "loose_service": {
                            "id": 1,
                            "name": "Serviço avulso teste"
                          },
                          "manual_value": true,
                          "shift": {
                            "id": 1,
                            "name": "Deslocamento de carro até Joinville",
                            "value": "150.55"
                          },
                          "shift_owner_ticket": null,
                          "value": "170.05"
                        }
                      },
                      {
                        "id": 4,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "contract": null,
                        "date": "2023-11-23",
                        "description": "this is an appointment with valorization",
                        "desk": {
                          "id": 8,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "ticket": {
                          "number": 7,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": {
                          "attendance": "External",
                          "attendance_kind": "Loose",
                          "contract": null,
                          "guarantee": false,
                          "loose_service": {
                            "id": 1,
                            "name": "Serviço avulso teste"
                          },
                          "manual_value": true,
                          "shift": null,
                          "shift_owner_ticket": {
                            "ticket_number": 8,
                            "title": "To be, or not to be: that is the question"
                          },
                          "value": "170.05"
                        }
                      },
                      {
                        "id": 5,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "contract": null,
                        "date": "2024-01-20",
                        "description": "this is an appointment without valorization",
                        "desk": {
                          "id": 7,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "ticket": {
                          "number": 6,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 130,
                          "name": "Otha Kozey"
                        },
                        "valorization": null
                      },
                      {
                        "id": 6,
                        "client": {
                          "id": 29,
                          "name": "Feeney, Bosco and Wehner"
                        },
                        "contract": null,
                        "date": "2024-02-10",
                        "description": "this is an appointment without valorization",
                        "desk": {
                          "id": 10,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "ticket": {
                          "number": 12,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": null
                      },
                      {
                        "id": 7,
                        "client": {
                          "id": 28,
                          "name": "Stehr, Grant and Luettgen"
                        },
                        "contract": {
                          "id": 16,
                          "name": "Contrato membro do grupo"
                        },
                        "date": "2024-03-05",
                        "description": "this is an appointment without valorization",
                        "desk": {
                          "id": 11,
                          "name": "API"
                        },
                        "end_time": "13:42",
                        "external_user_name": null,
                        "init_time": "12:00",
                        "locations": [

                        ],
                        "ticket": {
                          "number": 13,
                          "title": "To be, or not to be: that is the question"
                        },
                        "user": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "valorization": null
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do apontamento"
                      },
                      "client": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do client"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        },
                        "description": "*Objeto representando o **cliente** vinculado no apontamento*"
                      },
                      "date": {
                        "type": "string",
                        "format": "date",
                        "description": "Dia em que o atendimento foi realizado"
                      },
                      "init_time": {
                        "type": "string",
                        "description": "Horário de início do atendimento. No formato **HH:MM**"
                      },
                      "end_time": {
                        "type": "string",
                        "description": "Horário de fim do atendimento. No formato **HH:MM**"
                      },
                      "description": {
                        "type": "string",
                        "description": "Descrição do apontamento"
                      },
                      "external_user_name": {
                        "type": "string",
                        "description": "Nome do usuário que executou a ação em uma ferramenta externa",
                        "nullable": true
                      },
                      "user": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do usuário"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do usuário"
                          }
                        },
                        "description": "*Objeto representando o **atendente** que realizou o apontamento*"
                      },
                      "desk": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador da mesa"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome da mesa"
                          }
                        },
                        "description": "*Objeto representando a **mesa** do ticket vinculado ao apontamento*"
                      },
                      "ticket": {
                        "type": "object",
                        "properties": {
                          "number": {
                            "type": "integer",
                            "description": "Número do ticket vinculado ao apontamento"
                          },
                          "title": {
                            "type": "string",
                            "description": "Título do ticket vinculado ao apontamento"
                          }
                        },
                        "required": [
                          "number",
                          "title"
                        ],
                        "description": "*Objeto representando o **ticket** vinculado ao apontamento*"
                      },
                      "contract": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do contrato"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do contrato"
                          }
                        },
                        "description": "*Objeto representando o **contrato** vinculado no apontamento. Nulo quando o apontamento não tem contrato.*"
                      },
                      "locations": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "Identificador da geolocalização"
                            },
                            "latitude": {
                              "type": "string",
                              "description": "Latitude"
                            },
                            "longitude": {
                              "type": "string",
                              "description": "Longitude"
                            }
                          }
                        },
                        "description": "*Lista de **geolocalizações** vinculadas no apontamento*"
                      },
                      "valorization": {
                        "type": "object",
                        "properties": {
                          "attendance": {
                            "type": "string",
                            "description": "Atendimento: externo, remoto ou interno",
                            "enum": [
                              "External",
                              "Remote",
                              "Internal"
                            ]
                          },
                          "attendance_kind": {
                            "type": "string",
                            "description": "Tipo de atendimento: avulso ou contrato",
                            "enum": [
                              "Loose",
                              "Contract"
                            ]
                          },
                          "contract": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do contrato"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do contrato"
                              }
                            },
                            "description": "*Objeto representando o **contrato** vinculado no apontamento*"
                          },
                          "loose_service": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do serviço avulso"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do serviço avulso"
                              }
                            },
                            "description": "*Objeto representando o **serviço avulso** vinculado no apontamento*"
                          },
                          "guarantee": {
                            "type": "boolean",
                            "description": "Apontado como garantia?"
                          },
                          "manual_value": {
                            "type": "boolean",
                            "description": "Definido um valor manual?"
                          },
                          "shift": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do deslocamento"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do deslocamento"
                              },
                              "value": {
                                "type": "string",
                                "description": "Valor do deslocamento"
                              }
                            },
                            "description": "*Objeto representando o **deslocamento** vinculado no apontamento*"
                          },
                          "shift_owner_ticket": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "ticket_number": {
                                "type": "integer",
                                "description": "Número do ticket que possui o deslocamento"
                              },
                              "title": {
                                "type": "string",
                                "description": "Título do ticket que possui o deslocamento"
                              }
                            },
                            "description": "*Objeto representando o **ticket cujo deslocamento foi aproveitado** neste apontamento (deslocamento carona)*"
                          },
                          "value": {
                            "type": "string",
                            "description": "Valor do apontamento"
                          }
                        },
                        "nullable": true,
                        "description": "*Este objeto contém as informações de **valorização do apontamento**. Suas informações de valores só serão preenchidas caso o apontamento seja um apontamento com valorização. Só é retornado quando o parâmetro `include_valorization` é informado como **true**.*"
                      }
                    },
                    "required": [
                      "id",
                      "client",
                      "date",
                      "init_time",
                      "end_time",
                      "description",
                      "user",
                      "desk",
                      "ticket",
                      "contract",
                      "locations"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Sem start_date e end_date": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "start_date": [
                          "can't be blank"
                        ],
                        "end_date": [
                          "can't be blank"
                        ]
                      }
                    }
                  },
                  "desk_ids informado com valor não numérico": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "desk_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "include_valorization informado com valor inválido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "include_valorization": [
                          "teste is not a valid option. Include valorization must be 'true' or 'false'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar relatórios dos técnicos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/desks": {
      "get": {
        "summary": "Listar mesas",
        "tags": [
          "Mesas de serviço"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "active",
            "in": "query",
            "description": "Com esse parâmetro é possível filtrar pelas mesas ativas e inativas",
            "required": false,
            "examples": {
              "Ativas": {
                "value": true
              },
              "Inativas": {
                "value": false
              }
            },
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Com esse parâmetro é possível filtrar as mesas de serviço pelo nome ou nome de exibição (name / display_name)",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista as mesas de serviço que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre: Lista as mesas que o usuário tem acesso"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_desks",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 12,
                    "active": true,
                    "appointment_type": "Appointments with no Valorization",
                    "display_name": "API",
                    "name": "API"
                  }
                ]
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40304,
                  "message": "Access Denied - Missing required license",
                  "detail": {
                    "error": [
                      "You do not have the required 'tickets' license to access this route"
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar mesa",
        "tags": [
          "Mesas de serviço"
        ],
        "description": "Cria uma nova mesa de serviço na sua organização.",
        "parameters": [

        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_desks",
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 14,
                  "active": true,
                  "add_ticket_feedback": false,
                  "appointment_type": "Appointments with Valorization",
                  "attendance_type": "Only selected technical groups",
                  "behavior_billed_tickets": "answer_to_client_with_default_message",
                  "behavior_not_billed_tickets": "answer_to_client_with_default_message",
                  "can_reopen_revised_tickets": false,
                  "can_stop_sla": false,
                  "cancelable_tickets": false,
                  "default_revised": "5 day(s)",
                  "description": "Mesa criada para testes da API",
                  "desk_exchange": false,
                  "desk_with_sla": true,
                  "display_name": "Nome de exibição da mesa de serviço",
                  "internal_desk": false,
                  "name": "Nome da mesa de serviço",
                  "only_attendants_can_open": false,
                  "receiving_new_tickets": true,
                  "reminder": false,
                  "require_service_catalog_open_ticket": false,
                  "required_fields": null,
                  "review_type": null,
                  "services_catalog_item": false,
                  "sla_goal": null,
                  "summary": false,
                  "ticket_review": false,
                  "ticket_with_sla_time": false,
                  "time_limit_to_reopening": "7 day(s)",
                  "user_without_access_create_ticket": false
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "description": [
                      "can't be blank"
                    ],
                    "display_name": [
                      "can't be blank"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "Criação de mesa padrão": {
                  "summary": "Criação de mesa padrão",
                  "value": {
                    "name": "Nome da mesa de serviço",
                    "display_name": "Nome de exibição da mesa de serviço",
                    "description": "Mesa criada para testes da API"
                  }
                },
                "Criação de mesa com todos os campos": {
                  "summary": "Criação de mesa com todos os campos",
                  "value": {
                    "name": "Greenholt Group",
                    "display_name": "Greenholt",
                    "description": "Example desk",
                    "appointment_type": "Without Appointments",
                    "sla_goal": 80,
                    "receiving_new_tickets": true,
                    "desk_exchange": true,
                    "cancelable_tickets": true,
                    "require_service_catalog_open_ticket": false,
                    "services_catalog_item": false,
                    "desk_with_sla": true,
                    "ticket_with_sla_time": true,
                    "can_stop_sla": true,
                    "ticket_review": true,
                    "add_ticket_feedback": true,
                    "internal_desk": false,
                    "review_type": "review_submitter",
                    "default_revised": 7,
                    "can_reopen_revised_tickets": false,
                    "reminder": false,
                    "summary": true,
                    "behavior_not_billed_tickets": "answer_to_client_with_default_message",
                    "behavior_billed_tickets": "answer_to_client_with_default_message",
                    "time_limit_to_reopening": 14,
                    "attendance_type": "All technical groups",
                    "user_without_access_create_ticket": true,
                    "active": true,
                    "required_fields": {
                      "requestor_name": false,
                      "requestor_email": true,
                      "requestor_telephone": false,
                      "requestor_ramal": false,
                      "equipment_id": false,
                      "attachment_file": false
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/desks/{id}": {
      "get": {
        "summary": "Exibir mesa",
        "tags": [
          "Mesas de serviço"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID da mesa de serviço",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre uma determinada mesa de serviço.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_desks_id",
        "responses": {
          "200": {
            "description": "Exibe uma mesa conforme o schema",
            "content": {
              "application/json": {
                "example": {
                  "id": 12,
                  "active": true,
                  "add_ticket_feedback": true,
                  "appointment_type": "Appointments with no Valorization",
                  "attendance_type": "Only selected technical groups",
                  "behavior_billed_tickets": "answer_to_client_with_default_message",
                  "behavior_not_billed_tickets": "reopen_ticket_closed",
                  "can_reopen_revised_tickets": false,
                  "can_stop_sla": true,
                  "cancelable_tickets": true,
                  "default_revised": "5 day(s)",
                  "description": "Esta é uma mesa de exemplo para ser utilizada em testes da API",
                  "desk_exchange": true,
                  "desk_with_sla": true,
                  "display_name": "API",
                  "internal_desk": false,
                  "name": "API",
                  "only_attendants_can_open": false,
                  "receiving_new_tickets": true,
                  "reminder": false,
                  "require_service_catalog_open_ticket": false,
                  "required_fields": {
                    "equipment_id": false,
                    "requestor_name": false,
                    "requestor_email": true,
                    "requestor_telephone": false,
                    "requestor_ramal": false,
                    "attachment_file": true
                  },
                  "review_type": "review_submitter_manager",
                  "services_catalog_item": false,
                  "sla_goal": 87,
                  "summary": true,
                  "ticket_review": true,
                  "ticket_with_sla_time": false,
                  "time_limit_to_reopening": "7 day(s)",
                  "user_without_access_create_ticket": false
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir informações da mesa de serviço",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID da mesa"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "A mesa está ativa?"
                    },
                    "add_ticket_feedback": {
                      "type": "boolean",
                      "description": "Permite avaliar tickets?"
                    },
                    "appointment_type": {
                      "type": "string",
                      "description": "Tipo de apontamento"
                    },
                    "attendance_type": {
                      "type": "string",
                      "description": "Tipo de atendimento"
                    },
                    "behavior_billed_tickets": {
                      "type": "string",
                      "description": "Comportamento na reabertura de tickets faturados"
                    },
                    "behavior_not_billed_tickets": {
                      "type": "string",
                      "description": "Comportamento na reabertura de tickets não faturados"
                    },
                    "can_reopen_revised_tickets": {
                      "type": "boolean",
                      "description": "Pode reabrir tickets revisados?"
                    },
                    "can_stop_sla": {
                      "type": "boolean",
                      "description": "Pode parar/retomar o SLA?"
                    },
                    "cancelable_tickets": {
                      "type": "boolean",
                      "description": "Tickets podem ser cancelados?"
                    },
                    "default_revised": {
                      "type": "string",
                      "description": "Tipo de revisão"
                    },
                    "description": {
                      "type": "string",
                      "description": "Descrição da mesa"
                    },
                    "desk_exchange": {
                      "type": "boolean",
                      "description": "Troca de mesa permitida?"
                    },
                    "desk_with_sla": {
                      "type": "boolean",
                      "description": "Mesa com SLA ativo?"
                    },
                    "display_name": {
                      "type": "string",
                      "description": "Nome de exibição da mesa"
                    },
                    "internal_desk": {
                      "type": "boolean",
                      "description": "Mesa de uso interno?"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome da mesa"
                    },
                    "only_attendants_can_open": {
                      "type": "boolean",
                      "description": "Somente atendentes podem abrir o ticket?"
                    },
                    "receiving_new_tickets": {
                      "type": "boolean",
                      "description": "Está recebendo novos tickets?"
                    },
                    "reminder": {
                      "type": "boolean",
                      "description": "Enviar lembrete no e-mail do solicitante?"
                    },
                    "require_service_catalog_open_ticket": {
                      "type": "boolean",
                      "description": "Exige catálogo de serviços para abrir ticket?"
                    },
                    "required_fields": {
                      "type": "object",
                      "description": "Campos obrigatórios para abertura de ticket",
                      "properties": {
                        "equipment_id": {
                          "type": "boolean",
                          "description": "Grupo de recurso"
                        },
                        "requestor_name": {
                          "type": "boolean",
                          "description": "Nome do solicitante"
                        },
                        "requestor_email": {
                          "type": "boolean",
                          "description": "Email do solicitante"
                        },
                        "requestor_telephone": {
                          "type": "boolean",
                          "description": "Telefone do solicitante"
                        },
                        "requestor_ramal": {
                          "type": "boolean",
                          "description": "Ramal do solicitante"
                        },
                        "attachment_file": {
                          "type": "boolean",
                          "description": "Anexos"
                        }
                      },
                      "required": [
                        "equipment_id",
                        "requestor_name",
                        "requestor_email",
                        "requestor_telephone",
                        "requestor_ramal",
                        "attachment_file"
                      ]
                    },
                    "review_type": {
                      "type": "string",
                      "description": "Tipo de revisão configurado"
                    },
                    "services_catalog_item": {
                      "type": "boolean",
                      "description": "Exige catálogo de serviços para fechar ticket?"
                    },
                    "sla_goal": {
                      "type": "integer",
                      "description": "Meta de SLA"
                    },
                    "summary": {
                      "type": "boolean",
                      "description": "Enviar resumo no e-mail do solicitante?"
                    },
                    "ticket_review": {
                      "type": "boolean",
                      "description": "Exige revisão de ticket?"
                    },
                    "ticket_with_sla_time": {
                      "type": "boolean",
                      "description": "Permite adicionar tempo de SLA?"
                    },
                    "time_limit_to_reopening": {
                      "type": "string",
                      "description": "Tempo limite para reabertura"
                    },
                    "user_without_access_create_ticket": {
                      "type": "boolean",
                      "description": "Atendentes sem acesso podem criar ticket?"
                    }
                  },
                  "required": [
                    "id",
                    "active",
                    "add_ticket_feedback",
                    "appointment_type",
                    "attendance_type",
                    "behavior_billed_tickets",
                    "behavior_not_billed_tickets",
                    "can_reopen_revised_tickets",
                    "can_stop_sla",
                    "cancelable_tickets",
                    "default_revised",
                    "description",
                    "desk_exchange",
                    "desk_with_sla",
                    "display_name",
                    "internal_desk",
                    "name",
                    "receiving_new_tickets",
                    "reminder",
                    "require_service_catalog_open_ticket",
                    "required_fields",
                    "summary",
                    "ticket_review",
                    "ticket_with_sla_time",
                    "time_limit_to_reopening",
                    "user_without_access_create_ticket"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Mesa não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Desk with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/desks/{id}/priorities": {
      "get": {
        "summary": "Listar prioridades",
        "tags": [
          "Mesas de serviço"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID da mesa de serviço",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista as prioridades cadastradas em uma determinada mesa de serviço.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_desks_id_priorities",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 23,
                    "end_time": "24:00",
                    "name": "High",
                    "order": 1,
                    "start_time": "04:00"
                  },
                  {
                    "id": 24,
                    "end_time": "48:00",
                    "name": "Low",
                    "order": 2,
                    "start_time": "10:00"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Mesa não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Desk with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta pode ter dois significados:\n1. Que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota.\n2. Você não pode listar prioridades de mesas em que seu usuário não possui acesso",
            "content": {
              "application/json": {
                "examples": {
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  },
                  "Sem acesso a mesa": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que seu usuário não tem permissão para acessar ou listar as prioridades da mesa solicitada. Embora você esteja autenticado, as permissões do seu perfil não incluem acesso a este recurso específico.\n\nPara corrigir, confirme o ID da mesa informada. Se estiver correto, entre em contato com o administrador do sistema e solicite que seu usuário seja vinculado à mesa desejada.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/desks/{id}/stages": {
      "get": {
        "summary": "Listar estágios",
        "tags": [
          "Mesas de serviço"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID da mesa de serviço",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os estágios cadastrados em uma determinada mesa de serviço.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_desks_id_stages",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 38,
                    "first_stage": true,
                    "index": 1,
                    "last_stage": false,
                    "max_time": "04:00",
                    "name": "Pending"
                  },
                  {
                    "id": 39,
                    "first_stage": false,
                    "index": 2,
                    "last_stage": false,
                    "max_time": "04:00",
                    "name": "N1"
                  },
                  {
                    "id": 40,
                    "first_stage": false,
                    "index": 3,
                    "last_stage": true,
                    "max_time": "",
                    "name": "Closed"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Mesa não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Desk with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta pode ter dois significados:\n1. Que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota.\n2. Você não pode listar estágios de mesas em que seu usuário não possui acesso",
            "content": {
              "application/json": {
                "examples": {
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  },
                  "Sem acesso a mesa": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que seu usuário não tem permissão para acessar ou listar os estágios da mesa solicitada. Embora você esteja autenticado, as permissões do seu perfil não incluem acesso a este recurso específico.\n\nPara corrigir, confirme o ID da mesa informada. Se estiver correto, entre em contato com o administrador do sistema e solicite que seu usuário seja vinculado à mesa desejada.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/desks/{id}/services-catalogs": {
      "get": {
        "summary": "Listar catálogos de serviços",
        "tags": [
          "Mesas de serviço"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID da mesa de serviço",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os catálogos de serviços que estão relacionados com uma determinada mesa de serviço.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_desks_id_services-catalogs",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 6,
                    "name": "Catálogo 1"
                  },
                  {
                    "id": 7,
                    "name": "Catálogo 2"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Mesa não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Desk with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta pode ter dois significados:\n1. Que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota.\n2. Você não pode listar catálogos de serviços de mesas em que seu usuário não possui acesso",
            "content": {
              "application/json": {
                "examples": {
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  },
                  "Sem acesso a mesa": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que seu usuário não tem permissão para acessar ou listar os catálogos de serviços da mesa solicitada. Embora você esteja autenticado, as permissões do seu perfil não incluem acesso a este recurso específico.\n\nPara corrigir, confirme o ID da mesa informada. Se estiver correto, entre em contato com o administrador do sistema e solicite que seu usuário seja vinculado à mesa desejada.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/desks/{id}/services-catalogs-items": {
      "get": {
        "summary": "Listar itens de catálogos de serviços",
        "tags": [
          "Mesas de serviço"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID da mesa de serviço",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "area_id",
            "in": "query",
            "description": "ID da área de serviços",
            "example": 25,
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "catalog_id",
            "in": "query",
            "description": "ID do catálogo de serviços",
            "example": 3,
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Filtra itens pelo nome do catálogo, da área ou do item de serviço. A busca é parcial, sem distinção de maiúsculas/minúsculas e ignora acentos",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "MCP"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os itens de catálogos de serviços que estão relacionados com uma determinada mesa de serviço.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_desks_id_services-catalogs-items",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 6,
                    "area": {
                      "id": 6,
                      "name": "Dúvidas"
                    },
                    "catalog": {
                      "id": 8,
                      "name": "Infraestrutura"
                    },
                    "end_time": "00:15",
                    "name": "Geral",
                    "start_time": "00:11"
                  }
                ],
                "schema": {
                  "type": "array",
                  "title": "Listar itens de catálogos de serviços",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do item de catálogo"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do item de catálogo"
                      },
                      "area": {
                        "type": "object",
                        "description": "Área à qual o item pertence",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID da área"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome da área"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "catalog": {
                        "type": "object",
                        "description": "Catálogo de serviços ao qual o item pertence",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do catálogo"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do catálogo"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "start_time": {
                        "type": "string",
                        "nullable": true,
                        "description": "Horário de Vencimento do atendimento (Tempo máximo para o atendente gerar o primeiro apontamento). Formato HH:MM",
                        "example": "08:00"
                      },
                      "end_time": {
                        "type": "string",
                        "nullable": true,
                        "description": "Horário de Vencimento da solução (Tempo máximo para o atendente finalizar o ticket). Formato HH:MM",
                        "example": "18:00"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "area",
                      "catalog",
                      "start_time",
                      "end_time"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Mesa não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Desk with 'id'=\"9999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta pode ter dois significados:\n1. Que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota.\n2. Você não pode listar itens de catálogos de serviços de mesas em que seu usuário não possui acesso",
            "content": {
              "application/json": {
                "examples": {
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  },
                  "Sem acesso a mesa": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que seu usuário não tem permissão para acessar ou listar os itens de catálogos de serviços da mesa solicitada. Embora você esteja autenticado, as permissões do seu perfil não incluem acesso a este recurso específico.\n\nPara corrigir, confirme o ID da mesa informada. Se estiver correto, entre em contato com o administrador do sistema e solicite que seu usuário seja vinculado à mesa desejada.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/tickets/{ticket_number}/internal_communications": {
      "get": {
        "summary": "Listar comunicações internas",
        "tags": [
          "Comunicações internas dos tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista as comunicações internas que existem em um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_internal_communications",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "created_at": "2026-08-27T21:03:55Z",
                    "files_count": 1,
                    "github_username": null,
                    "jira_username": null,
                    "text": "teste",
                    "updated_at": "2026-08-27T21:03:55Z",
                    "user": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    }
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_number": [
                      "is not a number"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e adicionar mensagens na comunicação interna"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "post": {
        "summary": "Criar comunicação interna",
        "tags": [
          "Comunicações internas dos tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Cria uma nova comunicação interna em um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets_ticket_number_internal_communications",
        "responses": {
          "201": {
            "description": "### **Comunicação interna criada com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 2,
                  "created_at": "2026-08-27T21:03:55Z",
                  "files": [
                    {
                      "id": 2,
                      "content_type": "image/png",
                      "file_name": "missing.png",
                      "size": 5265,
                      "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                    }
                  ],
                  "files_count": 1,
                  "github_username": null,
                  "jira_username": null,
                  "text": "<div>Teste!</div>",
                  "updated_at": "2026-08-27T21:03:55Z",
                  "user": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da comunicação interna"
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data da criação da comunicação interna"
                    },
                    "files": {
                      "type": "array",
                      "description": "Lista contendo os arquivos que estão anexados na comunicação interna",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do arquivo"
                          },
                          "content_type": {
                            "type": "string",
                            "description": "Formato do arquivo"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "Nome do arquivo"
                          },
                          "size": {
                            "type": "integer",
                            "description": "Tamanho do arquivo em bytes"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "files_count": {
                      "type": "integer",
                      "description": "Contador do total de arquivos anexados"
                    },
                    "github_username": {
                      "type": "string",
                      "nullable": true,
                      "description": "Se a comunicação foi criada pelo github, esse atributo conterá o username github do usuário que a criou"
                    },
                    "jira_username": {
                      "type": "string",
                      "nullable": true,
                      "description": "Se a comunicação foi criada pelo jira, esse atributo conterá o username jira do usuário que a criou"
                    },
                    "text": {
                      "type": "string",
                      "description": "O texto da comunicação interna em formato HTML"
                    },
                    "updated_at": {
                      "type": "string",
                      "description": "Data da última atualização da comunicação interna"
                    },
                    "user": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Identificador do usuário que criou a comunicação interna"
                        },
                        "name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome do usuário que criou a comunicação interna"
                        }
                      }
                    }
                  },
                  "required": [
                    "id",
                    "created_at",
                    "files_count",
                    "text",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "415": {
            "description": "### **Erro com o Content-Type informado**\nEsse erro ocorre ao enviar uma requisição que não contenha o tipo multipart/form-data",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 41501,
                  "message": "This request requires a multipart/form-data body, but NONE or a different format was received",
                  "detail": {
                    "error": [
                      "The request was sent in an invalid format and could not be processed"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Problema com o número do ticket": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "ticket_number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Problema com o texto da comunicação": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "text": [
                          "can't be blank"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e adicionar mensagens na comunicação interna"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Conteúdo da comunicação interna"
                  },
                  "files[]": {
                    "type": "array",
                    "description": "Lista com os arquivos que serão anexados na comunicação interna.\n\nEsse parâmetro deve respeitar os seguintes critérios, para os anexos serem anexados corretamente na comunicação interna:\n- O valor desse parâmetro deve ser uma lista de arquivos\n- É permitido anexar no máximo 10 arquivos por requisição\n- Cada arquivo deve possuir no máx 25 megabytes",
                    "maxItems": 10,
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                },
                "required": [
                  "text"
                ]
              }
            }
          },
          "required": true,
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita os seguintes atributos:"
        }
      }
    },
    "/tickets/{ticket_number}/internal_communications/{id}": {
      "get": {
        "summary": "Exibir comunicação interna",
        "tags": [
          "Comunicações internas dos tickets"
        ],
        "description": "Exibe informações detalhadas de uma comunicação interna de um determinado ticket.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da comunicação interna",
            "examples": {
              "Exemplo 1": {
                "value": 3
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_internal_communications_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "created_at": "2026-08-27T21:03:55Z",
                  "files": [
                    {
                      "id": 1,
                      "content_type": "image/png",
                      "file_name": "api.png",
                      "size": 1234,
                      "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                    }
                  ],
                  "files_count": 1,
                  "github_username": null,
                  "jira_username": null,
                  "text": "teste",
                  "updated_at": "2026-08-27T21:03:55Z",
                  "user": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da comunicação interna"
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data da criação da comunicação interna"
                    },
                    "files": {
                      "type": "array",
                      "description": "Lista contendo os arquivos que estão anexados na comunicação interna",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do arquivo"
                          },
                          "content_type": {
                            "type": "string",
                            "description": "Formato do arquivo"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "Nome do arquivo"
                          },
                          "size": {
                            "type": "integer",
                            "description": "Tamanho do arquivo em bytes"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "files_count": {
                      "type": "integer",
                      "description": "Contador do total de arquivos anexados"
                    },
                    "github_username": {
                      "type": "string",
                      "nullable": true,
                      "description": "Se a comunicação foi criada pelo github, esse atributo conterá o username github do usuário que a criou"
                    },
                    "jira_username": {
                      "type": "string",
                      "nullable": true,
                      "description": "Se a comunicação foi criada pelo jira, esse atributo conterá o username jira do usuário que a criou"
                    },
                    "text": {
                      "type": "string",
                      "description": "O texto da comunicação interna em formato HTML"
                    },
                    "updated_at": {
                      "type": "string",
                      "description": "Data da última atualização da comunicação interna"
                    },
                    "user": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Identificador do usuário que criou a comunicação interna"
                        },
                        "name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome do usuário que criou a comunicação interna"
                        }
                      }
                    }
                  },
                  "required": [
                    "id",
                    "created_at",
                    "files_count",
                    "text",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket ou comunicação interna não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::InternalCommunication with 'id'=\"99999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_number": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e adicionar mensagens na comunicação interna"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "put": {
        "summary": "Atualizar comunicação interna",
        "tags": [
          "Comunicações internas dos tickets"
        ],
        "description": "Atualiza informações de uma comunicação interna em um determinado ticket.\n- Um usuário só pode atualizar comunicações internas que ele próprio criou.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da comunicação interna",
            "examples": {
              "Exemplo 1": {
                "value": 3
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_tickets_ticket_number_internal_communications_id",
        "responses": {
          "200": {
            "description": "### **Comunicação interna atualizada com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "created_at": "2026-08-27T21:03:55Z",
                  "files": [
                    {
                      "id": 1,
                      "content_type": "image/png",
                      "file_name": "api.png",
                      "size": 1234,
                      "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                    }
                  ],
                  "files_count": 1,
                  "github_username": null,
                  "jira_username": null,
                  "text": "<div>Este é o novo texto</div>",
                  "updated_at": "2026-08-27T21:03:56Z",
                  "user": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da comunicação interna"
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data da criação da comunicação interna"
                    },
                    "files": {
                      "type": "array",
                      "description": "Lista contendo os arquivos que estão anexados na comunicação interna",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do arquivo"
                          },
                          "content_type": {
                            "type": "string",
                            "description": "Formato do arquivo"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "Nome do arquivo"
                          },
                          "size": {
                            "type": "integer",
                            "description": "Tamanho do arquivo em bytes"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "files_count": {
                      "type": "integer",
                      "description": "Contador do total de arquivos anexados"
                    },
                    "github_username": {
                      "type": "string",
                      "nullable": true,
                      "description": "Se a comunicação foi criada pelo github, esse atributo conterá o username github do usuário que a criou"
                    },
                    "jira_username": {
                      "type": "string",
                      "nullable": true,
                      "description": "Se a comunicação foi criada pelo jira, esse atributo conterá o username jira do usuário que a criou"
                    },
                    "text": {
                      "type": "string",
                      "description": "O texto da comunicação interna em formato HTML"
                    },
                    "updated_at": {
                      "type": "string",
                      "description": "Data da última atualização da comunicação interna"
                    },
                    "user": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Identificador do usuário que criou a comunicação interna"
                        },
                        "name": {
                          "type": "string",
                          "nullable": true,
                          "description": "Nome do usuário que criou a comunicação interna"
                        }
                      }
                    }
                  },
                  "required": [
                    "id",
                    "created_at",
                    "files_count",
                    "text",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket ou comunicação interna não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 99999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Problema com o número do ticket": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "ticket_number": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Problema com o texto da comunicação": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "text": [
                          "can't be blank"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta pode ter 3 significados, dependendo do código de erro obtido:\n- **40301:** O seu grupo de permissões não possui a permissão necessária para acessar esta rota.\n- **40302:** Você está tentando atualizar uma comunicação criada por outro usuário.\n- **40304:** O seu usuário não possui a licença necessária para acessar esta rota.",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Não é possível atualizar comunicações de outro usuário": {
                    "value": {
                      "error_code": 40302,
                      "message": "Access Denied - Unauthorized parameter usage",
                      "detail": {
                        "error": [
                          "You cannot update an internal_communication of another user"
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e adicionar mensagens na comunicação interna"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Novo texto da comunicação interna"
                  }
                },
                "required": [
                  "text"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "text": "<div>Este é o novo texto</div>"
                  }
                }
              }
            }
          },
          "required": true
        }
      },
      "delete": {
        "summary": "Excluir comunicação interna",
        "tags": [
          "Comunicações internas dos tickets"
        ],
        "description": "Remove uma comunicação interna de um determinado ticket.\n- Um usuário só pode excluir comunicações internas que ele próprio criou.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da comunicação interna",
            "examples": {
              "Exemplo 1": {
                "value": 3
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_tickets_ticket_number_internal_communications_id",
        "responses": {
          "204": {
            "description": "### **Comunicação interna removida com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Ticket ou comunicação interna não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 99999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_number": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta pode ter 3 significados, dependendo do código de erro obtido:\n- **40301:** O seu grupo de permissões não possui a permissão necessária para acessar esta rota.\n- **40302:** Você está tentando excluir uma comunicação criada por outro usuário.\n- **40304:** O seu usuário não possui a licença necessária para acessar esta rota.",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Não é possível excluir comunicações de outro usuário": {
                    "value": {
                      "error_code": 40302,
                      "message": "Access Denied - Unauthorized parameter usage",
                      "detail": {
                        "error": [
                          "You cannot delete an internal_communication of another user"
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e adicionar mensagens na comunicação interna"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/pre-appointments": {
      "post": {
        "summary": "Criar pré-apontamento",
        "tags": [
          "Pré-apontamentos"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1234
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "_action",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "play",
                "stop"
              ]
            },
            "examples": {
              "1": {
                "value": "play",
                "summary": "Cria um pré-apontamento"
              },
              "2": {
                "value": "stop",
                "summary": "Pausa o último pré-apontamento criado"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Para saber mais sobre o funcionamento do _Play Apontamento_ no tiflux, consulte esta seção do nosso guia de uso",
          "url": "https://guia-de-uso.tiflux.com/sistema/tickets/informacoes-gerais#play-apontamento"
        },
        "description": "Inicia ou pausa um pré-apontamento em um determinado ticket, replicando a funcionalidade de *Play Apontamento* dentro dos tickets.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets_ticket_number_pre-appointments",
        "responses": {
          "201": {
            "description": "### **Pré-apontamento criado/iniciado**\nUtilizando `_action = play`",
            "content": {
              "application/json": {
                "example": {
                  "id": 2,
                  "date": "2026-08-27",
                  "end_time": null,
                  "init_time": "18:03",
                  "user": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  }
                }
              }
            }
          },
          "200": {
            "description": "### **Pré-apontamento pausado**\nUtilizando `_action = stop`",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "date": "2026-08-27",
                  "end_time": "18:03",
                  "init_time": "14:35",
                  "user": {
                    "id": 1,
                    "name": "Kum Rau Sr."
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "_action": [
                      "Dois! is not a valid action. action must be 'play' or 'stop'"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Criar e editar apontamentos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "get": {
        "summary": "Listar pré-apontamentos",
        "tags": [
          "Pré-apontamentos"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os pré-apontamentos em um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_pre-appointments",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 3,
                    "date": "2026-08-27",
                    "end_time": null,
                    "init_time": "14:35",
                    "user": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    }
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "limit": [
                      "is not a number"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Criar e editar apontamentos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/pre-tickets": {
      "get": {
        "summary": "Listar pré-tickets",
        "tags": [
          "Pré-Tickets"
        ],
        "description": "Lista os pré-tickets da sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "archived",
            "in": "query",
            "description": "Filtrar por pré-tickets arquivados (true/false). Default: false",
            "examples": {
              "0": {
                "value": false
              },
              "1": {
                "value": true
              }
            },
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "description": "Filtrar por ID do cliente",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "created_after",
            "in": "query",
            "format": "date",
            "description": "Filtrar por data mínima de criação (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_before",
            "in": "query",
            "format": "date",
            "description": "Filtrar por data máxima de criação (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_description",
            "in": "query",
            "description": "Incluir campo description na resposta (true/false). Default: false",
            "examples": {
              "0": {
                "value": false
              },
              "1": {
                "value": true
              }
            },
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "get_pre-tickets",
        "responses": {
          "200": {
            "description": "sem include_description nao inclui description no response",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 3,
                    "archived": false,
                    "archived_by_user": null,
                    "client": {
                      "id": 32,
                      "name": "Jast-Davis"
                    },
                    "created_at": "2026-08-27T21:03:57Z",
                    "created_by_way_of": "Tiflux Web",
                    "description": "Soluta sed asperiores. Minus qui unde. Totam ipsam ut.",
                    "equipment": null,
                    "requestor_email": "elliot.jenkins@upton.test",
                    "requestor_name": "Graham Watsica PhD",
                    "requestor_ramal": "2629",
                    "requestor_telephone": "+5545999999999",
                    "title": "Quo reiciendis voluptatem repudiandae consequuntur.",
                    "updated_at": "2026-08-27T21:03:57Z"
                  },
                  {
                    "id": 2,
                    "archived": false,
                    "archived_by_user": null,
                    "client": {
                      "id": 32,
                      "name": "Jast-Davis"
                    },
                    "created_at": "2026-08-27T21:03:57Z",
                    "created_by_way_of": "Tiflux Web",
                    "description": "Repudiandae eos neque. Voluptatem dicta rerum. Suscipit veritatis non.",
                    "equipment": null,
                    "requestor_email": "renato_mante@labadie.example",
                    "requestor_name": "Frank Marquardt",
                    "requestor_ramal": "2235",
                    "requestor_telephone": "+5545999999999",
                    "title": "Animi omnis molestiae nihil quos.",
                    "updated_at": "2026-08-27T21:03:57Z"
                  },
                  {
                    "id": 1,
                    "archived": false,
                    "archived_by_user": null,
                    "client": {
                      "id": 32,
                      "name": "Jast-Davis"
                    },
                    "created_at": "2026-08-27T21:03:57Z",
                    "created_by_way_of": "Tiflux Web",
                    "description": "Recusandae eum soluta. Omnis iusto aut. Eius nam minus.",
                    "equipment": null,
                    "requestor_email": "del@fritsch.example",
                    "requestor_name": "Jame Weimann IV",
                    "requestor_ramal": "3258",
                    "requestor_telephone": "+5545999999999",
                    "title": "Perferendis nisi itaque aut sint.",
                    "updated_at": "2026-08-27T21:03:57Z"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "archived": {
                        "type": "boolean"
                      },
                      "archived_by_user": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "client": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "created_at": {
                        "type": "string"
                      },
                      "created_by_way_of": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "equipment": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "requestor_email": {
                        "type": "string"
                      },
                      "requestor_name": {
                        "type": "string"
                      },
                      "requestor_ramal": {
                        "type": "string",
                        "nullable": true
                      },
                      "requestor_telephone": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "updated_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "archived",
                      "archived_by_user",
                      "client",
                      "created_at",
                      "created_by_way_of",
                      "equipment",
                      "requestor_email",
                      "requestor_name",
                      "requestor_ramal",
                      "requestor_telephone",
                      "title",
                      "updated_at"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "archived": [
                      "teste is not a valid option. Archived must be 'true' or 'false'"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar pré-tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "post": {
        "summary": "Criar pré-ticket",
        "tags": [
          "Pré-Tickets"
        ],
        "description": "Cria um novo pré-ticket.",
        "parameters": [

        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_pre-tickets",
        "responses": {
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Atributo title não informado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "title": [
                          "can't be blank"
                        ]
                      }
                    }
                  },
                  "Atributo description não informado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "description": [
                          "can't be blank"
                        ]
                      }
                    }
                  },
                  "Atributo requestor_telephone não informado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "requestor_telephone": [
                          "can't be blank",
                          "Is not a valid phone number"
                        ]
                      }
                    }
                  },
                  "Atributo requestor_name não informado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "requestor_name": [
                          "can't be blank"
                        ]
                      }
                    }
                  },
                  "Atributo requestor_email não informado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "requestor_email": [
                          "can't be blank",
                          "is invalid"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 9,
                  "archived": false,
                  "archived_by_user": null,
                  "client": {
                    "id": 32,
                    "name": "Jast-Davis"
                  },
                  "created_at": "2026-08-27T21:03:58Z",
                  "created_by_way_of": "Tiflux API",
                  "custom_external_form": false,
                  "description": "Descrição do pré-ticket",
                  "equipment": null,
                  "files": [

                  ],
                  "requestor_email": "email@email.com",
                  "requestor_name": "Nome do solicitante",
                  "requestor_ramal": "2941",
                  "requestor_telephone": "+5545999999999",
                  "title": "Título do pré-ticket",
                  "updated_at": "2026-08-27T21:03:58Z"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "archived": {
                      "type": "boolean"
                    },
                    "archived_by_user": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "client": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "created_by_way_of": {
                      "type": "string"
                    },
                    "custom_external_form": {
                      "type": "boolean"
                    },
                    "description": {
                      "type": "string"
                    },
                    "equipment": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ]
                    },
                    "files": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "content_type": {
                            "type": "string"
                          },
                          "file_name": {
                            "type": "string"
                          },
                          "size": {
                            "type": "integer"
                          },
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "content_type",
                          "file_name",
                          "size",
                          "url"
                        ]
                      }
                    },
                    "requestor_email": {
                      "type": "string"
                    },
                    "requestor_name": {
                      "type": "string"
                    },
                    "requestor_ramal": {
                      "type": "string",
                      "nullable": true
                    },
                    "requestor_telephone": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "archived",
                    "archived_by_user",
                    "client",
                    "created_at",
                    "created_by_way_of",
                    "custom_external_form",
                    "description",
                    "equipment",
                    "requestor_email",
                    "requestor_name",
                    "requestor_ramal",
                    "requestor_telephone",
                    "title",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar pré-tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "Título do pré-ticket",
                    "example": "Pré-ticket criado via API"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição do pré-ticket",
                    "example": "Descrição do pré-ticket"
                  },
                  "requestor_name": {
                    "type": "string",
                    "description": "Nome do solicitante",
                    "example": "Nome do solicitante"
                  },
                  "requestor_ramal": {
                    "type": "integer",
                    "description": "Ramal do solicitante",
                    "example": 555
                  },
                  "requestor_email": {
                    "type": "string",
                    "description": "Email do solicitante",
                    "example": "teste@email.com"
                  },
                  "requestor_telephone": {
                    "type": "string",
                    "description": "Telefone do solicitante",
                    "example": "(47) 999999999"
                  },
                  "requestor_country": {
                    "type": "string",
                    "description": "Código do País do solicitante",
                    "examples": [
                      "BR",
                      "US"
                    ]
                  },
                  "client_id": {
                    "type": "integer",
                    "description": "ID do Cliente",
                    "example": 29
                  },
                  "files[]": {
                    "type": "array",
                    "description": "Lista com os arquivos que serão anexados no pré-ticket.\n\nEsse parâmetro deve respeitar os seguintes critérios, para os anexos serem anexados corretamente no pré-ticket:\n- O valor desse parâmetro deve ser uma lista de arquivos\n- É permitido anexar no máximo 10 arquivos por requisição\n- Cada arquivo deve possuir no máx 25 megabytes",
                    "maxItems": 10,
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                },
                "required": [
                  "title",
                  "description",
                  "requestor_name",
                  "requestor_email",
                  "requestor_telephone"
                ]
              }
            }
          },
          "required": true,
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita os seguintes atributos:"
        }
      }
    },
    "/clients/{client_id}/requestors": {
      "get": {
        "summary": "Listar solicitantes",
        "tags": [
          "Solicitantes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "client_id",
            "in": "path",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo nome",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "extension",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo ramal",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "telephone",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo número do telefone (**IMPORTANTE:** sem o código de país e não utilizar símbolos ou espaços)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "can_open_ticket",
            "in": "query",
            "required": false,
            "description": "Filtrar pelos solicitantes que podem ou não abrir tickets por email",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "include_entity_fields",
            "in": "query",
            "required": false,
            "description": "Incluir os campos personalizados no retorno dessa requisição. Ao informar esse parâmetro como **true**, será adicionado um atributo de nome `entity_fields` na resposta dessa requisição. Contendo a lista de campos personalizados vinculados aos solicitantes",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "description": "Lista os solicitantes que existem em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_requestors",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Lista de solicitantes": {
                    "value": [
                      {
                        "id": 32,
                        "can_open_ticket": false,
                        "email": "turcotte.augustine@mante-considine.test",
                        "extension": "279",
                        "name": "Augustine Turcotte",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 33,
                        "can_open_ticket": false,
                        "email": "leroy_block@bogisich.example",
                        "extension": "351",
                        "name": "Leroy Block",
                        "telephone": "+5547999999999"
                      }
                    ]
                  },
                  "Lista de solicitantes com campos personalizados": {
                    "value": [
                      {
                        "id": 32,
                        "can_open_ticket": false,
                        "email": "turcotte.augustine@mante-considine.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "279",
                        "name": "Augustine Turcotte",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 33,
                        "can_open_ticket": false,
                        "email": "leroy_block@bogisich.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": 43,
                            "value": "Texto que foi preenchido no campo personalizado",
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": 44,
                            "value": "42",
                            "options": [
                              {
                                "entity_field_option_id": 42,
                                "entity_field_id": 72,
                                "title": "Opção 1",
                                "id": 44,
                                "value": "42"
                              }
                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": 45,
                                "value": "true"
                              },
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "351",
                        "name": "Leroy Block",
                        "telephone": "+5547999999999"
                      }
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "can_open_ticket precisa ser um valor booleano": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "can_open_ticket": [
                          "teste is not a valid option. 'Can open ticket' must be 'true' or 'false'"
                        ]
                      }
                    }
                  },
                  "include_entity_fields precisa ser um valor booleano": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "include_entity_fields": [
                          "teste is not a valid option. 'Include entity fields' must be 'true' or 'false'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "post": {
        "summary": "Criar solicitante",
        "tags": [
          "Solicitantes"
        ],
        "description": "Criar um novo solicitante em um determinado cliente.",
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_clients_client_id_requestors",
        "responses": {
          "201": {
            "description": "### **Solicitante criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 34,
                  "can_open_ticket": true,
                  "email": "rashad_ratke@ritchie.example",
                  "entities": [
                    {
                      "id": 15,
                      "active": true,
                      "applied_in": "solicitant",
                      "description": "Campo personalizado aplicado em solicitantes",
                      "entity_fields": [
                        {
                          "id": null,
                          "entity_field_id": 69,
                          "entity_id": 15,
                          "field_type": "text",
                          "name": "Campo de texto",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 70,
                          "entity_id": 15,
                          "field_type": "email",
                          "name": "Campo de email",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 71,
                          "entity_id": 15,
                          "field_type": "date",
                          "name": "Campo de data",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 72,
                          "entity_id": 15,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 73,
                          "entity_id": 15,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        }
                      ],
                      "menu_item": false,
                      "name": "Teste"
                    }
                  ],
                  "extension": "555",
                  "name": "Nome do solicitante",
                  "telephone": "+5532999101338"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "email": [
                      "is invalid"
                    ],
                    "name": [
                      "can't be blank"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Não informou um body pra requisição**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40003,
                  "message": "Missing required parameters. The request's body is invalid",
                  "detail": {
                    "error": [
                      "param is missing or the value is empty: requestor"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find Client with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "Número brasileiro": {
                  "summary": "Número brasileiro",
                  "value": {
                    "name": "Nome do solicitante",
                    "telephone": "+55 (32) 99910-1338",
                    "email": "rashad_ratke@ritchie.example",
                    "can_open_ticket": true,
                    "extension": "555"
                  }
                },
                "Número dos estados unidos": {
                  "summary": "Número dos estados unidos",
                  "value": {
                    "name": "Nome do solicitante dos EUA",
                    "telephone": "+1 313-203-8118",
                    "country": "US",
                    "email": "armanda@bradtke.test",
                    "can_open_ticket": false,
                    "extension": "111"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/clients/{client_id}/requestors/{id}": {
      "get": {
        "summary": "Exibir solicitante",
        "tags": [
          "Solicitantes"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do solicitante",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um solicitante cadastrado em um determinado cliente. Incluindo os seus campos personalizados.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_clients_client_id_requestors_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 33,
                  "can_open_ticket": false,
                  "email": "leroy_block@bogisich.example",
                  "entities": [
                    {
                      "id": 15,
                      "active": true,
                      "applied_in": "solicitant",
                      "description": "Campo personalizado aplicado em solicitantes",
                      "entity_fields": [
                        {
                          "id": 43,
                          "entity_field_id": 69,
                          "entity_id": 15,
                          "field_type": "text",
                          "name": "Campo de texto",
                          "options": [

                          ],
                          "required": false,
                          "value": "Texto que foi preenchido no campo personalizado"
                        },
                        {
                          "id": null,
                          "entity_field_id": 70,
                          "entity_id": 15,
                          "field_type": "email",
                          "name": "Campo de email",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 71,
                          "entity_id": 15,
                          "field_type": "date",
                          "name": "Campo de data",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": 44,
                          "entity_field_id": 72,
                          "entity_id": 15,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única",
                          "options": [
                            {
                              "id": 44,
                              "entity_field_id": 72,
                              "entity_field_option_id": 42,
                              "title": "Opção 1",
                              "value": "42"
                            }
                          ],
                          "required": false,
                          "value": "Opção 1"
                        },
                        {
                          "id": null,
                          "entity_field_id": 73,
                          "entity_id": 15,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [
                            {
                              "id": 45,
                              "entity_field_id": 73,
                              "entity_field_option_id": 46,
                              "title": "Check 3",
                              "value": "true"
                            }
                          ],
                          "required": false,
                          "value": "Check 3"
                        }
                      ],
                      "menu_item": false,
                      "name": "Teste"
                    }
                  ],
                  "extension": "351",
                  "name": "Leroy Block",
                  "telephone": "+5547999999999"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou solicitante não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketRequestor with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      },
      "put": {
        "summary": "Atualizar solicitante",
        "tags": [
          "Solicitantes"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do solicitante",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza informações de um solicitante cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_clients_client_id_requestors_id",
        "responses": {
          "200": {
            "description": "### **Solicitante atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 32,
                  "can_open_ticket": false,
                  "email": "turcotte.augustine@mante-considine.test",
                  "entities": [
                    {
                      "id": 15,
                      "active": true,
                      "applied_in": "solicitant",
                      "description": "Campo personalizado aplicado em solicitantes",
                      "entity_fields": [
                        {
                          "id": null,
                          "entity_field_id": 69,
                          "entity_id": 15,
                          "field_type": "text",
                          "name": "Campo de texto",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 70,
                          "entity_id": 15,
                          "field_type": "email",
                          "name": "Campo de email",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 71,
                          "entity_id": 15,
                          "field_type": "date",
                          "name": "Campo de data",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 72,
                          "entity_id": 15,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        },
                        {
                          "id": null,
                          "entity_field_id": 73,
                          "entity_id": 15,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [

                          ],
                          "required": false,
                          "value": null
                        }
                      ],
                      "menu_item": false,
                      "name": "Teste"
                    }
                  ],
                  "extension": "279",
                  "name": "Harlan Nienow Jr.",
                  "telephone": "+5547999999999"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou solicitante não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketRequestor with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Harlan Nienow Jr."
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Excluir solicitante",
        "tags": [
          "Solicitantes"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do solicitante",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove um solicitante cadastrado em um determinado cliente.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_clients_client_id_requestors_id",
        "responses": {
          "204": {
            "description": "### **Solicitante removido com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Cliente ou solicitante não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketRequestor with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/requestors": {
      "get": {
        "summary": "Listar todos solicitantes",
        "tags": [
          "Solicitantes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo nome",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "extension",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo ramal",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "telephone",
            "in": "query",
            "required": false,
            "description": "Buscar os solicitantes pelo número do telefone (**IMPORTANTE:** sem o código de país e não utilizar símbolos ou espaços)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "can_open_ticket",
            "in": "query",
            "required": false,
            "description": "Filtrar pelos solicitantes que podem ou não abrir tickets por email",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "include_entity_fields",
            "in": "query",
            "required": false,
            "description": "Incluir os campos personalizados no retorno dessa requisição. Ao informar esse parâmetro como **true**, será adicionado um atributo de nome `entity_fields` na resposta dessa requisição. Contendo a lista de campos personalizados vinculados aos solicitantes",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "description": "Essa rota lista os solicitantes de todos os clientes que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_requestors",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Lista de solicitantes": {
                    "value": [
                      {
                        "id": 1,
                        "can_open_ticket": true,
                        "client": {
                          "id": 1,
                          "name": "Bechtelar-Marvin"
                        },
                        "email": "lld_brakus_marcos@emard.example",
                        "extension": "325",
                        "name": "Marcos Brakus LLD",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 2,
                        "can_open_ticket": true,
                        "client": {
                          "id": 2,
                          "name": "Schowalter LLC"
                        },
                        "email": "emilio_olson@collins.test",
                        "extension": "815",
                        "name": "Emilio Olson",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 3,
                        "can_open_ticket": true,
                        "client": {
                          "id": 3,
                          "name": "Koch Group"
                        },
                        "email": "deckow_tamisha@oconnell.test",
                        "extension": "531",
                        "name": "Tamisha Deckow",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 4,
                        "can_open_ticket": true,
                        "client": {
                          "id": 4,
                          "name": "Kuphal, Schneider and Veum"
                        },
                        "email": "tula_wehner@bartoletti-ward.example",
                        "extension": "726",
                        "name": "Tula Wehner",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 5,
                        "can_open_ticket": true,
                        "client": {
                          "id": 5,
                          "name": "Volkman and Sons"
                        },
                        "email": "bergstrom.fletcher@padberg-hyatt.example",
                        "extension": "181",
                        "name": "Fletcher Bergstrom",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 6,
                        "can_open_ticket": false,
                        "client": {
                          "id": 6,
                          "name": "Gutmann and Sons"
                        },
                        "email": "pres_kohler_gregory@koch.example",
                        "extension": "823",
                        "name": "Pres. Gregory Kohler",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 7,
                        "can_open_ticket": false,
                        "client": {
                          "id": 7,
                          "name": "Donnelly, Greenholt and Greenholt"
                        },
                        "email": "jarred.terry@altenwerth-rempel.test",
                        "extension": "900",
                        "name": "Jarred Terry",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 8,
                        "can_open_ticket": false,
                        "client": {
                          "id": 8,
                          "name": "Rolfson, Feest and Orn"
                        },
                        "email": "freddie.weber@kozey.test",
                        "extension": "530",
                        "name": "Freddie Weber",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 9,
                        "can_open_ticket": false,
                        "client": {
                          "id": 9,
                          "name": "Flatley LLC"
                        },
                        "email": "powlowski_debrah@ebert-auer.example",
                        "extension": "396",
                        "name": "Debrah Powlowski",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 10,
                        "can_open_ticket": true,
                        "client": {
                          "id": 10,
                          "name": "Krajcik, Fisher and Nitzsche"
                        },
                        "email": "sung_vm_reynolds@watsica.test",
                        "extension": "387",
                        "name": "Sung Reynolds VM",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 11,
                        "can_open_ticket": false,
                        "client": {
                          "id": 11,
                          "name": "Rath Inc"
                        },
                        "email": "arie_leffler@stiedemann.example",
                        "extension": "837",
                        "name": "Arie Leffler",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 12,
                        "can_open_ticket": false,
                        "client": {
                          "id": 12,
                          "name": "Green, Reichel and Romaguera"
                        },
                        "email": "bahringer.herb.md@gerlach.example",
                        "extension": "643",
                        "name": "Herb Bahringer MD",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 13,
                        "can_open_ticket": true,
                        "client": {
                          "id": 13,
                          "name": "Abbott-Roberts"
                        },
                        "email": "renner.phil@stokes.example",
                        "extension": "631",
                        "name": "Phil Renner",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 14,
                        "can_open_ticket": false,
                        "client": {
                          "id": 14,
                          "name": "McKenzie-Kunde"
                        },
                        "email": "robbie.lang.v@murray.test",
                        "extension": "787",
                        "name": "Robbie Lang V",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 15,
                        "can_open_ticket": false,
                        "client": {
                          "id": 15,
                          "name": "Lang, Ward and VonRueden"
                        },
                        "email": "brant_lehner_iii@lind.test",
                        "extension": "305",
                        "name": "Brant Lehner III",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 16,
                        "can_open_ticket": true,
                        "client": {
                          "id": 16,
                          "name": "Lesch, Watsica and Hoppe"
                        },
                        "email": "schultz_willie@stark.test",
                        "extension": "125",
                        "name": "Willie Schultz",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 17,
                        "can_open_ticket": true,
                        "client": {
                          "id": 18,
                          "name": "Gulgowski Inc"
                        },
                        "email": "ryan.porter@medhurst.example",
                        "extension": "180",
                        "name": "Porter Ryan",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 18,
                        "can_open_ticket": true,
                        "client": {
                          "id": 19,
                          "name": "Cummerata Inc"
                        },
                        "email": "homenick.hildegard@powlowski.example",
                        "extension": "253",
                        "name": "Hildegard Homenick",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 19,
                        "can_open_ticket": false,
                        "client": {
                          "id": 20,
                          "name": "Mills-Mitchell"
                        },
                        "email": "marquardt_raelene@kassulke.test",
                        "extension": "440",
                        "name": "Raelene Marquardt",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 20,
                        "can_open_ticket": false,
                        "client": {
                          "id": 21,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "email": "mohr_miles@bogisich-prosacco.example",
                        "extension": "679",
                        "name": "Miles Mohr",
                        "telephone": "+5547999999999"
                      }
                    ]
                  },
                  "Lista de solicitantes com campos personalizados": {
                    "value": [
                      {
                        "id": 1,
                        "can_open_ticket": true,
                        "client": {
                          "id": 1,
                          "name": "Bechtelar-Marvin"
                        },
                        "email": "lld_brakus_marcos@emard.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "325",
                        "name": "Marcos Brakus LLD",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 2,
                        "can_open_ticket": true,
                        "client": {
                          "id": 2,
                          "name": "Schowalter LLC"
                        },
                        "email": "emilio_olson@collins.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "815",
                        "name": "Emilio Olson",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 3,
                        "can_open_ticket": true,
                        "client": {
                          "id": 3,
                          "name": "Koch Group"
                        },
                        "email": "deckow_tamisha@oconnell.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "531",
                        "name": "Tamisha Deckow",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 4,
                        "can_open_ticket": true,
                        "client": {
                          "id": 4,
                          "name": "Kuphal, Schneider and Veum"
                        },
                        "email": "tula_wehner@bartoletti-ward.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "726",
                        "name": "Tula Wehner",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 5,
                        "can_open_ticket": true,
                        "client": {
                          "id": 5,
                          "name": "Volkman and Sons"
                        },
                        "email": "bergstrom.fletcher@padberg-hyatt.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "181",
                        "name": "Fletcher Bergstrom",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 6,
                        "can_open_ticket": false,
                        "client": {
                          "id": 6,
                          "name": "Gutmann and Sons"
                        },
                        "email": "pres_kohler_gregory@koch.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "823",
                        "name": "Pres. Gregory Kohler",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 7,
                        "can_open_ticket": false,
                        "client": {
                          "id": 7,
                          "name": "Donnelly, Greenholt and Greenholt"
                        },
                        "email": "jarred.terry@altenwerth-rempel.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "900",
                        "name": "Jarred Terry",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 8,
                        "can_open_ticket": false,
                        "client": {
                          "id": 8,
                          "name": "Rolfson, Feest and Orn"
                        },
                        "email": "freddie.weber@kozey.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "530",
                        "name": "Freddie Weber",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 9,
                        "can_open_ticket": false,
                        "client": {
                          "id": 9,
                          "name": "Flatley LLC"
                        },
                        "email": "powlowski_debrah@ebert-auer.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "396",
                        "name": "Debrah Powlowski",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 10,
                        "can_open_ticket": true,
                        "client": {
                          "id": 10,
                          "name": "Krajcik, Fisher and Nitzsche"
                        },
                        "email": "sung_vm_reynolds@watsica.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "387",
                        "name": "Sung Reynolds VM",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 11,
                        "can_open_ticket": false,
                        "client": {
                          "id": 11,
                          "name": "Rath Inc"
                        },
                        "email": "arie_leffler@stiedemann.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "837",
                        "name": "Arie Leffler",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 12,
                        "can_open_ticket": false,
                        "client": {
                          "id": 12,
                          "name": "Green, Reichel and Romaguera"
                        },
                        "email": "bahringer.herb.md@gerlach.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "643",
                        "name": "Herb Bahringer MD",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 13,
                        "can_open_ticket": true,
                        "client": {
                          "id": 13,
                          "name": "Abbott-Roberts"
                        },
                        "email": "renner.phil@stokes.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "631",
                        "name": "Phil Renner",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 14,
                        "can_open_ticket": false,
                        "client": {
                          "id": 14,
                          "name": "McKenzie-Kunde"
                        },
                        "email": "robbie.lang.v@murray.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "787",
                        "name": "Robbie Lang V",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 15,
                        "can_open_ticket": false,
                        "client": {
                          "id": 15,
                          "name": "Lang, Ward and VonRueden"
                        },
                        "email": "brant_lehner_iii@lind.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "305",
                        "name": "Brant Lehner III",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 16,
                        "can_open_ticket": true,
                        "client": {
                          "id": 16,
                          "name": "Lesch, Watsica and Hoppe"
                        },
                        "email": "schultz_willie@stark.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "125",
                        "name": "Willie Schultz",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 17,
                        "can_open_ticket": true,
                        "client": {
                          "id": 18,
                          "name": "Gulgowski Inc"
                        },
                        "email": "ryan.porter@medhurst.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "180",
                        "name": "Porter Ryan",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 18,
                        "can_open_ticket": true,
                        "client": {
                          "id": 19,
                          "name": "Cummerata Inc"
                        },
                        "email": "homenick.hildegard@powlowski.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "253",
                        "name": "Hildegard Homenick",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 19,
                        "can_open_ticket": false,
                        "client": {
                          "id": 20,
                          "name": "Mills-Mitchell"
                        },
                        "email": "marquardt_raelene@kassulke.test",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "440",
                        "name": "Raelene Marquardt",
                        "telephone": "+5547999999999"
                      },
                      {
                        "id": 20,
                        "can_open_ticket": false,
                        "client": {
                          "id": 21,
                          "name": "Corwin, Bode and Mosciski"
                        },
                        "email": "mohr_miles@bogisich-prosacco.example",
                        "entity_fields": [
                          {
                            "entity_field_id": 69,
                            "field_type": "text",
                            "name": "Campo de texto",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 70,
                            "field_type": "email",
                            "name": "Campo de email",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 71,
                            "field_type": "date",
                            "name": "Campo de data",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": null
                          },
                          {
                            "entity_field_id": 72,
                            "field_type": "single_select",
                            "name": "Campo de Seleção única",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [

                            ]
                          },
                          {
                            "entity_field_id": 73,
                            "field_type": "checkbox",
                            "name": "Campo de Checkbox",
                            "entity_id": 15,
                            "required": false,
                            "id": null,
                            "value": null,
                            "options": [
                              {
                                "entity_field_option_id": 44,
                                "entity_field_id": 73,
                                "title": "Check 1",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 45,
                                "entity_field_id": 73,
                                "title": "Check 2",
                                "id": null,
                                "value": null
                              },
                              {
                                "entity_field_option_id": 46,
                                "entity_field_id": 73,
                                "title": "Check 3",
                                "id": null,
                                "value": null
                              }
                            ]
                          }
                        ],
                        "extension": "679",
                        "name": "Miles Mohr",
                        "telephone": "+5547999999999"
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "can_open_ticket precisa ser um valor booleano": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "can_open_ticket": [
                          "teste is not a valid option. 'Can open ticket' must be 'true' or 'false'"
                        ]
                      }
                    }
                  },
                  "include_entity_fields precisa ser um valor booleano": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "include_entity_fields": [
                          "teste is not a valid option. 'Include entity fields' must be 'true' or 'false'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          },
          {
            "color": "red",
            "label": "Visualizar clientes e grupos de recursos"
          }
        ]
      }
    },
    "/clients/{client_id}/requestors/{id}/entities": {
      "put": {
        "summary": "Atualizar campos personalizados do solicitante",
        "tags": [
          "Solicitantes"
        ],
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "ID do cliente",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do solicitante",
            "example": 15,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Esta rota permite a atualização dos campos personalizados associados a um solicitante específico.\n\nPara consultar quais campos personalizados estão disponíveis para o solicitante em questão, utilize o método [Exibir solicitante](#get-/clients/-client_id-/requestors/-id-).\n### **Descrição dos valores aceitos**\nO formato do valor do campo (`value`) deve ser compatível com o tipo de campo personalizado (`entity_field_id`) que está sendo atualizado. Consulte a tabela abaixo para obter exemplos de valores válidos para cada tipo de campo:\nTipo de campo | Descrição | Exemplos\n--- | --- | ---\ntext | Aceita qualquer valor de string | `\"Meu texto\"`\ntext_area | Aceita qualquer valor de string | `\"Meu texto de exemplo\"`\ncurrency | Aceita uma string de números float utilizando o ponto como separador decimal e sem agrupador de milhares | `\"1200.55\"`,`\"15\"`\nphone | Aceita uma string de números inteiros, representando o número de telefone sem o código do país (DDI). Por padrão, o sistema vai tentar validar esse telefone como um número brasileiro. Se você deseja inserir um número de outro país, será necessário utilizar o atributo `country_code` junto no corpo da sua requisição | `\"47999999999\"`\nemail | Aceita uma string com o e-mail | `\"suporte@tiflux.com\"`\nlink | Aceita uma string contendo o endereço do link. O link deve começar com http, https ou ftp, para ser considerado como válido | `\"https://guia-de-uso.tiflux.com/\"`\ndate | Aceita uma string contendo a data. Serão aceitas datas em vários formatos (inclusive com horas). Porém, o valor será gravado em banco da seguinte forma: \"YYYY-MM-DD\", sendo assim, recomendamos que você informe a data nesse padrão também | `\"2025-05-28\"`\nsingle_select | Aceita uma string contendo um número inteiro com o ID da nova opção que foi escolhida | `\"777\"`, `\"52\"`\ncheckbox | Aceita uma string contendo um valor booleano representando se você deseja marcar o checkbox (\"true\") ou desmarcá-lo (\"false\") | `\"true\"`, `\"false\"`\n\n- **Observação:** Se você deseja apagar/limpar o valor de um campo personalizado que não é obrigatório, basta informar o atributo value como null: `\"value\": null`",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_clients_client_id_requestors_id_entities",
        "responses": {
          "200": {
            "description": "### **Campos personalizados atualizados com sucesso**\nO corpo da resposta dessa requisição será um objeto `requestor` contendo informações básicas do solicitante e outro objeto `requestor_entities`, contendo todos os campos personalizados dele após a atualização",
            "content": {
              "application/json": {
                "example": {
                  "requestor": {
                    "id": 33,
                    "can_open_ticket": false,
                    "email": "leroy_block@bogisich.example",
                    "extension": "351",
                    "name": "Leroy Block",
                    "telephone": "+5547999999999"
                  },
                  "requestor_entities": [
                    {
                      "id": 15,
                      "active": true,
                      "applied_in": "solicitant",
                      "description": "Campo personalizado aplicado em solicitantes",
                      "entity_fields": [
                        {
                          "id": 43,
                          "entity_field_id": 69,
                          "entity_id": 15,
                          "field_type": "text",
                          "name": "Campo de texto",
                          "options": [

                          ],
                          "required": false,
                          "value": "Novo texto da entidade"
                        },
                        {
                          "id": 58,
                          "entity_field_id": 70,
                          "entity_id": 15,
                          "field_type": "email",
                          "name": "Campo de email",
                          "options": [

                          ],
                          "required": false,
                          "value": "adam@block.test"
                        },
                        {
                          "id": 59,
                          "entity_field_id": 71,
                          "entity_id": 15,
                          "field_type": "date",
                          "name": "Campo de data",
                          "options": [

                          ],
                          "required": false,
                          "value": "2024-06-28"
                        },
                        {
                          "id": 44,
                          "entity_field_id": 72,
                          "entity_id": 15,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única",
                          "options": [
                            {
                              "id": 44,
                              "entity_field_id": 72,
                              "entity_field_option_id": 43,
                              "title": "Opção 2",
                              "value": "43"
                            }
                          ],
                          "required": false,
                          "value": "Opção 2"
                        },
                        {
                          "id": null,
                          "entity_field_id": 73,
                          "entity_id": 15,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [
                            {
                              "id": 60,
                              "entity_field_id": 73,
                              "entity_field_option_id": 44,
                              "title": "Check 1",
                              "value": "true"
                            },
                            {
                              "id": 61,
                              "entity_field_id": 73,
                              "entity_field_option_id": 45,
                              "title": "Check 2",
                              "value": "true"
                            }
                          ],
                          "required": false,
                          "value": "Check 1, Check 2"
                        }
                      ],
                      "menu_item": false,
                      "name": "Teste"
                    }
                  ]
                }
              }
            }
          },
          "207": {
            "description": "### **Sucesso Parcial na Atualização de Campos Personalizados**\nEste código de resposta indica que a requisição para atualizar campos personalizados foi **parcialmente bem-sucedida**. Ou seja, alguns dos campos podem ter sido atualizados com sucesso, enquanto outros apresentaram falhas e não foram atualizados.\n\nPara os campos que apresentaram falhas na atualização, o motivo do erro está detalhado no atributo `detail`. Se um campo não constar na listagem de erros, significa que ele foi atualizado com sucesso.",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 20701,
                  "message": "Your request was partially successful. Some entity values were updated successfully, but others had errors",
                  "detail": {
                    "entities": [
                      "The property '#/0/entity_field_id': Couldn't find EntityField with id=0 applied in ServiceDesk::TicketRequestor. The entity may be inactive or not exist",
                      "The property '#/1/value': Is not a valid email",
                      "The property '#/2/value': Is not a valid date",
                      "The property '#/3/value': Option id=0 is not a valid option in EntityField (id=72)"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Parâmetro inválido encontrado**\nVocê informou algum atributo inválido ou fora do padrão dessa requisição. Confira os exemplos e o schema, para garantir que o corpo da sua requisição esteja no formato correto",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40001,
                  "message": "Unknown parameters",
                  "detail": {
                    "error": [
                      "found unpermitted parameter: :name"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Cliente ou solicitante não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketRequestor with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar clientes e grupos de recursos"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/entities"
              },
              "examples": {
                "Text field": {
                  "summary": "Text field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 69,
                        "value": "Novo texto do campo tipo texto"
                      }
                    ]
                  }
                },
                "Email field": {
                  "summary": "Email field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 70,
                        "value": "new_mail@to.entity.com"
                      }
                    ]
                  }
                },
                "Date field": {
                  "summary": "Date field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 71,
                        "value": "2024-06-28"
                      }
                    ]
                  }
                },
                "Single_select field": {
                  "summary": "Single_select field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 72,
                        "value": "43"
                      }
                    ]
                  }
                },
                "Checkbox field": {
                  "summary": "Checkbox field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 73,
                        "entity_field_option_id": 44,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 73,
                        "entity_field_option_id": 45,
                        "value": "false"
                      },
                      {
                        "entity_field_id": 73,
                        "entity_field_option_id": 46,
                        "value": "true"
                      }
                    ]
                  }
                },
                "Update all entity values": {
                  "summary": "Update all entity values",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 69,
                        "value": "Novo texto da entidade"
                      },
                      {
                        "entity_field_id": 70,
                        "value": "adam@block.test"
                      },
                      {
                        "entity_field_id": 71,
                        "value": "2024-06-28"
                      },
                      {
                        "entity_field_id": 72,
                        "value": "43"
                      },
                      {
                        "entity_field_id": 73,
                        "entity_field_option_id": 44,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 73,
                        "entity_field_option_id": 45,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 73,
                        "entity_field_option_id": 46,
                        "value": "false"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Este schema define a estrutura de dados para atualização de campos personalizados de um solicitante. Ele é composto por um array de objetos, onde cada objeto representa um campo personalizado a ser atualizado"
        }
      }
    },
    "/services-catalogs": {
      "get": {
        "summary": "Listar catálogos de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Filtra pelo nome do catálogo",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os catálogos de serviços da organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_services-catalogs",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "name": "Suporte"
                  },
                  {
                    "id": 2,
                    "name": "Catálogo com campos personalizados"
                  },
                  {
                    "id": 3,
                    "name": "Catálogo de exemplo"
                  },
                  {
                    "id": 4,
                    "name": "Catálogo extra"
                  },
                  {
                    "id": 5,
                    "name": "Catálogo para conhecimento"
                  },
                  {
                    "id": 6,
                    "name": "Catálogo 1"
                  },
                  {
                    "id": 7,
                    "name": "Catálogo 2"
                  },
                  {
                    "id": 8,
                    "name": "Infraestrutura"
                  },
                  {
                    "id": 9,
                    "name": "MCP"
                  },
                  {
                    "id": 11,
                    "name": "Catálogo Principal"
                  }
                ],
                "schema": {
                  "type": "array",
                  "title": "Listar catálogos de serviços",
                  "items": {
                    "type": "object",
                    "title": "Exibir catálogo de serviços",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do catálogo de serviços"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do catálogo"
                      }
                    },
                    "required": [
                      "id",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [

        ],
        "description": "Cria um novo catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_services-catalogs",
        "responses": {
          "201": {
            "description": "### **Catálogo criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 12,
                  "name": "Catálogo de Testes"
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir catálogo de serviços",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do catálogo de serviços"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do catálogo"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "name": [
                      "has already been taken"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do catálogo. Deve ser único dentro da organização"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Catálogo de Testes"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/services-catalogs/{id}": {
      "put": {
        "summary": "Atualizar catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID do catálogo",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza um catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_services-catalogs_id",
        "responses": {
          "200": {
            "description": "### **Catálogo atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 11,
                  "name": "Catálogo Renomeado"
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir catálogo de serviços",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do catálogo de serviços"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do catálogo"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Catálogo não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalog with 'id'=\"10\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do catálogo. Deve ser único dentro da organização"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Catálogo Renomeado"
                  }
                }
              }
            }
          },
          "required": true
        }
      },
      "delete": {
        "summary": "Remover catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "description": "Remove um catálogo de serviços.\n- Ao remover um catálogo, todas as suas áreas e itens também são desativados.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID do catálogo",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_services-catalogs_id",
        "responses": {
          "204": {
            "description": "### **Catálogo removido com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Catálogo não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalog with 'id'=\"10\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/services-catalogs/{services_catalog_id}/areas": {
      "get": {
        "summary": "Listar áreas de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "services_catalog_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID do catálogo",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Filtra pelo nome da área",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista as áreas de um catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_services-catalogs_services_catalog_id_areas",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 8,
                    "active": true,
                    "name": "Área Principal",
                    "services_catalog": {
                      "id": 11,
                      "name": "Catálogo Principal"
                    }
                  }
                ],
                "schema": {
                  "type": "array",
                  "title": "Listar áreas de catálogo de serviços",
                  "items": {
                    "type": "object",
                    "title": "Exibir área de catálogo de serviços",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID da área"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome da área"
                      },
                      "active": {
                        "type": "boolean",
                        "description": "A área está ativa?"
                      },
                      "services_catalog": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ],
                        "description": "Catálogo ao qual a área pertence"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "active",
                      "services_catalog"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Catálogo não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalog with 'id'=\"10\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "services_catalog_id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar área de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "services_catalog_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID do catálogo",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Cria uma nova área dentro de um catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_services-catalogs_services_catalog_id_areas",
        "responses": {
          "201": {
            "description": "### **Área criada com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 14,
                  "active": true,
                  "name": "Área de Testes",
                  "services_catalog": {
                    "id": 11,
                    "name": "Catálogo Principal"
                  }
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir área de catálogo de serviços",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID da área"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome da área"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "A área está ativa?"
                    },
                    "services_catalog": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "description": "Catálogo ao qual a área pertence"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "active",
                    "services_catalog"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Catálogo não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalog with 'id'=\"10\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "name": [
                      "has already been taken"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da área. Deve ser único dentro do catálogo"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Área de Testes"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/services-catalogs/{services_catalog_id}/areas/{id}": {
      "put": {
        "summary": "Atualizar área de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "services_catalog_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID do catálogo",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 2
              }
            },
            "required": true,
            "description": "ID da área",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza uma área de catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_services-catalogs_services_catalog_id_areas_id",
        "responses": {
          "200": {
            "description": "### **Área atualizada com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 8,
                  "active": true,
                  "name": "Área Renomeada",
                  "services_catalog": {
                    "id": 11,
                    "name": "Catálogo Principal"
                  }
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir área de catálogo de serviços",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID da área"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome da área"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "A área está ativa?"
                    },
                    "services_catalog": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "description": "Catálogo ao qual a área pertence"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "active",
                    "services_catalog"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Catálogo ou área não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalogsArea with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da área. Deve ser único dentro do catálogo"
                  }
                },
                "required": [
                  "name"
                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Área Renomeada"
                  }
                }
              }
            }
          },
          "required": true
        }
      },
      "delete": {
        "summary": "Remover área de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "description": "Remove uma área de catálogo de serviços.\n- Ao remover uma área, todos os seus itens também são desativados.",
        "parameters": [
          {
            "name": "services_catalog_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID do catálogo",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 2
              }
            },
            "required": true,
            "description": "ID da área",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_services-catalogs_services_catalog_id_areas_id",
        "responses": {
          "204": {
            "description": "### **Área removida com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Catálogo ou área não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalogsArea with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/services-catalogs-areas/{services_catalogs_area_id}/items": {
      "get": {
        "summary": "Listar itens de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "services_catalogs_area_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID da área",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Filtra pelo nome do item",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os itens de uma área de catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_services-catalogs-areas_services_catalogs_area_id_items",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 8,
                    "active": true,
                    "end_time": "18:00",
                    "name": "Item Principal",
                    "services_catalog": {
                      "id": 11,
                      "name": "Catálogo Principal"
                    },
                    "services_catalogs_area": {
                      "id": 8,
                      "name": "Área Principal"
                    },
                    "start_time": "08:00"
                  }
                ],
                "schema": {
                  "type": "array",
                  "title": "Listar itens de catálogo de serviços",
                  "items": {
                    "type": "object",
                    "title": "Exibir item de catálogo de serviços",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do item"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do item"
                      },
                      "start_time": {
                        "type": "string",
                        "nullable": true,
                        "description": "Horário de Vencimento do atendimento (Tempo máximo para o atendente gerar o primeiro apontamento). Formato HH:MM",
                        "example": "08:00"
                      },
                      "end_time": {
                        "type": "string",
                        "nullable": true,
                        "description": "Horário de Vencimento da solução (Tempo máximo para o atendente finalizar o ticket). Formato HH:MM",
                        "example": "18:00"
                      },
                      "active": {
                        "type": "boolean",
                        "description": "O item está ativo?"
                      },
                      "services_catalogs_area": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ],
                        "description": "Área à qual o item pertence"
                      },
                      "services_catalog": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ],
                        "description": "Catálogo ao qual o item pertence"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "start_time",
                      "end_time",
                      "active",
                      "services_catalogs_area",
                      "services_catalog"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Área não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalogsArea with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "services_catalogs_area_id": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar item de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "services_catalogs_area_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID da área",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Cria um novo item dentro de uma área de catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_services-catalogs-areas_services_catalogs_area_id_items",
        "responses": {
          "201": {
            "description": "### **Item criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 19,
                  "active": true,
                  "end_time": "18:00",
                  "name": "Item de Testes",
                  "services_catalog": {
                    "id": 11,
                    "name": "Catálogo Principal"
                  },
                  "services_catalogs_area": {
                    "id": 8,
                    "name": "Área Principal"
                  },
                  "start_time": "08:00"
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir item de catálogo de serviços",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do item"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do item"
                    },
                    "start_time": {
                      "type": "string",
                      "nullable": true,
                      "description": "Horário de Vencimento do atendimento (Tempo máximo para o atendente gerar o primeiro apontamento). Formato HH:MM",
                      "example": "08:00"
                    },
                    "end_time": {
                      "type": "string",
                      "nullable": true,
                      "description": "Horário de Vencimento da solução (Tempo máximo para o atendente finalizar o ticket). Formato HH:MM",
                      "example": "18:00"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "O item está ativo?"
                    },
                    "services_catalogs_area": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "description": "Área à qual o item pertence"
                    },
                    "services_catalog": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "description": "Catálogo ao qual o item pertence"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "start_time",
                    "end_time",
                    "active",
                    "services_catalogs_area",
                    "services_catalog"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Área não encontrada**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalogsArea with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "name": [
                      "has already been taken"
                    ],
                    "end_time": [
                      "Must be greater or equal than start time"
                    ],
                    "start_time": [
                      "invalid time format",
                      "use HH:MM, with hours between 0 and 999 and minutes between 00 and 59"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do item. Deve ser único dentro da área"
                  },
                  "start_time": {
                    "type": "string",
                    "description": "Horário de vencimento do atendimento (formato HH:MM)",
                    "example": "08:00"
                  },
                  "end_time": {
                    "type": "string",
                    "description": "Horário de vencimento da solução (formato HH:MM). Deve ser maior que start_time",
                    "example": "18:00"
                  }
                },
                "required": [

                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Item de Testes",
                    "start_time": "08:00",
                    "end_time": "18:00"
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/services-catalogs-areas/{services_catalogs_area_id}/items/{id}": {
      "put": {
        "summary": "Atualizar item de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "parameters": [
          {
            "name": "services_catalogs_area_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID da área",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 2
              }
            },
            "required": true,
            "description": "ID do item",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza um item de catálogo de serviços.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_services-catalogs-areas_services_catalogs_area_id_items_id",
        "responses": {
          "200": {
            "description": "### **Item atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 8,
                  "active": true,
                  "end_time": "17:00",
                  "name": "Item Renomeado",
                  "services_catalog": {
                    "id": 11,
                    "name": "Catálogo Principal"
                  },
                  "services_catalogs_area": {
                    "id": 8,
                    "name": "Área Principal"
                  },
                  "start_time": "09:00"
                },
                "schema": {
                  "type": "object",
                  "title": "Exibir item de catálogo de serviços",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID do item"
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do item"
                    },
                    "start_time": {
                      "type": "string",
                      "nullable": true,
                      "description": "Horário de Vencimento do atendimento (Tempo máximo para o atendente gerar o primeiro apontamento). Formato HH:MM",
                      "example": "08:00"
                    },
                    "end_time": {
                      "type": "string",
                      "nullable": true,
                      "description": "Horário de Vencimento da solução (Tempo máximo para o atendente finalizar o ticket). Formato HH:MM",
                      "example": "18:00"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "O item está ativo?"
                    },
                    "services_catalogs_area": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "description": "Área à qual o item pertence"
                    },
                    "services_catalog": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Nome"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "description": "Catálogo ao qual o item pertence"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "start_time",
                    "end_time",
                    "active",
                    "services_catalogs_area",
                    "services_catalog"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Área ou item não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalogsItem with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do item. Deve ser único dentro da área"
                  },
                  "start_time": {
                    "type": "string",
                    "description": "Horário de vencimento do atendimento (formato HH:MM)",
                    "example": "08:00"
                  },
                  "end_time": {
                    "type": "string",
                    "description": "Horário de vencimento da solução (formato HH:MM). Deve ser maior que start_time",
                    "example": "18:00"
                  }
                },
                "required": [

                ]
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Item Renomeado",
                    "start_time": "09:00",
                    "end_time": "17:00"
                  }
                }
              }
            }
          },
          "required": true
        }
      },
      "delete": {
        "summary": "Remover item de catálogo de serviços",
        "tags": [
          "Catálogo de serviços"
        ],
        "description": "Remove um item de catálogo de serviços.",
        "parameters": [
          {
            "name": "services_catalogs_area_id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "description": "ID da área",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "examples": {
              "Exemplo 1": {
                "value": 2
              }
            },
            "required": true,
            "description": "ID do item",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_services-catalogs-areas_services_catalogs_area_id_items_id",
        "responses": {
          "204": {
            "description": "### **Item removido com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Área ou item não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::ServicesCatalogsItem with 'id'=\"999999\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar catálogos de serviço"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/technical-groups": {
      "get": {
        "summary": "Listar grupos de atendentes",
        "tags": [
          "Grupos de Atendentes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os grupos de atendentes que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_technical-groups",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "name": "Information Technology"
                  },
                  {
                    "id": 29,
                    "name": "General Management"
                  },
                  {
                    "id": 30,
                    "name": "Human Resources"
                  },
                  {
                    "id": 34,
                    "name": "Customer Service"
                  },
                  {
                    "id": 35,
                    "name": "Board of Directors"
                  },
                  {
                    "id": 49,
                    "name": "Human Resources"
                  },
                  {
                    "id": 100,
                    "name": "Product Management"
                  },
                  {
                    "id": 101,
                    "name": "Production"
                  },
                  {
                    "id": 104,
                    "name": "Risk Management"
                  },
                  {
                    "id": 105,
                    "name": "Human Resources"
                  },
                  {
                    "id": 110,
                    "name": "Grupo de atendentes com acesso ao conhecimento privado"
                  },
                  {
                    "id": 111,
                    "name": "Grupo de atendentes sem acesso ao conhecimento privado"
                  },
                  {
                    "id": 116,
                    "name": "Grupo de atendentes para vincular em conhecimentos"
                  },
                  {
                    "id": 128,
                    "name": "Production"
                  },
                  {
                    "id": 129,
                    "name": "Marketing"
                  },
                  {
                    "id": 130,
                    "name": "Operations"
                  },
                  {
                    "id": 132,
                    "name": "Product Management"
                  },
                  {
                    "id": 133,
                    "name": "Sales"
                  },
                  {
                    "id": 135,
                    "name": "Human Resources"
                  },
                  {
                    "id": 142,
                    "name": "Risk Management"
                  }
                ]
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          }
        ]
      }
    },
    "/technical-groups/{id}": {
      "get": {
        "summary": "Exibir grupo de atendentes",
        "tags": [
          "Grupos de Atendentes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de atendente",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "show_departments",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Exibir os departamentos",
            "required": false
          }
        ],
        "description": "Exibe informações detalhadas sobre um determinado grupo de atendentes.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_technical-groups_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Mostrar departamentos = false": {
                    "value": {
                      "id": 207,
                      "description": "When Chuck Norris points to null, null quakes in fear.",
                      "expedients": [
                        {
                          "id": 207,
                          "beginning": "08:00",
                          "days": "MON, TUE, WED, THU, FRI",
                          "ending": "12:00",
                          "holiday": false
                        }
                      ],
                      "has_compromise": false,
                      "name": "Asset Management",
                      "send_periodic_appointment_hours": "Do not send email"
                    }
                  },
                  "Mostrar departamentos = true": {
                    "value": {
                      "id": 207,
                      "departments": [
                        {
                          "id": 427,
                          "name": "Rohan Group"
                        },
                        {
                          "id": 428,
                          "name": "Von, Adams and Hand"
                        }
                      ],
                      "description": "When Chuck Norris points to null, null quakes in fear.",
                      "expedients": [
                        {
                          "id": 207,
                          "beginning": "08:00",
                          "days": "MON, TUE, WED, THU, FRI",
                          "ending": "12:00",
                          "holiday": false
                        }
                      ],
                      "has_compromise": false,
                      "name": "Asset Management",
                      "send_periodic_appointment_hours": "Do not send email"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Grupo de atendentes não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TechnicalGroup with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          }
        ]
      }
    },
    "/technical-groups/{id}/users": {
      "get": {
        "summary": "Relacionamento com usuários",
        "tags": [
          "Grupos de Atendentes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de atendente",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os atendentes/usuários que estão relacionados com um determinado grupo de atendentes.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_technical-groups_id_users",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 206,
                    "_type": "attendant",
                    "active": true,
                    "email": "miss_tesha_skiles@schuppe.test",
                    "gauth_enabled": false,
                    "last_login_at": null,
                    "name": "Miss Tesha Skiles",
                    "technical_group_id": 207
                  },
                  {
                    "id": 207,
                    "_type": "attendant",
                    "active": true,
                    "email": "durgan.christopher.ms@mayert-doyle.example",
                    "gauth_enabled": false,
                    "last_login_at": null,
                    "name": "Ms. Christopher Durgan",
                    "technical_group_id": 207
                  },
                  {
                    "id": 208,
                    "_type": "attendant",
                    "active": true,
                    "email": "johnson.sabina@hudson.example",
                    "gauth_enabled": false,
                    "last_login_at": null,
                    "name": "Sabina Johnson",
                    "technical_group_id": 207
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Grupo de atendentes não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TechnicalGroup with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Testa se for informado uma string: 'a'": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          }
        ]
      }
    },
    "/technical-groups/{id}/desks": {
      "get": {
        "summary": "Relacionamento com mesas",
        "tags": [
          "Grupos de Atendentes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de atendente",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista as mesas que estão relacionadas com um determinado grupo de atendentes.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_technical-groups_id_desks",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 18,
                    "active": true,
                    "appointment_type": "Appointments with no Valorization",
                    "display_name": "API",
                    "name": "API"
                  },
                  {
                    "id": 19,
                    "active": true,
                    "appointment_type": "Appointments with no Valorization",
                    "display_name": "API",
                    "name": "API"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Grupo de atendentes não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TechnicalGroup with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Testa se for informado uma string: 'a'": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          }
        ]
      }
    },
    "/technical-groups/{id}/clients": {
      "get": {
        "summary": "Relacionamento com clientes",
        "tags": [
          "Grupos de Atendentes"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do grupo de atendente",
            "example": 2,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Lista os clientes que estão relacionados com um determinado grupo de atendentes.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_technical-groups_id_clients",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 34,
                    "name": "Altenwerth, Lang and Bashirian",
                    "social": "Fisher-Harber",
                    "social_revenue": "97309305000545",
                    "status": true
                  },
                  {
                    "id": 35,
                    "name": "Schumm Group",
                    "social": "Rodriguez, Conroy and Treutel",
                    "social_revenue": "86151604000235",
                    "status": true
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Grupo de atendentes não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TechnicalGroup with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "Testa se for informado uma string: 'a'": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "limit": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar mesas de serviços"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/answers": {
      "get": {
        "summary": "Listar respostas",
        "tags": [
          "Respostas dos tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista as respostas (comunicações com o cliente) que existem em um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_answers",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "answer_origin": "tiflux_web",
                    "answer_time": "2026-08-27T21:04:06Z",
                    "author": "Admin",
                    "files_count": 1,
                    "name": "teste",
                    "user_id": 1
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_ticket_number": [
                      "is not a number"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "post": {
        "summary": "Criar resposta",
        "tags": [
          "Respostas dos tickets"
        ],
        "description": "Cria uma nova resposta (comunicação com o cliente) em um determinado ticket.\n\nCaso a sua organização possua uma licença de whitelabel de e-mail, a assinatura do seu usuário pode ser enviada na resposta criada, utilizando o parâmetro `with_signature=true`.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 2
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets_ticket_number_answers",
        "responses": {
          "201": {
            "description": "### **Resposta criada com sucesso**",
            "content": {
              "application/json": {
                "examples": {
                  "Criar resposta com assinatura": {
                    "value": {
                      "id": 3,
                      "answer_origin": "api",
                      "answer_time": "2026-08-27T21:04:06Z",
                      "author": "[API] Kum Rau Sr.",
                      "files": [

                      ],
                      "files_count": 0,
                      "name": "<p>Teste</p>",
                      "signature": "Answer sent with signature",
                      "user_id": 1
                    }
                  },
                  "Criar resposta sem assinatura": {
                    "value": {
                      "id": 5,
                      "answer_origin": "api",
                      "answer_time": "2026-08-27T21:04:06Z",
                      "author": "[API] Kum Rau Sr.",
                      "files": [

                      ],
                      "files_count": 0,
                      "name": "<p>Teste</p>",
                      "signature": "Answer sent without signature",
                      "user_id": 1
                    }
                  },
                  "Criar resposta com arquivo": {
                    "value": {
                      "id": 7,
                      "answer_origin": "api",
                      "answer_time": "2026-08-27T21:04:07Z",
                      "author": "[API] Kum Rau Sr.",
                      "files": [
                        {
                          "id": 3,
                          "content_type": "image/png",
                          "file_name": "missing.png",
                          "size": 5265,
                          "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                        }
                      ],
                      "files_count": 1,
                      "name": "<p>Teste</p>",
                      "signature": "Answer sent without signature",
                      "user_id": 1
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da resposta criada"
                    },
                    "answer_origin": {
                      "type": "string",
                      "description": "Origem da resposta (por onde a resposta foi criada)",
                      "enum": [
                        "tiflux_web",
                        "api",
                        "client_portal",
                        "email",
                        "agent"
                      ]
                    },
                    "answer_time": {
                      "type": "string",
                      "description": "Data da criação da resposta"
                    },
                    "author": {
                      "type": "string",
                      "description": "Nome do autor. Caso a resposta for criada pela API, será adicionada uma TAG **[API]** na frente do nome do usuário"
                    },
                    "files": {
                      "type": "array",
                      "description": "Lista contendo os arquivos que estão anexados na resposta",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do arquivo"
                          },
                          "content_type": {
                            "type": "string",
                            "description": "Formato do arquivo"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "Nome do arquivo"
                          },
                          "size": {
                            "type": "integer",
                            "description": "Tamanho do arquivo em bytes"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "files_count": {
                      "type": "integer",
                      "description": "Contador do total de arquivos anexados"
                    },
                    "name": {
                      "type": "string",
                      "description": "O texto da resposta em formato HTML"
                    },
                    "signature": {
                      "type": "string",
                      "description": "Indica se a resposta foi criada com ou sem assinatura:\n* `Answer sent without signature` - Indica que a resposta foi enviada sem assinatura\n* `Answer sent without signature: User doesn't have a signature registered` - Indica que foi tentado enviar a resposta com assinatura, porém, o usuário não tem uma assinatura cadastrada em \"Minha conta\". Portanto, a resposta foi enviada sem assinatura.\n* `Answer sent with signature` - Indica que a resposta foi enviada com assinatura",
                      "enum": [
                        "Answer sent without signature",
                        "Answer sent without signature: User doesn't have a signature registered",
                        "Answer sent with signature"
                      ]
                    },
                    "user_id": {
                      "type": "integer",
                      "description": "Identificador do usuário que criou a resposta"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "with_signature": [
                      "teste is not a valid option. With signature must be 'true' or 'false'"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Texto da resposta que será criada"
                  },
                  "with_signature": {
                    "type": "boolean",
                    "description": "Enviar resposta com a assinatura do seu usuário?",
                    "default": false
                  },
                  "files[]": {
                    "type": "array",
                    "description": "Lista com os arquivos que serão anexados na resposta.\n\nEsse parâmetro deve respeitar os seguintes critérios, para os anexos serem anexados corretamente na resposta:\n- O valor desse parâmetro deve ser uma lista de arquivos\n- É permitido anexar no máximo 10 arquivos por requisição\n- Cada arquivo deve possuir no máx 25 megabytes",
                    "maxItems": 10,
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          },
          "required": true,
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita os seguintes atributos:"
        }
      }
    },
    "/tickets/{ticket_number}/client-answers": {
      "post": {
        "summary": "Criar resposta de cliente",
        "tags": [
          "Respostas dos tickets"
        ],
        "description": "Cria uma nova resposta de cliente em um determinado ticket.\n\n**Importante:** Essa resposta será registrada com o tipo `cliente`.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "ticket_number": {
                "value": 2
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets_ticket_number_client-answers",
        "responses": {
          "201": {
            "description": "### **Resposta criada com sucesso**",
            "content": {
              "application/json": {
                "examples": {
                  "Criar resposta sem arquivo": {
                    "value": {
                      "id": 8,
                      "answer_origin": "api",
                      "answer_time": "2026-08-27T21:04:07Z",
                      "author": "[API] Nome do cliente",
                      "files": [

                      ],
                      "files_count": 0,
                      "name": "<p>Teste</p>",
                      "user_id": null
                    }
                  },
                  "Criar resposta com arquivo": {
                    "value": {
                      "id": 10,
                      "answer_origin": "api",
                      "answer_time": "2026-08-27T21:04:07Z",
                      "author": "[API] Nome do cliente",
                      "files": [
                        {
                          "id": 5,
                          "content_type": "image/png",
                          "file_name": "missing.png",
                          "size": 5265,
                          "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                        }
                      ],
                      "files_count": 1,
                      "name": "<p>Teste</p>",
                      "user_id": null
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da resposta criada"
                    },
                    "answer_origin": {
                      "type": "string",
                      "description": "Origem da resposta (por onde a resposta foi criada)",
                      "enum": [
                        "tiflux_web",
                        "api",
                        "client_portal",
                        "email",
                        "agent"
                      ]
                    },
                    "answer_time": {
                      "type": "string",
                      "description": "Data da criação da resposta"
                    },
                    "author": {
                      "type": "string",
                      "description": "Nome do autor. Caso a resposta for criada pela API, será adicionada uma TAG **[API]** na frente do nome do usuário"
                    },
                    "files": {
                      "type": "array",
                      "description": "Lista contendo os arquivos que estão anexados na resposta",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do arquivo"
                          },
                          "content_type": {
                            "type": "string",
                            "description": "Formato do arquivo"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "Nome do arquivo"
                          },
                          "size": {
                            "type": "integer",
                            "description": "Tamanho do arquivo em bytes"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "files_count": {
                      "type": "integer",
                      "description": "Contador do total de arquivos anexados"
                    },
                    "name": {
                      "type": "string",
                      "description": "O texto da resposta em formato HTML"
                    },
                    "user_id": {
                      "type": "integer",
                      "nullable": true,
                      "description": "Identificador do usuário que criou a resposta"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "name": [
                      "can't be blank"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nPara acessar essa rota, seu usuário precisa ser do tipo `Administrador`",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "blue",
            "label": "Apenas administradores"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Texto da resposta que será criada"
                  },
                  "author_name": {
                    "type": "string",
                    "description": "Nome do cliente que será identificado como autor da resposta"
                  },
                  "files[]": {
                    "type": "array",
                    "description": "Lista com os arquivos que serão anexados na resposta.\n\nEsse parâmetro deve respeitar os seguintes critérios, para os anexos serem anexados corretamente na resposta:\n- O valor desse parâmetro deve ser uma lista de arquivos\n- É permitido anexar no máximo 10 arquivos por requisição\n- Cada arquivo deve possuir no máx 25 megabytes",
                    "maxItems": 10,
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                },
                "required": [
                  "name",
                  "author_name"
                ]
              }
            }
          },
          "required": true,
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita os seguintes atributos:"
        }
      }
    },
    "/tickets/{ticket_number}/answers/{id}": {
      "get": {
        "summary": "Exibir resposta",
        "tags": [
          "Respostas dos tickets"
        ],
        "description": "Exibe informações detalhadas de uma resposta de um determinado ticket.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da resposta",
            "examples": {
              "Exemplo 1": {
                "value": 3
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_answers_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "answer_origin": "tiflux_web",
                  "answer_time": "2026-08-27T21:04:06Z",
                  "author": "Admin",
                  "files": [
                    {
                      "id": 1,
                      "content_type": "image/png",
                      "file_name": "api.png",
                      "size": 1234,
                      "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                    }
                  ],
                  "files_count": 1,
                  "name": "teste",
                  "user_id": 1
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Identificador da resposta criada"
                    },
                    "answer_origin": {
                      "type": "string",
                      "description": "Origem da resposta (por onde a resposta foi criada)",
                      "enum": [
                        "tiflux_web",
                        "api",
                        "client_portal",
                        "email",
                        "agent"
                      ]
                    },
                    "answer_time": {
                      "type": "string",
                      "description": "Data da criação da resposta"
                    },
                    "author": {
                      "type": "string",
                      "description": "Nome do autor. Caso a resposta for criada pela API, será adicionada uma TAG **[API]** na frente do nome do usuário"
                    },
                    "files": {
                      "type": "array",
                      "description": "Lista contendo os arquivos que estão anexados na resposta",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do arquivo"
                          },
                          "content_type": {
                            "type": "string",
                            "description": "Formato do arquivo"
                          },
                          "file_name": {
                            "type": "string",
                            "description": "Nome do arquivo"
                          },
                          "size": {
                            "type": "integer",
                            "description": "Tamanho do arquivo em bytes"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "files_count": {
                      "type": "integer",
                      "description": "Contador do total de arquivos anexados"
                    },
                    "name": {
                      "type": "string",
                      "description": "O texto da resposta em formato HTML"
                    },
                    "user_id": {
                      "type": "integer",
                      "nullable": true,
                      "description": "Identificador do usuário que criou a resposta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket ou resposta não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketAnswer with 'id'=\"99999\" [WHERE \"service_desk_ticket_answers\".\"ticket_id\" = $1]"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "delete": {
        "summary": "Excluir resposta",
        "tags": [
          "Respostas dos tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da resposta que será excluída",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove uma resposta de um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_tickets_ticket_number_answers_id",
        "responses": {
          "204": {
            "description": "### **Resposta removida com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Ticket ou resposta não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketAnswer with 'id'=\"9999\" [WHERE \"service_desk_ticket_answers\".\"ticket_id\" = $1]"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/ticket_answers/{ticket_answer_id}/files/{id}": {
      "delete": {
        "summary": "Excluir arquivo em resposta de ticket",
        "tags": [
          "Respostas dos tickets"
        ],
        "parameters": [
          {
            "name": "ticket_answer_id",
            "in": "path",
            "description": "Identificador da resposta",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "Identificador do arquivo que será excluído",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Remove um arquivo de uma determinada resposta.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_ticket_answers_ticket_answer_id_files_id",
        "responses": {
          "204": {
            "description": "### **Arquivo removido com sucesso**\nEssa resposta não contem body"
          },
          "404": {
            "description": "### **Resposta ou arquivo não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketAnswerFile with 'id'=\"9999\""
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/checklists": {
      "get": {
        "summary": "Listar checklists do ticket",
        "tags": [
          "Checklists"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os checklists de um determinado ticket, com o estado de preenchimento de cada campo.\n\n- Um checklist do Tiflux é um **formulário**: cada item da lista `fields` pode ser um campo de texto, uma escolha única ou um conjunto de marcações. O atributo `filled` já informa se o campo está preenchido, considerando a regra de cada tipo\n- Um campo impede o fechamento do ticket se, e somente se, `required` for `true` e `filled` for `false`\n- O atributo `index` é a **posição** do campo dentro do checklist e é a única forma de referenciá-lo, pois campos não possuem identificador próprio\n- Para verificar rapidamente se os checklists impedem o fechamento do ticket, utilize o atributo `checklists_summary` do método [Exibir ticket](#get-/tickets/-ticket_number-)",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_checklists",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 2,
                    "created_at": "2026-08-27T21:04:10Z",
                    "description": "this is it",
                    "fields": [
                      {
                        "index": 0,
                        "title": "Campo texto",
                        "type": "text",
                        "required": true,
                        "filled": false,
                        "value": null,
                        "options": null
                      },
                      {
                        "index": 1,
                        "title": "Campo area",
                        "type": "textarea",
                        "required": true,
                        "filled": false,
                        "value": null,
                        "options": null
                      },
                      {
                        "index": 2,
                        "title": "Campo valor",
                        "type": "value",
                        "required": true,
                        "filled": false,
                        "value": null,
                        "options": null
                      },
                      {
                        "index": 3,
                        "title": "Campo radio",
                        "type": "radio",
                        "required": true,
                        "filled": false,
                        "value": null,
                        "options": [
                          {
                            "id": "1",
                            "description": "Nao",
                            "value": null
                          },
                          {
                            "id": "2",
                            "description": "Sim",
                            "value": null
                          }
                        ]
                      },
                      {
                        "index": 4,
                        "title": "Campo checkbox",
                        "type": "checkbox",
                        "required": true,
                        "filled": false,
                        "value": null,
                        "options": [
                          {
                            "id": "1",
                            "description": "Backup",
                            "value": false
                          },
                          {
                            "id": "2",
                            "description": "Restore",
                            "value": false
                          }
                        ]
                      }
                    ],
                    "name": "Checklist",
                    "pending": true,
                    "required": false,
                    "updated_at": "2026-08-27T21:04:10Z"
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Identificador do modelo de checklist que originou este checklist (cadastrado em Configurações).\n\nÉ nulo quando o checklist não veio de um modelo ou quando o modelo foi excluído"
                      },
                      "name": {
                        "type": "string",
                        "nullable": true,
                        "description": "Nome do checklist"
                      },
                      "description": {
                        "type": "string",
                        "nullable": true,
                        "description": "Descrição do checklist"
                      },
                      "required": {
                        "type": "boolean",
                        "description": "Indica se este checklist é obrigatório para o cliente/item de catálogo do ticket.\n\n**Atenção:** é um valor informativo e não determina o bloqueio do fechamento. Quem determina é `pending`"
                      },
                      "pending": {
                        "type": "boolean",
                        "description": "Indica se o checklist possui algum campo obrigatório sem preenchimento.\n\nUm checklist com `pending: true` **impede o fechamento do ticket**, mesmo que `required` seja `false`"
                      },
                      "created_at": {
                        "type": "string",
                        "description": "Data em que o checklist foi adicionado ao ticket"
                      },
                      "updated_at": {
                        "type": "string",
                        "description": "Data da última alteração do checklist"
                      },
                      "fields": {
                        "type": "array",
                        "description": "Campos que compõem o checklist, na ordem de exibição.\n\nUm campo impede o fechamento do ticket se, e somente se, `required` for `true` e `filled` for `false`",
                        "items": {
                          "type": "object",
                          "properties": {
                            "index": {
                              "type": "integer",
                              "description": "Posição do campo dentro deste checklist.\nÉ a única forma de referenciar um campo, pois campos não possuem identificador próprio.\n**Atenção:** é posicional, não é um ID persistente"
                            },
                            "title": {
                              "type": "string",
                              "nullable": true,
                              "description": "Nome do campo"
                            },
                            "type": {
                              "type": "string",
                              "nullable": true,
                              "description": "Tipo do campo: `text`, `textarea`, `value`, `radio` ou `checkbox`"
                            },
                            "required": {
                              "type": "boolean",
                              "description": "Indica se o preenchimento deste campo é obrigatório"
                            },
                            "filled": {
                              "type": "boolean",
                              "description": "Indica se o campo está preenchido.\nA regra varia conforme o tipo:\n- `text`, `textarea`, `value`: o atributo `value` possui conteúdo\n- `radio`: o atributo `value` possui o identificador da opção escolhida\n- `checkbox`: ao menos uma das `options` está marcada"
                            },
                            "value": {
                              "oneOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "integer"
                                },
                                {
                                  "type": "boolean"
                                }
                              ],
                              "nullable": true,
                              "description": "Valor preenchido no campo. Para campos do tipo `radio`, contém o identificador da opção escolhida. Para campos do tipo `checkbox`, é sempre nulo (o preenchimento fica em `options`)"
                            },
                            "options": {
                              "type": "array",
                              "nullable": true,
                              "description": "Opções disponíveis para campos do tipo `radio` e `checkbox`. Nulo para os demais tipos",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "oneOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "integer"
                                      }
                                    ],
                                    "nullable": true,
                                    "description": "Identificador da opção"
                                  },
                                  "description": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Texto da opção"
                                  },
                                  "value": {
                                    "type": "boolean",
                                    "nullable": true,
                                    "description": "Para campos do tipo `checkbox`, `true` indica que a opção está marcada"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "index",
                            "title",
                            "type",
                            "required",
                            "filled"
                          ]
                        }
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "required",
                      "pending",
                      "created_at",
                      "updated_at",
                      "fields"
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_ticket_number": [
                      "is not a number"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Visualizar tickets em que eu não sou o responsável"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/checklists/{id}/items/{index}": {
      "put": {
        "summary": "Preencher um campo do checklist",
        "tags": [
          "Checklists"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "Identificador do checklist, conforme o atributo `id` retornado em [Listar checklists do ticket](#get-/tickets/-ticket_number-/checklists)",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "Posição do campo dentro do checklist, conforme o atributo `index` retornado na listagem",
            "examples": {
              "Exemplo 1": {
                "value": 0
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Preenche um campo de um checklist do ticket.\n\n- O campo é identificado pela sua **posição** (`index`) dentro do checklist, pois campos não possuem identificador próprio. Consulte a listagem antes de escrever, porque a posição acompanha a ordem dos campos do checklist\n- Os atributos aceitos no corpo variam conforme o tipo do campo. Consulte a descrição do parâmetro `item`\n- Checklists que não tenham origem em um modelo cadastrado não podem ser atualizados por esta rota, pois não possuem `id`\n- Não é possível preencher checklists de um ticket fechado",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_tickets_ticket_number_checklists_id_items_index",
        "responses": {
          "200": {
            "description": "### **Campo preenchido com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 2,
                  "created_at": "2026-08-27T21:04:10Z",
                  "description": "this is it",
                  "fields": [
                    {
                      "index": 0,
                      "title": "Campo texto",
                      "type": "text",
                      "required": true,
                      "filled": true,
                      "value": "Cliente notificado",
                      "options": null
                    },
                    {
                      "index": 1,
                      "title": "Campo area",
                      "type": "textarea",
                      "required": true,
                      "filled": false,
                      "value": null,
                      "options": null
                    },
                    {
                      "index": 2,
                      "title": "Campo valor",
                      "type": "value",
                      "required": true,
                      "filled": false,
                      "value": null,
                      "options": null
                    },
                    {
                      "index": 3,
                      "title": "Campo radio",
                      "type": "radio",
                      "required": true,
                      "filled": false,
                      "value": null,
                      "options": [
                        {
                          "id": "1",
                          "description": "Nao",
                          "value": null
                        },
                        {
                          "id": "2",
                          "description": "Sim",
                          "value": null
                        }
                      ]
                    },
                    {
                      "index": 4,
                      "title": "Campo checkbox",
                      "type": "checkbox",
                      "required": true,
                      "filled": false,
                      "value": null,
                      "options": [
                        {
                          "id": "1",
                          "description": "Backup",
                          "value": false
                        },
                        {
                          "id": "2",
                          "description": "Restore",
                          "value": false
                        }
                      ]
                    }
                  ],
                  "name": "Checklist",
                  "pending": true,
                  "required": false,
                  "updated_at": "2026-08-27T21:04:11Z"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "nullable": true,
                      "description": "Identificador do modelo de checklist que originou este checklist (cadastrado em Configurações).\n\nÉ nulo quando o checklist não veio de um modelo ou quando o modelo foi excluído"
                    },
                    "name": {
                      "type": "string",
                      "nullable": true,
                      "description": "Nome do checklist"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true,
                      "description": "Descrição do checklist"
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Indica se este checklist é obrigatório para o cliente/item de catálogo do ticket.\n\n**Atenção:** é um valor informativo e não determina o bloqueio do fechamento. Quem determina é `pending`"
                    },
                    "pending": {
                      "type": "boolean",
                      "description": "Indica se o checklist possui algum campo obrigatório sem preenchimento.\n\nUm checklist com `pending: true` **impede o fechamento do ticket**, mesmo que `required` seja `false`"
                    },
                    "created_at": {
                      "type": "string",
                      "description": "Data em que o checklist foi adicionado ao ticket"
                    },
                    "updated_at": {
                      "type": "string",
                      "description": "Data da última alteração do checklist"
                    },
                    "fields": {
                      "type": "array",
                      "description": "Campos que compõem o checklist, na ordem de exibição.\n\nUm campo impede o fechamento do ticket se, e somente se, `required` for `true` e `filled` for `false`",
                      "items": {
                        "type": "object",
                        "properties": {
                          "index": {
                            "type": "integer",
                            "description": "Posição do campo dentro deste checklist.\nÉ a única forma de referenciar um campo, pois campos não possuem identificador próprio.\n**Atenção:** é posicional, não é um ID persistente"
                          },
                          "title": {
                            "type": "string",
                            "nullable": true,
                            "description": "Nome do campo"
                          },
                          "type": {
                            "type": "string",
                            "nullable": true,
                            "description": "Tipo do campo: `text`, `textarea`, `value`, `radio` ou `checkbox`"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Indica se o preenchimento deste campo é obrigatório"
                          },
                          "filled": {
                            "type": "boolean",
                            "description": "Indica se o campo está preenchido.\nA regra varia conforme o tipo:\n- `text`, `textarea`, `value`: o atributo `value` possui conteúdo\n- `radio`: o atributo `value` possui o identificador da opção escolhida\n- `checkbox`: ao menos uma das `options` está marcada"
                          },
                          "value": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "boolean"
                              }
                            ],
                            "nullable": true,
                            "description": "Valor preenchido no campo. Para campos do tipo `radio`, contém o identificador da opção escolhida. Para campos do tipo `checkbox`, é sempre nulo (o preenchimento fica em `options`)"
                          },
                          "options": {
                            "type": "array",
                            "nullable": true,
                            "description": "Opções disponíveis para campos do tipo `radio` e `checkbox`. Nulo para os demais tipos",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "oneOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "integer"
                                    }
                                  ],
                                  "nullable": true,
                                  "description": "Identificador da opção"
                                },
                                "description": {
                                  "type": "string",
                                  "nullable": true,
                                  "description": "Texto da opção"
                                },
                                "value": {
                                  "type": "boolean",
                                  "nullable": true,
                                  "description": "Para campos do tipo `checkbox`, `true` indica que a opção está marcada"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "index",
                          "title",
                          "type",
                          "required",
                          "filled"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "required",
                    "pending",
                    "created_at",
                    "updated_at",
                    "fields"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "### **Registro não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "item": [
                      "field of type \"text\" requires the value attribute"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Os atributos aceitos dependem do tipo do campo:\n\n- `text`, `textarea` e `value`: informe `value` com o conteúdo do campo\n- `radio`: informe `value` com o identificador da opção escolhida\n- `checkbox`: informe `options` com as opções que devem ser marcadas ou desmarcadas\n\nEnviar `value` para um campo do tipo `checkbox`, ou `options` para os demais tipos, resulta em erro.",
                "properties": {
                  "value": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      },
                      {
                        "type": "boolean"
                      }
                    ],
                    "nullable": true,
                    "description": "Valor do campo. Para campos do tipo `radio`, o identificador da opção escolhida. Envie nulo para limpar o preenchimento"
                  },
                  "options": {
                    "type": "array",
                    "description": "Opções que serão marcadas ou desmarcadas. Apenas para campos do tipo `checkbox`.\n\nAs opções não informadas permanecem como estão",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "oneOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "integer"
                            }
                          ],
                          "description": "Identificador da opção, conforme retornado na listagem de checklists"
                        },
                        "checked": {
                          "type": "boolean",
                          "description": "`true` marca a opção, `false` desmarca"
                        }
                      },
                      "required": [
                        "id",
                        "checked"
                      ]
                    }
                  }
                }
              },
              "examples": {
                "Preencher campo de texto": {
                  "summary": "Preencher campo de texto",
                  "value": {
                    "value": "Cliente notificado"
                  }
                },
                "Preencher campo de área de texto": {
                  "summary": "Preencher campo de área de texto",
                  "value": {
                    "value": "Observações do atendimento"
                  }
                },
                "Preencher campo de valor": {
                  "summary": "Preencher campo de valor",
                  "value": {
                    "value": "10"
                  }
                },
                "Selecionar opção em campo de escolha única": {
                  "summary": "Selecionar opção em campo de escolha única",
                  "value": {
                    "value": "2"
                  }
                },
                "Marcar opção em campo de múltipla escolha": {
                  "summary": "Marcar opção em campo de múltipla escolha",
                  "value": {
                    "options": [
                      {
                        "id": "2",
                        "checked": true
                      }
                    ]
                  }
                },
                "Marcar e desmarcar opções na mesma requisição": {
                  "summary": "Marcar e desmarcar opções na mesma requisição",
                  "value": {
                    "options": [
                      {
                        "id": "1",
                        "checked": true
                      },
                      {
                        "id": "2",
                        "checked": false
                      }
                    ]
                  }
                },
                "Limpar o preenchimento do campo": {
                  "summary": "Limpar o preenchimento do campo",
                  "value": {
                    "value": null
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/tickets/{ticket_number}/files": {
      "get": {
        "summary": "Listar arquivos em ticket",
        "tags": [
          "Tickets - Arquivos"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Lista os arquivos anexados em um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_files",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "content_type": "image/png",
                    "file_name": "api.png",
                    "size": 1234,
                    "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_ticket_number": [
                      "is not a number"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "post": {
        "summary": "Adicionar arquivos em ticket",
        "tags": [
          "Tickets - Arquivos"
        ],
        "description": "Adiciona arquivos nos anexos de um determinado ticket.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 2
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets_ticket_number_files",
        "responses": {
          "201": {
            "description": "### **Arquivos criados com sucesso**",
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 2,
                    "content_type": "image/png",
                    "file_name": "missing.png",
                    "size": 5265,
                    "url": "[AMBIENTE DE TESTES] - Link de acesso ao arquivo bloqueado"
                  }
                ],
                "schema": {
                  "type": "array",
                  "description": "Lista contendo os arquivos que estão anexados no ticket",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do arquivo"
                      },
                      "content_type": {
                        "type": "string",
                        "description": "Formato do arquivo"
                      },
                      "file_name": {
                        "type": "string",
                        "description": "Nome do arquivo"
                      },
                      "size": {
                        "type": "integer",
                        "description": "Tamanho do arquivo em bytes"
                      },
                      "url": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "files": [
                      "You are not sending a File. The value of 'files' items need to be a File type"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "files[]": {
                    "type": "array",
                    "description": "Lista com os arquivos que serão anexados no ticket.\n\nEsse parâmetro deve respeitar os seguintes critérios, para os anexos serem anexados corretamente na resposta:\n- O valor desse parâmetro deve ser uma lista de arquivos\n- É permitido anexar no máximo 10 arquivos por requisição\n- Cada arquivo deve possuir no máx 25 megabytes",
                    "maxItems": 10,
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                }
              }
            }
          },
          "required": true,
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita o seguinte atributo:"
        }
      }
    },
    "/tickets/{ticket_number}/files/{id}": {
      "delete": {
        "summary": "Excluir arquivo em ticket",
        "tags": [
          "Tickets - Arquivos"
        ],
        "description": "Remove um arquivo anexado em um determinado ticket.",
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "Exemplo 1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID do arquivo que será excluído",
            "examples": {
              "Exemplo 1": {
                "value": 3
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "delete_tickets_ticket_number_files_id",
        "responses": {
          "204": {
            "description": "### **Arquivo removido com sucesso**\n\n> Essa resposta não contem body"
          },
          "404": {
            "description": "### **Ticket ou resposta não encontrados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::TicketFile with 'id'=\"99999\" [WHERE \"service_desk_ticket_files\".\"ticket_id\" = $1]"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets": {
      "get": {
        "summary": "Listar tickets",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "filter_by",
            "in": "query",
            "description": "Filtrar tickets por status de abertura/fechamento. Quando informado, o parâmetro `is_closed` é ignorado.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "open",
                "closed",
                "all"
              ],
              "default": "open"
            },
            "examples": {
              "Abertos": {
                "value": "open",
                "summary": "Listar apenas tickets abertos"
              },
              "Fechados": {
                "value": "closed",
                "summary": "Listar apenas tickets fechados"
              },
              "Todos": {
                "value": "all",
                "summary": "Listar tickets abertos e fechados"
              }
            }
          },
          {
            "name": "desk_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets por mesas de serviço.\n\n * Deve ser informado uma lista com os IDs das mesas, separados por vírgula (`,`) e sem espaços: `desk_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por uma mesa"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de uma mesa"
              }
            },
            "required": false
          },
          {
            "name": "client_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets por clientes.\n\n * Deve ser informado uma lista com os IDs dos clientes, separados por vírgula (`,`) e sem espaços: `client_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por um cliente"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de um cliente"
              }
            },
            "required": false
          },
          {
            "name": "responsible_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets pelos usuários responsáveis.\n\n * Deve ser informado uma lista com os IDs dos usuários, separados por vírgula (`,`) e sem espaços: `responsible_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por um usuário"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de um usuário"
              }
            },
            "required": false
          },
          {
            "name": "status_id",
            "in": "query",
            "description": "Filtrar tickets por status",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": 1
              }
            },
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "priority_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets por prioridades.\n\n * Deve ser informado uma lista com os IDs das prioridades, separados por vírgula (`,`) e sem espaços: `priority_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por uma prioridade"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de uma prioridade"
              }
            },
            "required": false
          },
          {
            "name": "services_catalogs_item_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets por item do catálogo de serviço.\n\n * Deve ser informado uma lista com os IDs dos itens de catálogos, separados por vírgula (`,`) e sem espaços: `services_catalogs_item_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por um usuário"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de um usuário"
              }
            },
            "required": false
          },
          {
            "name": "stage_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets por estágios.\n\n * Deve ser informado uma lista com os IDs dos estágios, separados por vírgula (`,`) e sem espaços: `stage_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por um estágio"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de um estágio"
              }
            },
            "required": false
          },
          {
            "name": "requestor_ids",
            "in": "query",
            "style": "form",
            "explode": false,
            "description": "Filtrar tickets pelo ID de um solicitante\n\n**OBS:** O solicitante precisa estar selecionado no ticket para conseguir ser encontrado por esse filtro. Se tem apenas o email preenchido, você pode usar o parâmetro :requestor_email\n\n * Deve ser informado uma lista com os IDs dos solicitantes, separados por vírgula (`,`) e sem espaços: `requestor_ids=1,2,3`\n\n * O número máximo de itens permitidos é **15**.\n\n * Valores duplicados não são permitidos.",
            "schema": {
              "type": "array",
              "maxItems": 15,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": [
                  1
                ],
                "summary": "Filtrar tickets por um solicitante"
              },
              "2": {
                "value": [
                  1,
                  2
                ],
                "summary": "Filtrar tickets por mais de um solicitante"
              }
            },
            "required": false
          },
          {
            "name": "requestor_email",
            "in": "query",
            "description": "Filtrar tickets pelo email do solicitante",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "solicitante@mail.com"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_filled_entity",
            "in": "query",
            "description": "Exibir os campos personalizados que estão preenchidos e relacionados nos tickets",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false
          },
          {
            "name": "has_jira_issue",
            "in": "query",
            "description": "Filtrar tickets por vínculo com Jira. Por padrão será `false` e o filtro segue como é atualmente. Caso deseje filtrar apenas os tickets que possuem vínculo com issues do Jira, utilize `true`",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false
          },
          {
            "name": "jira_key",
            "in": "query",
            "description": "Filtrar tickets por uma chave específica do Jira (Jira Key). Ao informar uma chave, serão retornados todos os tickets vinculados a essa issue do Jira",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "PROJ-123"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_by_way_of",
            "in": "query",
            "description": "Filtrar tickets pelo método de criação. Você deve informar o número referente a forma de criação:\n * `0` - Tiflux Web\n * `1` - Tiflux Agent\n * `2` - Chat Widget\n * `3` - Whatsapp\n * `4` - Email\n * `5` - External form\n * `6` - Tiflux Mobile\n * `7` - Tiflux API\n * `8` - Chat\n * `9` - Recurrent activity\n * `10` - Trigger\n * `11` - Ticket Group\n * `12` - AI Agent\n",
            "schema": {
              "type": "integer",
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12"
              ]
            },
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "description": "Parâmetro de busca que permite realizar buscas detalhadas e específicas em tickets. Com ele, é possível procurar por vários campos e aplicar condições especiais para uma pesquisa avançada.\n\n**Campos de busca**\n\nAo utilizar esse parâmetro, os tickets serão filtrados pelos seguintes campos:        \n * Título do ticket\n * Nome do cliente\n * Nome da mesa\n * Número do ticket\n * Nome do responsável\n * Caracteres iniciais da descrição do ticket\n",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_type",
            "in": "query",
            "description": "Filtrar tickets por data de criação e data de resolução. Favor informar o parâmetro `start_datetime` ou `end_datetime` para uma busca mais precisa",
            "type": "string",
            "examples": {
              "0": {
                "value": "created_at"
              },
              "1": {
                "value": "solved_in_time"
              }
            },
            "required": false,
            "schema": {
              "type": "string",
              "default": "created_at"
            }
          },
          {
            "name": "start_datetime",
            "in": "query",
            "description": "Filtrar tickets cuja data de criação ou resolução seja posterior à data informada, conforme definido em `date_type`. Favor incluir a data com horário e timezone para uma busca mais precisa.\n\nNo formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601): YYYY-MM-DDTHH:MM:SSZ",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-05-15T20:42:30Z"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_datetime",
            "in": "query",
            "description": "Filtrar tickets cuja data de criação ou resolução seja anterior à data informada, conforme definido em `date_type`. Favor incluir a data com horário e timezone para uma busca mais precisa.\n\nNo formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601): YYYY-MM-DDTHH:MM:SSZ",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-05-15T20:42:30Z"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "update_start_datetime",
            "in": "query",
            "description": "Filtrar tickets pela data de atualização (que foram atualizados após essa data). Favor incluir a data com horário e timezone para uma busca mais precisa.\n\nNo formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601): YYYY-MM-DDTHH:MM:SSZ",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-05-15T20:42:30Z"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "update_end_datetime",
            "in": "query",
            "description": "Filtrar tickets pela data de atualização (que foram atualizados antes dessa data). Favor incluir a data com horário e timezone para uma busca mais precisa.\n\nNo formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601): YYYY-MM-DDTHH:MM:SSZ",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "2024-05-15T20:42:30Z"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os tickets em sua organização, retornando apenas informações básicas dos tickets. Para obter detalhes completos sobre um ticket específico, utilize a requisição [Exibir ticket](#get-/tickets/-ticket_number-).\n\n### **Campos Personalizados**\n* Por padrão, os campos personalizados dos tickets **não** serão exibidos nessa requisição\n* Para incluí-los, utilize o parâmetro `include_filled_entity=true`.\n* O uso de `include_filled_entity` **não é compatível** com tickets fechados (`filter_by=closed` ou `filter_by=all`), uma vez que não é permitido listar campos personalizados de tickets fechados.\n* Ao utilizar esse parâmetro, será adicionado um atributo de nome `entity_fields` na resposta dessa requisição. Contendo a lista de campos personalizados que estão **vinculados** no ticket e **possuem valores preenchidos**.\n\n\n\n\n**OBS:** Essa rota só irá listar os tickets que o seu usuário possui acesso.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Listagem padrão de tickets": {
                    "value": [
                      {
                        "ticket_number": 29,
                        "client": {
                          "id": 41,
                          "name": "Bartell-Kautzer"
                        },
                        "created_at": "2026-08-27T20:34:13Z",
                        "created_by_id": 1,
                        "created_by_way_of": "Tiflux Web",
                        "desk": {
                          "id": 33,
                          "name": "API"
                        },
                        "followers": "dino@rodriguez.test",
                        "is_closed": false,
                        "is_revised": false,
                        "last_answer_type": null,
                        "priority": {
                          "id": 66,
                          "name": "Low"
                        },
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": "bradly@rosenbaum.test",
                          "name": "teste",
                          "ramal": null,
                          "telephone": "+45892156478"
                        },
                        "responsible": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-31T09:30:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "solve_expiration": "2026-09-04T15:00:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T09:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 105,
                          "name": "N2"
                        },
                        "status": {
                          "id": 97,
                          "name": "Opened"
                        },
                        "title": "Ticket with stage changes",
                        "updated_at": "2026-08-27T21:04:13Z",
                        "updated_by_id": 1
                      },
                      {
                        "ticket_number": 28,
                        "client": {
                          "id": 39,
                          "name": "Tremblay LLC"
                        },
                        "created_at": "2026-08-27T21:04:13Z",
                        "created_by_id": 1,
                        "created_by_way_of": "Tiflux Web",
                        "desk": {
                          "id": 30,
                          "name": "API"
                        },
                        "followers": "lilia@johnston.test",
                        "is_closed": false,
                        "is_revised": false,
                        "last_answer_type": null,
                        "priority": {
                          "id": 60,
                          "name": "Low"
                        },
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": "anika_nader@schultz-champlin.test",
                          "name": "teste",
                          "ramal": null,
                          "telephone": "+45892156478"
                        },
                        "responsible": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-31T09:30:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "solve_expiration": "2026-09-04T15:00:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T12:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 93,
                          "name": "Pending"
                        },
                        "status": {
                          "id": 88,
                          "name": "Opened"
                        },
                        "title": "To be, or not to be: that is the question",
                        "updated_at": "2026-08-27T21:04:13Z",
                        "updated_by_id": 1
                      }
                    ]
                  },
                  "Listar tickets com entidades": {
                    "value": [
                      {
                        "ticket_number": 29,
                        "client": {
                          "id": 41,
                          "name": "Bartell-Kautzer"
                        },
                        "created_at": "2026-08-27T20:34:13Z",
                        "created_by_id": 1,
                        "created_by_way_of": "Tiflux Web",
                        "desk": {
                          "id": 33,
                          "name": "API"
                        },
                        "entity_fields": [

                        ],
                        "followers": "dino@rodriguez.test",
                        "is_closed": false,
                        "is_revised": false,
                        "last_answer_type": null,
                        "priority": {
                          "id": 66,
                          "name": "Low"
                        },
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": "bradly@rosenbaum.test",
                          "name": "teste",
                          "ramal": null,
                          "telephone": "+45892156478"
                        },
                        "responsible": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-31T09:30:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "solve_expiration": "2026-09-04T15:00:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T09:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 105,
                          "name": "N2"
                        },
                        "status": {
                          "id": 97,
                          "name": "Opened"
                        },
                        "title": "Ticket with stage changes",
                        "updated_at": "2026-08-27T21:04:13Z",
                        "updated_by_id": 1
                      },
                      {
                        "ticket_number": 28,
                        "client": {
                          "id": 39,
                          "name": "Tremblay LLC"
                        },
                        "created_at": "2026-08-27T21:04:13Z",
                        "created_by_id": 1,
                        "created_by_way_of": "Tiflux Web",
                        "desk": {
                          "id": 30,
                          "name": "API"
                        },
                        "entity_fields": [

                        ],
                        "followers": "lilia@johnston.test",
                        "is_closed": false,
                        "is_revised": false,
                        "last_answer_type": null,
                        "priority": {
                          "id": 60,
                          "name": "Low"
                        },
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": "anika_nader@schultz-champlin.test",
                          "name": "teste",
                          "ramal": null,
                          "telephone": "+45892156478"
                        },
                        "responsible": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-31T09:30:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "solve_expiration": "2026-09-04T15:00:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T12:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 93,
                          "name": "Pending"
                        },
                        "status": {
                          "id": 88,
                          "name": "Opened"
                        },
                        "title": "To be, or not to be: that is the question",
                        "updated_at": "2026-08-27T21:04:13Z",
                        "updated_by_id": 1
                      }
                    ]
                  },
                  "Listar tickets com vínculo Jira": {
                    "value": [
                      {
                        "ticket_number": 30,
                        "client": {
                          "id": 39,
                          "name": "Tremblay LLC"
                        },
                        "created_at": "2026-08-27T21:04:14Z",
                        "created_by_id": null,
                        "created_by_way_of": "Tiflux Web",
                        "desk": {
                          "id": 27,
                          "name": "API"
                        },
                        "followers": "booker@wisozk-adams.example",
                        "is_closed": false,
                        "is_revised": false,
                        "jira_issues": [
                          {
                            "id": "55213",
                            "key": "TEST-147",
                            "link": "https://example.atlassian.net/browse/TEST-147",
                            "status": "In Progress"
                          }
                        ],
                        "last_answer_type": null,
                        "priority": {
                          "id": 53,
                          "name": "High"
                        },
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": "johnathon@schroeder-abbott.test",
                          "name": "teste",
                          "ramal": null,
                          "telephone": "+45892156478"
                        },
                        "responsible": {
                          "id": 1,
                          "name": "Kum Rau Sr."
                        },
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-28T12:00:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "solve_expiration": "2026-09-01T16:30:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T12:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 84,
                          "name": "Pending"
                        },
                        "status": {
                          "id": 79,
                          "name": "Opened"
                        },
                        "title": "Only a test",
                        "updated_at": "2026-08-27T21:04:14Z",
                        "updated_by_id": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "desk_ids - Informado como uma string": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `desk_ids`?**\nO valor do parâmetro `desk_ids` deve ser informado como **uma lista de até 15 números inteiros**, representando os IDs das mesas.\n\nEsses números devem estar **separados por vírgulas** e **não podem se repetir**.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "desk_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "start_datetime - Data inválida": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `start_datetime`?**\nO valor do parâmetro `start_datetime` deve ser informado como **uma string no formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)**.\n\nComo por exemplo:\n- 2024-05-15T20:42:30Z\n- 2024-05-15T17:42:30-03:00\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "start_datetime": [
                          "invalid datetime"
                        ]
                      }
                    }
                  },
                  "created_by_way_of - Informando o número 13": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `created_by_way_of`?**\nO valor do parâmetro `created_by_way_of` deve ser informado como **um número entre 0-12**.\n\nConfira logo acima na documentação a quais formas de criação os números se referem.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "created_by_way_of": [
                          "must be less than or equal to 12"
                        ]
                      }
                    }
                  },
                  "client_ids - Com os IDs separados por espaço": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `client_ids`?**\nO parâmetro `client_ids` deve ser informado como **uma lista de até 15 números inteiros**, representando os IDs dos clientes.\n\nEsses números devem estar **separados por vírgulas** e **não podem se repetir**.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "client_ids": [
                          "must be a comma-separated list of integers"
                        ]
                      }
                    }
                  },
                  "end_datetime - Precisa ser maior que start_datetime": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `end_datetime`?**\nO valor do parâmetro `end_datetime` deve ser informado como **uma string no formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)**. E deve conter uma data/hora **posterior** ao valor informado em **`start_datetime`**.\n\n> Caso `end_datetime` seja igual ou anterior a `start_datetime`, o sistema retornará erro de validação.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "end_datetime": [
                          "must be greater than :start_datetime (2020-01-01)"
                        ]
                      }
                    }
                  },
                  "requestor_ids - Informando 16 valores": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `requestor_ids`?**\nO parâmetro `requestor_ids` deve ser informado como **uma lista de até 15 números inteiros**, representando os IDs dos solicitantes.\n\nEsses números devem estar **separados por vírgulas** e **não podem se repetir**.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "requestor_ids": [
                          "cannot have more than 15 items"
                        ]
                      }
                    }
                  },
                  "stage_ids - Informando valores duplicados": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `stage_ids`?**\nO parâmetro `stage_ids` deve ser informado como **uma lista de até 15 números inteiros**, representando os IDs dos estágios.\n\nEsses números devem estar **separados por vírgulas** e **não podem se repetir**.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "stage_ids": [
                          "cannot contain duplicate values"
                        ]
                      }
                    }
                  },
                  "filter_by - Valor inválido": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `filter_by`?**\nO parâmetro `filter_by` deve ser informado com um dos seguintes valores: `open`, `closed` ou `all`.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "filter_by": [
                          "invalid is not a valid option. Filter by must be 'open', 'closed', 'canceled' or 'all'"
                        ]
                      }
                    }
                  },
                  "has_jira_issue - Valor inválido": {
                    "description": "### **Como corrigir o erro `42201` para o parâmetro `has_jira_issue`?**\nO parâmetro `has_jira_issue` deve ser informado com um dos seguintes valores: `true` ou `false`.\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "has_jira_issue": [
                          "invalid is not a valid option. Has jira issue must be 'true' or 'false'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "red",
            "label": "Visualizar tickets em que eu não sou o responsável"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "post": {
        "summary": "Criar ticket",
        "tags": [
          "Tickets"
        ],
        "description": "Este método possibilita a criação de um novo ticket.\n\n\nOs campos `priority_id` e `services_catalogs_item_id` dependem diretamente da configuração da mesa:\n- Se a mesa exigir catálogo na abertura do ticket (campo *require_service_catalog_open_ticket* na mesa for `true`), o atributo `services_catalogs_item_id` deve ser preenchido com a id de um item do catálogo de serviço vinculado a esta mesa.\n\n- Caso seja `false`, a mesa exige uma prioridade, logo, o campo `priority_id` deve ser preenchido com o id de uma prioridade que esteja cadastrada na mesa.",
        "parameters": [

        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "post_tickets",
        "responses": {
          "201": {
            "description": "### **Ticket criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "ticket": {
                    "ticket_number": 34,
                    "checklists_summary": {
                      "total": 0,
                      "pending": 0,
                      "required_pending": 0,
                      "missing_required_checklists": [

                      ],
                      "blocks_close": false
                    },
                    "client": {
                      "id": 2,
                      "name": "Schowalter LLC",
                      "social": "Lehner LLC",
                      "social_revenue": "48332065000160",
                      "status": true
                    },
                    "closed_ticket_total_spent_solving": null,
                    "created_at": "2026-08-27T21:04:15Z",
                    "created_by_id": 1,
                    "created_by_way_of": "Tiflux API",
                    "created_with_ai": false,
                    "custom_fields": null,
                    "description": "Descrição do ticket criado pela API",
                    "desk": {
                      "id": 1,
                      "active": true,
                      "appointment_type": "Appointments with no Valorization",
                      "display_name": "API",
                      "name": "API"
                    },
                    "equipment": {
                      "id": null,
                      "name": null,
                      "group_id": null,
                      "user_id": null
                    },
                    "feedback": null,
                    "followers": null,
                    "is_closed": false,
                    "is_duplicating": false,
                    "is_grouped": false,
                    "is_revised": false,
                    "last_answer_type": null,
                    "last_reopen_date": null,
                    "priority": {
                      "id": 1,
                      "end_time": "24:00",
                      "name": "High",
                      "order": 1,
                      "start_time": "04:00"
                    },
                    "priority_change_reason": null,
                    "reopen_count": 0,
                    "requestor": {
                      "id": null,
                      "email": null,
                      "name": null,
                      "ramal": null,
                      "telephone": ""
                    },
                    "responsible": null,
                    "services_catalog": null,
                    "sla_info": {
                      "attend_expiration": "2026-08-28T12:00:00Z",
                      "attend_sla": true,
                      "attend_sla_solution": true,
                      "desactivate_sla_reason": null,
                      "solve_expiration": "2026-09-01T16:30:00Z",
                      "solved_in_time": null,
                      "stage_expiration": "2026-08-28T12:00:00Z",
                      "stopped": false
                    },
                    "stage": {
                      "id": 1,
                      "first_stage": true,
                      "last_stage": false,
                      "max_time": "04:00",
                      "name": "Pending"
                    },
                    "status": {
                      "id": 1,
                      "default_canceled": false,
                      "default_close": false,
                      "default_open": true,
                      "name": "Opened"
                    },
                    "ticket_children": [

                    ],
                    "ticket_reference": {
                    },
                    "title": "Título do ticket",
                    "updated_at": "2026-08-27T21:04:15Z",
                    "updated_by_id": 1,
                    "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/34/b06a34fa-714b-4025-b554-29c4ef05e650/cb2afda4-bef8-4bd8-86f9-5c938dcdb151/1",
                    "url_internal_path": "http://localhost/v/tickets/34/basic_info",
                    "worked_hours": "00:00"
                  }
                }
              }
            }
          },
          "207": {
            "description": "### **Ticket criado com sucesso, com campos personalizados**\n\nAo informar o atributo \"*entities*\" nesta requisição e obtiver sucesso na criação do ticket, você receberá uma resposta 207 contendo dois objetos no corpo da resposta: \n- **entities_errors**: Lista os campos personalizados que apresentaram falhas na atualização, com detalhes sobre os motivos dos erros. Se um campo não aparecer nesta lista, significa que ele foi atualizado com sucesso.\n- **ticket**: Contém as informações do ticket que acabou de ser criado (será um objeto do tipo Exibir ticket com `include_filled_entity=true`). O ticket será criado independentemente se os valores fornecidos em \"*entities*\" apresentaram falhas ou não.",
            "content": {
              "application/json": {
                "examples": {
                  "Criação com sucesso": {
                    "value": {
                      "entities_errors": null,
                      "ticket": {
                        "ticket_number": 41,
                        "checklists_summary": {
                          "total": 0,
                          "pending": 0,
                          "required_pending": 0,
                          "missing_required_checklists": [

                          ],
                          "blocks_close": false
                        },
                        "client": {
                          "id": 2,
                          "name": "Schowalter LLC",
                          "social": "Lehner LLC",
                          "social_revenue": "48332065000160",
                          "status": true
                        },
                        "closed_ticket_total_spent_solving": null,
                        "created_at": "2026-08-27T21:04:16Z",
                        "created_by_id": 1,
                        "created_by_way_of": "Tiflux API",
                        "created_with_ai": false,
                        "custom_fields": null,
                        "description": "Descrição do ticket criado pela API",
                        "desk": {
                          "id": 1,
                          "active": true,
                          "appointment_type": "Appointments with no Valorization",
                          "display_name": "API",
                          "name": "API"
                        },
                        "entity_fields": [
                          {
                            "id": 73,
                            "entity_field_id": 74,
                            "entity_id": 16,
                            "field_type": "text",
                            "name": "Campo de texto no ticket",
                            "options": null,
                            "required": false,
                            "value": "Teste"
                          }
                        ],
                        "equipment": {
                          "id": null,
                          "name": null,
                          "group_id": null,
                          "user_id": null
                        },
                        "feedback": null,
                        "followers": null,
                        "is_closed": false,
                        "is_duplicating": false,
                        "is_grouped": false,
                        "is_revised": false,
                        "last_answer_type": null,
                        "last_reopen_date": null,
                        "priority": {
                          "id": 1,
                          "end_time": "24:00",
                          "name": "High",
                          "order": 1,
                          "start_time": "04:00"
                        },
                        "priority_change_reason": null,
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": null,
                          "name": null,
                          "ramal": null,
                          "telephone": ""
                        },
                        "responsible": null,
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-28T12:00:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "desactivate_sla_reason": null,
                          "solve_expiration": "2026-09-01T16:30:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T12:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 1,
                          "first_stage": true,
                          "last_stage": false,
                          "max_time": "04:00",
                          "name": "Pending"
                        },
                        "status": {
                          "id": 1,
                          "default_canceled": false,
                          "default_close": false,
                          "default_open": true,
                          "name": "Opened"
                        },
                        "ticket_children": [

                        ],
                        "ticket_reference": {
                        },
                        "title": "Título do ticket",
                        "updated_at": "2026-08-27T21:04:16Z",
                        "updated_by_id": 1,
                        "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/41/72fb04c0-3f96-4da4-ab5d-e1bdf1ac8099/cb2afda4-bef8-4bd8-86f9-5c938dcdb151/1",
                        "url_internal_path": "http://localhost/v/tickets/41/basic_info",
                        "worked_hours": "00:00"
                      }
                    }
                  },
                  "Criação com falha nas entidades informadas": {
                    "value": {
                      "entities_errors": {
                        "entities": [
                          "The property '#/0/entity_field_id': Couldn't find EntityField with id=0 applied in ServiceDesk::Ticket. The entity may be inactive or not exist",
                          "The property '#/1/' did not contain a required property of 'entity_field_id' in schema 34337688-21eb-563d-8c1e-79a0682d932b"
                        ]
                      },
                      "ticket": {
                        "ticket_number": 43,
                        "checklists_summary": {
                          "total": 0,
                          "pending": 0,
                          "required_pending": 0,
                          "missing_required_checklists": [

                          ],
                          "blocks_close": false
                        },
                        "client": {
                          "id": 2,
                          "name": "Schowalter LLC",
                          "social": "Lehner LLC",
                          "social_revenue": "48332065000160",
                          "status": true
                        },
                        "closed_ticket_total_spent_solving": null,
                        "created_at": "2026-08-27T21:04:16Z",
                        "created_by_id": 1,
                        "created_by_way_of": "Tiflux API",
                        "created_with_ai": false,
                        "custom_fields": null,
                        "description": "Descrição do ticket criado pela API",
                        "desk": {
                          "id": 1,
                          "active": true,
                          "appointment_type": "Appointments with no Valorization",
                          "display_name": "API",
                          "name": "API"
                        },
                        "entity_fields": [

                        ],
                        "equipment": {
                          "id": null,
                          "name": null,
                          "group_id": null,
                          "user_id": null
                        },
                        "feedback": null,
                        "followers": null,
                        "is_closed": false,
                        "is_duplicating": false,
                        "is_grouped": false,
                        "is_revised": false,
                        "last_answer_type": null,
                        "last_reopen_date": null,
                        "priority": {
                          "id": 1,
                          "end_time": "24:00",
                          "name": "High",
                          "order": 1,
                          "start_time": "04:00"
                        },
                        "priority_change_reason": null,
                        "reopen_count": 0,
                        "requestor": {
                          "id": null,
                          "email": null,
                          "name": null,
                          "ramal": null,
                          "telephone": ""
                        },
                        "responsible": null,
                        "services_catalog": null,
                        "sla_info": {
                          "attend_expiration": "2026-08-28T12:00:00Z",
                          "attend_sla": true,
                          "attend_sla_solution": true,
                          "desactivate_sla_reason": null,
                          "solve_expiration": "2026-09-01T16:30:00Z",
                          "solved_in_time": null,
                          "stage_expiration": "2026-08-28T12:00:00Z",
                          "stopped": false
                        },
                        "stage": {
                          "id": 1,
                          "first_stage": true,
                          "last_stage": false,
                          "max_time": "04:00",
                          "name": "Pending"
                        },
                        "status": {
                          "id": 1,
                          "default_canceled": false,
                          "default_close": false,
                          "default_open": true,
                          "name": "Opened"
                        },
                        "ticket_children": [

                        ],
                        "ticket_reference": {
                        },
                        "title": "Título do ticket",
                        "updated_at": "2026-08-27T21:04:16Z",
                        "updated_by_id": 1,
                        "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/43/5bda4f9e-20fc-45bb-9e59-f52973957a51/cb2afda4-bef8-4bd8-86f9-5c938dcdb151/1",
                        "url_internal_path": "http://localhost/v/tickets/43/basic_info",
                        "worked_hours": "00:00"
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum valor de atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "Faltou informar parâmetros obrigatórios": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "desk_id": [
                          "can't be blank",
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Referência inválida": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "ticket_reference_number": [
                          "ticket not found or you do not have permission to create this reference"
                        ]
                      }
                    }
                  },
                  "Formato das entidades está inválido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "entities": [
                          "unexpected token at '{ value }]'"
                        ]
                      }
                    }
                  },
                  "Prioridade não existe": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "priority_id": [
                          "priority not found or does not belongs to desk"
                        ]
                      }
                    }
                  },
                  "Problemas com os arquivos informados": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "files": [
                          "You are not sending a File. The value of 'files' items need to be a File type"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "example": "Título do ticket"
                  },
                  "description": {
                    "type": "string",
                    "example": "Descrição do ticket"
                  },
                  "client_id": {
                    "type": "integer",
                    "description": "ID do cliente em que o ticket será aberto",
                    "example": 21
                  },
                  "desk_id": {
                    "type": "integer",
                    "description": "ID da mesa em que o ticket será aberto",
                    "example": 42
                  },
                  "priority_id": {
                    "type": "integer",
                    "description": "ID da prioridade em que o ticket será aberto. Obrigatório apenas se o parâmetro \"*Selecionar item do catálogo de serviço antes de abrir o ticket*\" for falso na mesa selecionada"
                  },
                  "services_catalogs_item_id": {
                    "type": "integer",
                    "description": "ID do item de catálogo de serviços em que o ticket será aberto. Obrigatório apenas se o parâmetro \"*Selecionar item do catálogo de serviço antes de abrir o ticket*\" for verdadeiro na mesa selecionada"
                  },
                  "files[]": {
                    "type": "array",
                    "description": "Lista com os arquivos que serão anexados no ticket.\n\nEsse parâmetro deve respeitar os seguintes critérios para os anexos serem anexados corretamente:\n- O valor desse parâmetro deve ser uma lista de arquivos\n- É permitido anexar no máximo 10 arquivos por requisição\n- Cada arquivo deve possuir no máx 25 megabytes",
                    "maxItems": 10,
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  },
                  "status_id": {
                    "type": "integer",
                    "description": "ID do status em que o ticket será aberto. Esse parâmetro não é obrigatório. Pois se ele não for informado, o ticket será criado no status padrão de tickets abertos da mesa selecionada"
                  },
                  "requestor_id": {
                    "type": "integer",
                    "description": "Ao invés de informar os campos do solicitante um a um (requestor_name, requestor_email, requestor_telephone e etc), você pode apenas passar o id dele aqui nesse parâmetro, que o solicitante será vinculado ao ticket com as informações preenchidas. \n\nO solicitante deve pertencer ao cliente selecionado."
                  },
                  "requestor_name": {
                    "type": "string",
                    "description": "Nome do Solicitante"
                  },
                  "requestor_email": {
                    "type": "string",
                    "description": "Email do Solicitante"
                  },
                  "requestor_telephone": {
                    "type": "string",
                    "description": "Telefone do Solicitante"
                  },
                  "requestor_country": {
                    "type": "string",
                    "default": "BR",
                    "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\n\nEste atributo será utilizado para validar se o número de telefone do solicitante (requestor_telephone), é um número válido em algum outro país"
                  },
                  "requestor_ramal": {
                    "type": "integer",
                    "description": "Ramal do Solicitante"
                  },
                  "equipment_id": {
                    "type": "integer",
                    "description": "ID do equipamento que será vinculado ao ticket"
                  },
                  "equipment_group_id": {
                    "type": "integer",
                    "description": "ID do grupo de equipamentos que será vinculado ao ticket"
                  },
                  "equipment_user_id": {
                    "type": "integer",
                    "description": "ID do usuário do equipamento que será vinculado ao ticket"
                  },
                  "stage_id": {
                    "type": "integer",
                    "description": "ID do estágio em que o ticket será aberto. Esse parâmetro não é obrigatório. Pois se ele não for informado, o ticket será criado no estágio pendente da mesa selecionada"
                  },
                  "responsible_id": {
                    "type": "integer",
                    "description": "ID do responsável que será atribuído ao ticket"
                  },
                  "ticket_reference_number": {
                    "type": "integer",
                    "description": "Número do ticket que será referenciado (atribuído como ticket pai) ao ticket criado"
                  },
                  "entities": {
                    "type": "object",
                    "description": "Esse parâmetro deve ser uma lista (array) do seguinte objeto:",
                    "example": [
                      {
                        "entity_field_id": 1,
                        "value": "teste"
                      }
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "entity_field_id": {
                        "type": "integer",
                        "description": "Identificador único do campo da entidade que será atualizada"
                      },
                      "entity_field_option_id": {
                        "type": "integer",
                        "nullable": true,
                        "default": null,
                        "description": "Identificador da opção do campo personalizado a ser atualizado.\nEste atributo só deve ser informado para campos do tipo `checkbox`"
                      },
                      "value": {
                        "type": "string",
                        "nullable": true,
                        "default": null,
                        "description": "Novo valor do campo personalizado.\nO formato específico de como o valor dessa string deve ser preenchido, depende do tipo de campo personalizado. Consulte a documentação para obter mais detalhes"
                      },
                      "country_code": {
                        "type": "string",
                        "default": "\"BR\"",
                        "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\nEste atributo será utilizado para validar se o número de telefone informado é um número válido no país informado.\nEsse atributo só será utilizado ao atualizar um campo personalizado do tipo `phone`"
                      }
                    }
                  },
                  "followers": {
                    "type": "string",
                    "description": "Email dos seguidores, separados por vírgula",
                    "example": "seguidor1@email.com,seguidor2@email.com"
                  }
                },
                "required": [
                  "title",
                  "description",
                  "client_id",
                  "desk_id"
                ]
              }
            }
          },
          "description": "O body dessa requisição é do tipo multipart/form-data e aceita os seguintes atributos:"
        }
      }
    },
    "/tickets/{ticket_number}/close": {
      "put": {
        "summary": "Fechar ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será fechado",
            "examples": {
              "1": {
                "value": 37
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Fecha um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_tickets_ticket_number_close",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "message": "Ticket 25 closed successfully"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Não foi possível fechar o ticket devido ao não cumprimento de critérios necessários**\n  Para fechar um ticket, é necessário atender a determinados requisitos definidos pelas regras de negócio do sistema. Os critérios que precisam ser cumpridos estão detalhados no atributo `detail` dessa resposta.",
            "content": {
              "application/json": {
                "examples": {
                  "Não pode fechar no estágio pendente": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "stage_id": [
                          "Can't close ticket in first stage"
                        ]
                      }
                    }
                  },
                  "Não pode fechar se houverem pré-apontamentos pendentes de preenchimento": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "pre_appointments": [
                          "This ticket has pre appointment(s), remove or complete them to close"
                        ]
                      }
                    }
                  },
                  "O SLA do ticket não pode estar pausado para fechar": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "stopped": [
                          "Unable to close ticket with stopped SLA"
                        ]
                      }
                    }
                  },
                  "Não pode haver empréstimos pendentes no ticket": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "equipment_loans": [
                          "Can't close ticket with active equipment loans"
                        ]
                      }
                    }
                  },
                  "Não pode haver checklists obrigatórios pendentes de preenchimento": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "ticket_checklists": [
                          "There are required checklists not filled"
                        ]
                      }
                    }
                  },
                  "O ticket deve possuir um responsável": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "responsible_id": [
                          "The ticket cannot be closed without a responsible"
                        ]
                      }
                    }
                  },
                  "Se a mesa possui apontamentos, deve haver pelo menos um apontamento no ticket": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "appointments": [
                          "There must be at least one appointment to close this ticket"
                        ]
                      }
                    }
                  },
                  "Se a mesa não possui apontamentos, deve haver pelo menos uma comunicação com o cliente": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "ticket_answers": [
                          "There must be at least one ticket answer to close this ticket"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}": {
      "get": {
        "summary": "Exibir ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será exibido",
            "examples": {
              "1": {
                "value": 222
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "include_filled_entity",
            "in": "query",
            "description": "Ao utilizar esse parâmetro, será adicionado um atributo de nome `entity_fields` na resposta dessa requisição. Contendo a lista de campos personalizados que estão **vinculados** no ticket e **possuem valores preenchidos**",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false
          },
          {
            "name": "show_entities",
            "in": "query",
            "description": "Ao utilizar esse parâmetro, será adicionado um atributo de nome `entities` na resposta dessa requisição. Contendo a lista de campos personalizados que estão **vinculados** no ticket",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "required": false
          }
        ],
        "description": "Exibe informações detalhadas de um determinado ticket.\n### **Campos Personalizados**\n* Por padrão, os campos personalizados dos tickets **não** serão exibidos nessa requisição\n* No entanto, você pode optar por incluir os campos utilizando os parâmetros: `include_filled_entity` ou `show_entities`.\n\n### **Sobre o atributo `checklists_summary`**\n\nResumo dos checklists do ticket, útil para verificar se o ticket pode ser fechado sem precisar de uma requisição adicional.\n\n- `total`: quantidade de checklists adicionados ao ticket\n- `pending`: quantidade de checklists com ao menos um campo obrigatório sem preenchimento. **Qualquer valor maior que zero impede o fechamento do ticket**, mesmo que `required_pending` seja zero\n- `required_pending`: subconjunto de `pending` que também é obrigatório para o cliente/item de catálogo do ticket. É um valor **informativo**\n- `missing_required_checklists`: nomes dos checklists obrigatórios para o cliente/item de catálogo do ticket que ainda **não** foram adicionados a ele. A comparação é feita por nome, portanto renomear um modelo de checklist faz com que ele volte a ser listado aqui. Checklists obrigatórios que não estejam vinculados a nenhum cliente nem a nenhum item de catálogo não aparecem nesta lista\n- `blocks_close`: `true` quando os checklists impedem o fechamento do ticket. **`false` não garante que o fechamento será aceito**, pois existem outras condições verificadas ao fechar um ticket\n\nPara consultar os campos de cada checklist, utilize o método [Listar checklists do ticket](#get-/tickets/-ticket_number-/checklists).",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Exibir um ticket aberto": {
                    "value": {
                      "ticket_number": 23,
                      "checklists_summary": {
                        "total": 0,
                        "pending": 0,
                        "required_pending": 0,
                        "missing_required_checklists": [

                        ],
                        "blocks_close": false
                      },
                      "client": {
                        "id": 39,
                        "name": "Tremblay LLC",
                        "social": "Leannon Inc",
                        "social_revenue": "70579103000990",
                        "status": true
                      },
                      "closed_ticket_total_spent_solving": null,
                      "created_at": "2026-08-27T21:04:13Z",
                      "created_by_id": 1,
                      "created_by_way_of": "Tiflux Web",
                      "created_with_ai": false,
                      "custom_fields": null,
                      "description": "You're smarter than a tree, aren't you?",
                      "desk": {
                        "id": 27,
                        "active": true,
                        "appointment_type": "Appointments with no Valorization",
                        "display_name": "API",
                        "name": "API"
                      },
                      "equipment": {
                        "id": null,
                        "name": null,
                        "group_id": null,
                        "user_id": null
                      },
                      "feedback": null,
                      "followers": "tristan@kunde-schmitt.test",
                      "is_closed": false,
                      "is_duplicating": false,
                      "is_grouped": false,
                      "is_revised": false,
                      "last_answer_type": null,
                      "last_reopen_date": null,
                      "priority": {
                        "id": 54,
                        "end_time": "48:00",
                        "name": "Low",
                        "order": 2,
                        "start_time": "10:00"
                      },
                      "priority_change_reason": null,
                      "reopen_count": 0,
                      "requestor": {
                        "id": null,
                        "email": "linn@turner.test",
                        "name": "teste",
                        "ramal": null,
                        "telephone": "+45892156478"
                      },
                      "responsible": {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:17Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      "services_catalog": null,
                      "sla_info": {
                        "attend_expiration": "2026-08-31T09:30:00Z",
                        "attend_sla": true,
                        "attend_sla_solution": true,
                        "desactivate_sla_reason": null,
                        "solve_expiration": "2026-09-04T15:00:00Z",
                        "solved_in_time": null,
                        "stage_expiration": "2026-08-28T12:00:00Z",
                        "stopped": false
                      },
                      "stage": {
                        "id": 84,
                        "first_stage": true,
                        "last_stage": false,
                        "max_time": "04:00",
                        "name": "Pending"
                      },
                      "status": {
                        "id": 79,
                        "default_canceled": false,
                        "default_close": false,
                        "default_open": true,
                        "name": "Opened"
                      },
                      "ticket_children": [

                      ],
                      "ticket_reference": {
                      },
                      "title": "To be, or not to be: that is the question",
                      "updated_at": "2026-08-27T21:04:13Z",
                      "updated_by_id": 1,
                      "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/23/f9c4ae35-e7a7-40b0-9059-2af59abe26bf/4550ab73-84f8-42e8-abd8-396d8f61e00e/1",
                      "url_internal_path": "http://localhost/v/tickets/23/basic_info",
                      "worked_hours": "00:00"
                    }
                  },
                  "Exibir um ticket com show_entities": {
                    "value": {
                      "ticket_number": 24,
                      "checklists_summary": {
                        "total": 0,
                        "pending": 0,
                        "required_pending": 0,
                        "missing_required_checklists": [

                        ],
                        "blocks_close": false
                      },
                      "client": {
                        "id": 40,
                        "name": "Dach, Koch and Glover",
                        "social": "McDermott, Larson and Thompson",
                        "social_revenue": "43026417000306",
                        "status": true
                      },
                      "closed_ticket_total_spent_solving": null,
                      "created_at": "2026-08-27T21:04:13Z",
                      "created_by_id": 1,
                      "created_by_way_of": "Tiflux Web",
                      "created_with_ai": false,
                      "custom_fields": null,
                      "description": "Once something is known, it cannot be unknown.",
                      "desk": {
                        "id": 28,
                        "active": true,
                        "appointment_type": "Appointments with no Valorization",
                        "display_name": "API",
                        "name": "API"
                      },
                      "entities": [
                        {
                          "id": 16,
                          "active": true,
                          "applied_in": "ticket",
                          "description": "Campo personalizado de menu",
                          "entity_fields": [
                            {
                              "id": 62,
                              "entity_field_id": 74,
                              "entity_id": 16,
                              "field_type": "text",
                              "name": "Campo de texto no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "Texto que foi preenchido no campo personalizado"
                            },
                            {
                              "id": 63,
                              "entity_field_id": 75,
                              "entity_id": 16,
                              "field_type": "text_area",
                              "name": "Campo de área de texto no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "Texto que foi preenchido no campo personalizado do tipo área de texto"
                            },
                            {
                              "id": 64,
                              "entity_field_id": 76,
                              "entity_id": 16,
                              "field_type": "email",
                              "name": "Campo de email no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "mail_in_entity_field@mail.com"
                            },
                            {
                              "id": 65,
                              "entity_field_id": 77,
                              "entity_id": 16,
                              "field_type": "currency",
                              "name": "Campo de moeda no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "10.50"
                            },
                            {
                              "id": 66,
                              "entity_field_id": 78,
                              "entity_id": 16,
                              "field_type": "phone",
                              "name": "Campo de telefone no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "+5547999999999"
                            },
                            {
                              "id": 67,
                              "entity_field_id": 79,
                              "entity_id": 16,
                              "field_type": "date",
                              "name": "Campo de data no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "2024-06-29"
                            },
                            {
                              "id": 68,
                              "entity_field_id": 80,
                              "entity_id": 16,
                              "field_type": "link",
                              "name": "Campo de link no ticket",
                              "options": [

                              ],
                              "required": false,
                              "value": "https://guia-de-uso.tiflux.com/"
                            },
                            {
                              "id": 69,
                              "entity_field_id": 81,
                              "entity_id": 16,
                              "field_type": "single_select",
                              "name": "Campo de Seleção única no ticket",
                              "options": [
                                {
                                  "id": 69,
                                  "entity_field_id": 81,
                                  "entity_field_option_id": 48,
                                  "title": "Opção 2",
                                  "value": "48"
                                }
                              ],
                              "required": false,
                              "value": "Opção 2"
                            },
                            {
                              "id": null,
                              "entity_field_id": 82,
                              "entity_id": 16,
                              "field_type": "checkbox",
                              "name": "Campo de Checkbox",
                              "options": [
                                {
                                  "id": 71,
                                  "entity_field_id": 82,
                                  "entity_field_option_id": 49,
                                  "title": "Check 1",
                                  "value": "true"
                                },
                                {
                                  "id": 70,
                                  "entity_field_id": 82,
                                  "entity_field_option_id": 51,
                                  "title": "Check 3",
                                  "value": "true"
                                }
                              ],
                              "required": false,
                              "value": "Check 1, Check 3"
                            }
                          ],
                          "menu_item": true,
                          "name": "Teste"
                        }
                      ],
                      "equipment": {
                        "id": null,
                        "name": null,
                        "group_id": null,
                        "user_id": null
                      },
                      "feedback": null,
                      "followers": "zula.daniel@tillman-konopelski.example",
                      "is_closed": false,
                      "is_duplicating": false,
                      "is_grouped": false,
                      "is_revised": false,
                      "last_answer_type": null,
                      "last_reopen_date": null,
                      "priority": {
                        "id": 56,
                        "end_time": "48:00",
                        "name": "Low",
                        "order": 2,
                        "start_time": "10:00"
                      },
                      "priority_change_reason": null,
                      "reopen_count": 0,
                      "requestor": {
                        "id": null,
                        "email": "doretha@pfeffer.example",
                        "name": "teste",
                        "ramal": null,
                        "telephone": "+45892156478"
                      },
                      "responsible": {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:17Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      "services_catalog": null,
                      "sla_info": {
                        "attend_expiration": "2026-08-31T09:30:00Z",
                        "attend_sla": true,
                        "attend_sla_solution": true,
                        "desactivate_sla_reason": null,
                        "solve_expiration": "2026-09-04T15:00:00Z",
                        "solved_in_time": null,
                        "stage_expiration": "2026-08-28T12:00:00Z",
                        "stopped": false
                      },
                      "stage": {
                        "id": 87,
                        "first_stage": true,
                        "last_stage": false,
                        "max_time": "04:00",
                        "name": "Pending"
                      },
                      "status": {
                        "id": 82,
                        "default_canceled": false,
                        "default_close": false,
                        "default_open": true,
                        "name": "Opened"
                      },
                      "ticket_children": [

                      ],
                      "ticket_reference": {
                      },
                      "title": "To be, or not to be: that is the question",
                      "updated_at": "2026-08-27T21:04:13Z",
                      "updated_by_id": 1,
                      "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/24/b985b499-ff0d-4c72-86be-67233a02768e/b4f0831b-a6fe-4af1-805d-9e097cb1527c/1",
                      "url_internal_path": "http://localhost/v/tickets/24/basic_info",
                      "worked_hours": "00:00"
                    }
                  },
                  "Exibir um ticket com include_filled_entity": {
                    "value": {
                      "ticket_number": 24,
                      "checklists_summary": {
                        "total": 0,
                        "pending": 0,
                        "required_pending": 0,
                        "missing_required_checklists": [

                        ],
                        "blocks_close": false
                      },
                      "client": {
                        "id": 40,
                        "name": "Dach, Koch and Glover",
                        "social": "McDermott, Larson and Thompson",
                        "social_revenue": "43026417000306",
                        "status": true
                      },
                      "closed_ticket_total_spent_solving": null,
                      "created_at": "2026-08-27T21:04:13Z",
                      "created_by_id": 1,
                      "created_by_way_of": "Tiflux Web",
                      "created_with_ai": false,
                      "custom_fields": null,
                      "description": "Once something is known, it cannot be unknown.",
                      "desk": {
                        "id": 28,
                        "active": true,
                        "appointment_type": "Appointments with no Valorization",
                        "display_name": "API",
                        "name": "API"
                      },
                      "entity_fields": [
                        {
                          "id": null,
                          "entity_field_id": 81,
                          "entity_id": 16,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única no ticket",
                          "options": [
                            {
                              "id": 69,
                              "entity_field_id": 81,
                              "entity_field_option_id": 48,
                              "title": "Opção 2",
                              "value": "48"
                            }
                          ],
                          "required": false,
                          "value": "Opção 2"
                        },
                        {
                          "id": 65,
                          "entity_field_id": 77,
                          "entity_id": 16,
                          "field_type": "currency",
                          "name": "Campo de moeda no ticket",
                          "options": null,
                          "required": false,
                          "value": "10.50"
                        },
                        {
                          "id": 64,
                          "entity_field_id": 76,
                          "entity_id": 16,
                          "field_type": "email",
                          "name": "Campo de email no ticket",
                          "options": null,
                          "required": false,
                          "value": "mail_in_entity_field@mail.com"
                        },
                        {
                          "id": 62,
                          "entity_field_id": 74,
                          "entity_id": 16,
                          "field_type": "text",
                          "name": "Campo de texto no ticket",
                          "options": null,
                          "required": false,
                          "value": "Texto que foi preenchido no campo personalizado"
                        },
                        {
                          "id": null,
                          "entity_field_id": 82,
                          "entity_id": 16,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [
                            {
                              "id": 71,
                              "entity_field_id": 82,
                              "entity_field_option_id": 49,
                              "title": "Check 1",
                              "value": "true"
                            },
                            {
                              "id": 70,
                              "entity_field_id": 82,
                              "entity_field_option_id": 51,
                              "title": "Check 3",
                              "value": "true"
                            }
                          ],
                          "required": false,
                          "value": "Check 1, Check 3"
                        },
                        {
                          "id": 67,
                          "entity_field_id": 79,
                          "entity_id": 16,
                          "field_type": "date",
                          "name": "Campo de data no ticket",
                          "options": null,
                          "required": false,
                          "value": "2024-06-29"
                        },
                        {
                          "id": 63,
                          "entity_field_id": 75,
                          "entity_id": 16,
                          "field_type": "text_area",
                          "name": "Campo de área de texto no ticket",
                          "options": null,
                          "required": false,
                          "value": "Texto que foi preenchido no campo personalizado do tipo área de texto"
                        },
                        {
                          "id": 68,
                          "entity_field_id": 80,
                          "entity_id": 16,
                          "field_type": "link",
                          "name": "Campo de link no ticket",
                          "options": null,
                          "required": false,
                          "value": "https://guia-de-uso.tiflux.com/"
                        },
                        {
                          "id": 66,
                          "entity_field_id": 78,
                          "entity_id": 16,
                          "field_type": "phone",
                          "name": "Campo de telefone no ticket",
                          "options": null,
                          "required": false,
                          "value": "+5547999999999"
                        }
                      ],
                      "equipment": {
                        "id": null,
                        "name": null,
                        "group_id": null,
                        "user_id": null
                      },
                      "feedback": null,
                      "followers": "zula.daniel@tillman-konopelski.example",
                      "is_closed": false,
                      "is_duplicating": false,
                      "is_grouped": false,
                      "is_revised": false,
                      "last_answer_type": null,
                      "last_reopen_date": null,
                      "priority": {
                        "id": 56,
                        "end_time": "48:00",
                        "name": "Low",
                        "order": 2,
                        "start_time": "10:00"
                      },
                      "priority_change_reason": null,
                      "reopen_count": 0,
                      "requestor": {
                        "id": null,
                        "email": "doretha@pfeffer.example",
                        "name": "teste",
                        "ramal": null,
                        "telephone": "+45892156478"
                      },
                      "responsible": {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:17Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      "services_catalog": null,
                      "sla_info": {
                        "attend_expiration": "2026-08-31T09:30:00Z",
                        "attend_sla": true,
                        "attend_sla_solution": true,
                        "desactivate_sla_reason": null,
                        "solve_expiration": "2026-09-04T15:00:00Z",
                        "solved_in_time": null,
                        "stage_expiration": "2026-08-28T12:00:00Z",
                        "stopped": false
                      },
                      "stage": {
                        "id": 87,
                        "first_stage": true,
                        "last_stage": false,
                        "max_time": "04:00",
                        "name": "Pending"
                      },
                      "status": {
                        "id": 82,
                        "default_canceled": false,
                        "default_close": false,
                        "default_open": true,
                        "name": "Opened"
                      },
                      "ticket_children": [

                      ],
                      "ticket_reference": {
                      },
                      "title": "To be, or not to be: that is the question",
                      "updated_at": "2026-08-27T21:04:13Z",
                      "updated_by_id": 1,
                      "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/24/b985b499-ff0d-4c72-86be-67233a02768e/b4f0831b-a6fe-4af1-805d-9e097cb1527c/1",
                      "url_internal_path": "http://localhost/v/tickets/24/basic_info",
                      "worked_hours": "00:00"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Visualizar tickets em que eu não sou o responsável"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      },
      "put": {
        "summary": "Atualizar ticket aberto",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será atualizado",
            "examples": {
              "1": {
                "value": 37
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Atualiza um determinado ticket.\n- Só é possível atualizar um ticket que **não esteja fechado**.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_tickets_ticket_number",
        "responses": {
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 9999999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "ticket_number": 23,
                  "checklists_summary": {
                    "total": 0,
                    "pending": 0,
                    "required_pending": 0,
                    "missing_required_checklists": [

                    ],
                    "blocks_close": false
                  },
                  "client": {
                    "id": 39,
                    "name": "Tremblay LLC",
                    "social": "Leannon Inc",
                    "social_revenue": "70579103000990",
                    "status": true
                  },
                  "closed_ticket_total_spent_solving": null,
                  "created_at": "2026-08-27T21:04:13Z",
                  "created_by_id": 1,
                  "created_by_way_of": "Tiflux Web",
                  "created_with_ai": false,
                  "custom_fields": null,
                  "description": "Nova descrição do ticket de api",
                  "desk": {
                    "id": 27,
                    "active": true,
                    "appointment_type": "Appointments with no Valorization",
                    "display_name": "API",
                    "name": "API"
                  },
                  "equipment": {
                    "id": null,
                    "name": null,
                    "group_id": null,
                    "user_id": null
                  },
                  "feedback": null,
                  "followers": "tristan@kunde-schmitt.test",
                  "is_closed": false,
                  "is_duplicating": false,
                  "is_grouped": false,
                  "is_revised": false,
                  "last_answer_type": null,
                  "last_reopen_date": null,
                  "priority": {
                    "id": 54,
                    "end_time": "48:00",
                    "name": "Low",
                    "order": 2,
                    "start_time": "10:00"
                  },
                  "priority_change_reason": null,
                  "reopen_count": 0,
                  "requestor": {
                    "id": null,
                    "email": "linn@turner.test",
                    "name": "teste",
                    "ramal": null,
                    "telephone": "+45892156478"
                  },
                  "responsible": {
                    "id": 1,
                    "_type": "admin",
                    "active": true,
                    "email": "api_user@example.test",
                    "gauth_enabled": false,
                    "last_login_at": "2026-08-27T21:04:18Z",
                    "name": "Kum Rau Sr.",
                    "technical_group_id": 1
                  },
                  "services_catalog": null,
                  "sla_info": {
                    "attend_expiration": "2026-08-31T09:30:00Z",
                    "attend_sla": true,
                    "attend_sla_solution": true,
                    "desactivate_sla_reason": null,
                    "solve_expiration": "2026-09-04T15:00:00Z",
                    "solved_in_time": null,
                    "stage_expiration": "2026-08-28T12:00:00Z",
                    "stopped": false
                  },
                  "stage": {
                    "id": 84,
                    "first_stage": true,
                    "last_stage": false,
                    "max_time": "04:00",
                    "name": "Pending"
                  },
                  "status": {
                    "id": 79,
                    "default_canceled": false,
                    "default_close": false,
                    "default_open": true,
                    "name": "Opened"
                  },
                  "ticket_children": [

                  ],
                  "ticket_reference": {
                    "ticket_number": 53,
                    "desk_id": 37,
                    "responsible_id": 1,
                    "stage_id": 119,
                    "status_id": 113,
                    "title": "To be, or not to be: that is the question"
                  },
                  "title": "Tiflux API",
                  "updated_at": "2026-08-27T21:04:18Z",
                  "updated_by_id": 1,
                  "url_external_path": "https://api.tiflux.com/r/externals/ticket/view/23/f9c4ae35-e7a7-40b0-9059-2af59abe26bf/4550ab73-84f8-42e8-abd8-396d8f61e00e/1",
                  "url_internal_path": "http://localhost/v/tickets/23/basic_info",
                  "worked_hours": "00:00"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum valor de atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "E-mail de seguidor inválido": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "followers": [
                          "Follower email 'email@invalido@com' is invalid"
                        ]
                      }
                    }
                  },
                  "Solicitante não pode ser seguidor": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "ticket": [
                          "Requestor cannot be a follower"
                        ]
                      }
                    }
                  },
                  "Solicitante não pertence ao cliente do ticket": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "requestor_id": [
                          "This requestor does not belongs to client"
                        ]
                      }
                    }
                  },
                  "Solicitante não encontrado": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "requestor_id": [
                          "requestor not found"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "Titulo do ticket"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição do ticket"
                  },
                  "stage_id": {
                    "type": "integer",
                    "description": "ID do novo estágio do ticket."
                  },
                  "responsible_id": {
                    "type": "integer",
                    "description": "ID do novo responsável, caso queria alterar o responsável do ticket. Também é aceito o valor `null`, para deixar o ticket sem responsável."
                  },
                  "stopped": {
                    "type": "boolean",
                    "description": "Se o ticket for pausado aparecerá true, caso contrário aparecerá false."
                  },
                  "stop_answer": {
                    "type": "string",
                    "description": "Resposta adicionada ao pausar o SLA."
                  },
                  "priority_id": {
                    "type": "integer",
                    "description": "ID da nova prioridade do ticket."
                  },
                  "priority_change_reason": {
                    "type": "string",
                    "description": "Resposta adicionada ao alterar a prioridade do ticket."
                  },
                  "status_id": {
                    "type": "integer",
                    "description": "ID do novo status do ticket."
                  },
                  "services_catalogs_item_id": {
                    "type": "integer",
                    "description": "ID do novo catálogo de serviço do ticket."
                  },
                  "desk_id": {
                    "type": "integer",
                    "description": "ID da nova mesa do ticket."
                  },
                  "ticket_reference_number": {
                    "type": "integer",
                    "description": "Número do ticket pai. Também é aceito o valor `null`, para remover a referência do ticket pai."
                  },
                  "requestor_id": {
                    "type": "integer",
                    "description": "ID do novo solicitante do ticket. Deve pertencer ao mesmo cliente vinculado ao ticket."
                  },
                  "followers": {
                    "type": "string",
                    "description": "Email dos seguidores, separados por vírgula. O valor enviado substitui a lista de seguidores atual, para adicionar um seguidor a um ticket que já possui seguidores, envie a lista atual junto com o(s) novo(s) e-mail(s).",
                    "example": "seguidor1@email.com,seguidor2@email.com"
                  }
                }
              },
              "examples": {
                "Atualizar ticket": {
                  "summary": "Atualizar ticket",
                  "value": {
                    "title": "Tiflux API",
                    "description": "Nova descrição do ticket de api",
                    "stage_id": 118,
                    "responsible_id": 1,
                    "status_id": 112
                  }
                },
                "Atualizar ticket pai": {
                  "summary": "Atualizar ticket pai",
                  "value": {
                    "ticket_reference_number": 53
                  }
                },
                "Atualizar titulo e descrição do ticket": {
                  "summary": "Atualizar titulo e descrição do ticket",
                  "value": {
                    "title": "Tiflux API",
                    "description": "Nova descrição do ticket de api"
                  }
                },
                "Atualizar estágio do ticket": {
                  "summary": "Atualizar estágio do ticket",
                  "value": {
                    "stage_id": 118
                  }
                },
                "Atualizar status do ticket": {
                  "summary": "Atualizar status do ticket",
                  "value": {
                    "status_id": 112
                  }
                },
                "Pausar SLA do ticket": {
                  "summary": "Pausar SLA do ticket",
                  "value": {
                    "stop_answer": "SLA do ticket precisou ser pausado",
                    "stopped": true
                  }
                },
                "Atualizar prioridade do ticket": {
                  "summary": "Atualizar prioridade do ticket",
                  "value": {
                    "priority_id": 73,
                    "priority_change_reason": "Por motivos de terceiros a prioridade teve que ser alterada"
                  }
                },
                "Atualizar mesa do ticket": {
                  "summary": "Atualizar mesa do ticket",
                  "value": {
                    "desk_id": 31,
                    "priority_id": 61,
                    "stage_id": 96,
                    "status_id": 91,
                    "responsible_id": 1
                  }
                },
                "Atualizar mesa do ticket com prioridade": {
                  "summary": "Atualizar mesa do ticket com prioridade",
                  "value": {
                    "desk_id": 31,
                    "priority_id": 61
                  }
                },
                "Atualizar mesa do ticket com item de catálogo": {
                  "summary": "Atualizar mesa do ticket com item de catálogo",
                  "value": {
                    "desk_id": 32,
                    "services_catalogs_item_id": 24
                  }
                },
                "Atualizar solicitante do ticket": {
                  "summary": "Atualizar solicitante do ticket",
                  "value": {
                    "requestor_id": 47
                  }
                },
                "Atualizar seguidores do ticket": {
                  "summary": "Atualizar seguidores do ticket",
                  "value": {
                    "followers": "novo.seguidor1@email.com,novo.seguidor2@email.com"
                  }
                },
                "Remover todos os seguidores do ticket": {
                  "summary": "Remover todos os seguidores do ticket",
                  "value": {
                    "followers": ""
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/tickets/{ticket_number}/cancel": {
      "put": {
        "summary": "Cancelar ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será cancelado",
            "examples": {
              "1": {
                "value": 37
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Cancela um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_tickets_ticket_number_cancel",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "message": "Ticket 27 cancelled successfully"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Não foi possível cancelar o ticket devido ao não cumprimento de critérios necessários**\nPara cancelar um ticket, é necessário atender a determinados requisitos definidos pelas regras de negócio do sistema. Os critérios que precisam ser cumpridos estão detalhados no atributo `detail` dessa resposta.",
            "content": {
              "application/json": {
                "examples": {
                  "Não pode cancelar se houverem pré-apontamentos pendentes de preenchimento": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "pre_appointments": [
                          "This ticket has pre appointment(s), remove or complete them to close"
                        ]
                      }
                    }
                  },
                  "Não pode haver empréstimos pendentes no ticket": {
                    "value": {
                      "error_code": 42206,
                      "message": "The ticket cannot be closed as it does not meet the required conditions",
                      "detail": {
                        "equipment_loans": [
                          "Can't cancel ticket with active equipment loans"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/reopen": {
      "put": {
        "summary": "Reabrir ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será reaberto",
            "examples": {
              "1": {
                "value": 37
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Reabre um determinado ticket.\n- Só é possível reabrir um ticket que **não esteja faturado**.\n- Se você deseja reabrir um ticket pendente de revisão, o ticket será reaberto por **reprovação**. Sendo assim, é necessário informar o motivo da reprovação no atributo `disapproval_reason`.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre: Para tickets pendentes de revisão pelo usuário"
          },
          {
            "color": "red",
            "label": "Revisar e avaliar tickets fechados"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "put_tickets_ticket_number_reopen",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "message": "Ticket 56 reopened successfully"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Não foi possível reabrir o ticket devido ao não cumprimento de critérios necessários**\nPara reabrir um ticket, é necessário atender a determinados requisitos definidos pelas regras de negócio do sistema. Os critérios que precisam ser cumpridos estão detalhados no atributo `detail` dessa resposta.",
            "content": {
              "application/json": {
                "examples": {
                  "Não pode reabrir um ticket aberto": {
                    "value": {
                      "error_code": 42207,
                      "message": "The ticket cannot be reopened as it does not meet the required conditions",
                      "detail": {
                        "error": [
                          "Unable to reopen. Ticket is already open"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "disapproval_reason": {
                    "type": "string",
                    "description": "Motivo da reprovação"
                  }
                }
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "disapproval_reason": "Este ticket está sendo reprovado, pois não cumpriu o previsto."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tickets/{ticket_number}/entities": {
      "put": {
        "summary": "Atualizar campos personalizados do ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "1": {
                "value": 1
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Esta rota permite atualizar os valores de campos personalizados associados a um ticket específico.\n\n- Para consultar quais campos personalizados estão disponíveis para o ticket em questão, utilize o método [Exibir ticket](#get-/tickets/-ticket_number-)\n\n- Se você deseja atualizar o valor de um campo personalizado em um **ticket que esteja fechado**, é necessário ter a permissão <span style=\"margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Editar tickets fechados</span>\n### **Descrição dos valores aceitos**\nO formato do valor do campo (`value`) deve ser compatível com o tipo de campo personalizado (`entity_field_id`) que está sendo atualizado. Consulte a tabela abaixo para obter exemplos de valores válidos para cada tipo de campo:\nTipo de campo | Descrição | Exemplos\n--- | --- | ---\ntext | Aceita qualquer valor de string | `\"Meu texto\"`\ntext_area | Aceita qualquer valor de string | `\"Meu texto de exemplo\"`\ncurrency | Aceita uma string de números float utilizando o ponto como separador decimal e sem agrupador de milhares | `\"1200.55\"`,`\"15\"`\nphone | Aceita uma string de números inteiros, representando o número de telefone sem o código do país (DDI). Por padrão, o sistema vai tentar validar esse telefone como um número brasileiro. Se você deseja inserir um número de outro país, será necessário utilizar o atributo `country_code` junto no corpo da sua requisição | `\"47999999999\"`\nemail | Aceita uma string com o e-mail | `\"suporte@tiflux.com\"`\nlink | Aceita uma string contendo o endereço do link. O link deve começar com http, https ou ftp, para ser considerado como válido | `\"https://guia-de-uso.tiflux.com/\"`\ndate | Aceita uma string contendo a data. Serão aceitas datas em vários formatos (inclusive com horas). Porém, o valor será gravado em banco da seguinte forma: \"YYYY-MM-DD\", sendo assim, recomendamos que você informe a data nesse padrão também | `\"2025-05-28\"`\nsingle_select | Aceita uma string contendo um número inteiro com o ID da nova opção que foi escolhida | `\"777\"`, `\"52\"`\ncheckbox | Aceita uma string contendo um valor booleano representando se você deseja marcar o checkbox (\"true\") ou desmarcá-lo (\"false\") | `\"true\"`, `\"false\"`\n\n- **Observação:** Se você deseja apagar/limpar o valor de um campo personalizado que não é obrigatório, basta informar o atributo value como null: `\"value\": null`",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "put_tickets_ticket_number_entities",
        "responses": {
          "200": {
            "description": "### **Campos personalizados atualizados com sucesso**\nO corpo da resposta dessa requisição será um objeto `entities`, contendo todos os campos personalizados do ticket após a atualização",
            "content": {
              "application/json": {
                "example": {
                  "entities": [
                    {
                      "id": 16,
                      "active": true,
                      "applied_in": "ticket",
                      "description": "Campo personalizado de menu",
                      "entity_fields": [
                        {
                          "id": 62,
                          "entity_field_id": 74,
                          "entity_id": 16,
                          "field_type": "text",
                          "name": "Campo de texto no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "Novo texto da entidade"
                        },
                        {
                          "id": 63,
                          "entity_field_id": 75,
                          "entity_id": 16,
                          "field_type": "text_area",
                          "name": "Campo de área de texto no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "Novo texto do campo de área de texto"
                        },
                        {
                          "id": 64,
                          "entity_field_id": 76,
                          "entity_id": 16,
                          "field_type": "email",
                          "name": "Campo de email no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "luz.johnston@fay-parker.example"
                        },
                        {
                          "id": 65,
                          "entity_field_id": 77,
                          "entity_id": 16,
                          "field_type": "currency",
                          "name": "Campo de moeda no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "150.55"
                        },
                        {
                          "id": 66,
                          "entity_field_id": 78,
                          "entity_id": 16,
                          "field_type": "phone",
                          "name": "Campo de telefone no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "+5547999999999"
                        },
                        {
                          "id": 67,
                          "entity_field_id": 79,
                          "entity_id": 16,
                          "field_type": "date",
                          "name": "Campo de data no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "2024-06-28"
                        },
                        {
                          "id": 68,
                          "entity_field_id": 80,
                          "entity_id": 16,
                          "field_type": "link",
                          "name": "Campo de link no ticket",
                          "options": [

                          ],
                          "required": false,
                          "value": "https://app.tiflux.com/v/"
                        },
                        {
                          "id": 69,
                          "entity_field_id": 81,
                          "entity_id": 16,
                          "field_type": "single_select",
                          "name": "Campo de Seleção única no ticket",
                          "options": [
                            {
                              "id": 69,
                              "entity_field_id": 81,
                              "entity_field_option_id": 48,
                              "title": "Opção 2",
                              "value": "48"
                            }
                          ],
                          "required": false,
                          "value": "Opção 2"
                        },
                        {
                          "id": null,
                          "entity_field_id": 82,
                          "entity_id": 16,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [
                            {
                              "id": 71,
                              "entity_field_id": 82,
                              "entity_field_option_id": 49,
                              "title": "Check 1",
                              "value": "true"
                            }
                          ],
                          "required": false,
                          "value": "Check 1"
                        }
                      ],
                      "menu_item": true,
                      "name": "Teste"
                    },
                    {
                      "id": 17,
                      "active": true,
                      "applied_in": "ticket",
                      "description": "Campo personalizado de menu",
                      "entity_fields": [
                        {
                          "id": null,
                          "entity_field_id": 83,
                          "entity_id": 17,
                          "field_type": "checkbox",
                          "name": "Campo de Checkbox",
                          "options": [

                          ],
                          "required": true,
                          "value": null
                        }
                      ],
                      "menu_item": true,
                      "name": "Teste de checkbox obrigatório"
                    }
                  ]
                }
              }
            }
          },
          "207": {
            "description": "### **Sucesso Parcial na Atualização de Campos Personalizados**\nEste código de resposta indica que a requisição para atualizar campos personalizados foi **parcialmente bem-sucedida**. Ou seja, alguns dos campos podem ter sido atualizados com sucesso, enquanto outros apresentaram falhas e não foram atualizados.\n\nPara os campos que apresentaram falhas na atualização, o motivo do erro está detalhado no atributo `detail`. Se um campo não constar na listagem de erros, significa que ele foi atualizado com sucesso.",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 20701,
                  "message": "Your request was partially successful. Some entity values were updated successfully, but others had errors",
                  "detail": {
                    "entities": [
                      "The property '#/0/entity_field_id': Couldn't find EntityField with id=0 applied in ServiceDesk::Ticket. The entity may be inactive or not exist",
                      "The property '#/1/value' of type integer did not match one or more of the following types: string, null in schema 34337688-21eb-563d-8c1e-79a0682d932b",
                      "The property '#/2/entity_field_option_id': Cannot send EntityFieldOption in a field_type currency",
                      "The property '#/3/value': Is not a valid phone number",
                      "The property '#/4/value': Is not a valid email",
                      "The property '#/5/value': Is not a valid link",
                      "The property '#/6/value': Is not a valid date",
                      "The property '#/7/value': Option id=0 is not a valid option in EntityField (id=81)"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com os parâmetros informados**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42202,
                  "message": "Problems with body attributes values",
                  "detail": {
                    "entities": [
                      "Cannot update more than 50 entities values per request"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Parâmetro inválido encontrado**\nVocê informou algum atributo inválido ou fora do padrão dessa requisição. Confira os exemplos e o schema, para garantir que o corpo da sua requisição esteja no formato correto",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40001,
                  "message": "Unknown parameters",
                  "detail": {
                    "error": [
                      "found unpermitted parameter: :name"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "401": {
            "description": "### **Problemas com o token de autenticação**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40101,
                  "message": "Problems with Authorization",
                  "detail": {
                    "error": [
                      "You need to sign in before continuing."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Editar tickets"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/entities"
              },
              "examples": {
                "Text field": {
                  "summary": "Text field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 74,
                        "value": "Novo texto do campo tipo texto"
                      }
                    ]
                  }
                },
                "Text_area field": {
                  "summary": "Text_area field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 75,
                        "value": "Novo texto do campo de área de texto"
                      }
                    ]
                  }
                },
                "Currency field": {
                  "summary": "Currency field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 77,
                        "value": "150.55"
                      }
                    ]
                  }
                },
                "Phone field": {
                  "summary": "Phone field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 78,
                        "value": "47999999999",
                        "country_code": "BR"
                      }
                    ]
                  }
                },
                "Email field": {
                  "summary": "Email field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 76,
                        "value": "new_mail@to.entity.com"
                      }
                    ]
                  }
                },
                "Link field": {
                  "summary": "Link field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 80,
                        "value": "https://app.tiflux.com/v/"
                      }
                    ]
                  }
                },
                "Date field": {
                  "summary": "Date field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 79,
                        "value": "2024-06-28"
                      }
                    ]
                  }
                },
                "Single_select field": {
                  "summary": "Single_select field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 81,
                        "value": "48"
                      }
                    ]
                  }
                },
                "Checkbox field": {
                  "summary": "Checkbox field",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 82,
                        "entity_field_option_id": 49,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 82,
                        "entity_field_option_id": 50,
                        "value": "false"
                      },
                      {
                        "entity_field_id": 82,
                        "entity_field_option_id": 51,
                        "value": "true"
                      }
                    ]
                  }
                },
                "Update all entity values": {
                  "summary": "Update all entity values",
                  "value": {
                    "entities": [
                      {
                        "entity_field_id": 74,
                        "value": "Novo texto da entidade"
                      },
                      {
                        "entity_field_id": 75,
                        "value": "Novo texto do campo de área de texto"
                      },
                      {
                        "entity_field_id": 77,
                        "value": "150.55"
                      },
                      {
                        "entity_field_id": 78,
                        "value": "47999999999",
                        "country_code": "BR"
                      },
                      {
                        "entity_field_id": 76,
                        "value": "luz.johnston@fay-parker.example"
                      },
                      {
                        "entity_field_id": 80,
                        "value": "https://app.tiflux.com/v/"
                      },
                      {
                        "entity_field_id": 79,
                        "value": "2024-06-28"
                      },
                      {
                        "entity_field_id": 81,
                        "value": "48"
                      },
                      {
                        "entity_field_id": 82,
                        "entity_field_option_id": 49,
                        "value": "true"
                      },
                      {
                        "entity_field_id": 82,
                        "entity_field_option_id": 50,
                        "value": "false"
                      },
                      {
                        "entity_field_id": 82,
                        "entity_field_option_id": 51,
                        "value": "false"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "description": "Este schema define a estrutura de dados para atualização de campos personalizados de um ticket. Ele é composto por um array de objetos, onde cada objeto representa um campo personalizado a ser atualizado.\n - É possível atualizar até 50 valores de campos personalizados por requisição."
        }
      }
    },
    "/tickets/{ticket_number}/histories": {
      "get": {
        "summary": "Listar histórico do ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será exibido",
            "examples": {
              "1": {
                "value": 32
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "history_of",
            "in": "query",
            "description": "Filtrar histórico pela área do ticket. Você deve informar o número referente a área",
            "schema": {
              "type": "integer",
              "enum": [
                0,
                1
              ]
            },
            "examples": {
              "0": {
                "value": 0,
                "summary": "Estágio"
              },
              "1": {
                "value": 1,
                "summary": "Apontamentos"
              }
            },
            "required": true
          },
          {
            "name": "type_id_attr",
            "in": "query",
            "description": "Campo de identificação entre os registros e as alterações feitas no histórico (ex: ID do apontamento quando history_of=1)",
            "schema": {
              "type": "integer"
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": 922480,
                "summary": "ID do apontamento"
              }
            },
            "required": false
          },
          {
            "name": "operation",
            "in": "query",
            "description": "Filtro opcional para operações realizadas no histórico. Por padrão (vazio) retorna todas as operações.\n\n**Observação**: Esse parâmetro só será considerado quando o history_of for 1 (apontamentos).",
            "examples": {
              "Todos": {
                "value": ""
              },
              "Criados": {
                "value": "created",
                "summary": "Listar apenas o histórico de criação de apontamentos"
              },
              "Atualizados": {
                "value": "updated",
                "summary": "Listar apenas o histórico de apontamentos atualizados"
              },
              "Apagados": {
                "value": "deleted",
                "summary": "Listar apenas o histórico de apontamentos apagados"
              }
            },
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "updated",
                "deleted"
              ]
            },
            "required": false
          }
        ],
        "description": "Consulta detalhada do histórico de um determinado ticket.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_histories",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 97,
                    "_created_at": "2026-08-27T21:04:13Z",
                    "_operation": "updated",
                    "_type": "ticket",
                    "_type_id_attr": 29,
                    "action": "Ticket was updated",
                    "action_details": {
                    },
                    "changes": {
                      "fields": [
                        "stage_name"
                      ],
                      "new_values": {
                        "stage_name": "N2",
                        "changed_stage_at": "2026-08-27T21:04:13Z"
                      },
                      "old_values": {
                        "stage_name": "N1",
                        "changed_stage_at": "2026-08-27T20:44:13Z"
                      }
                    },
                    "user": {
                      "id": 1,
                      "name": "Kum Rau Sr.",
                      "email": "api_user@example.test"
                    }
                  },
                  {
                    "id": 95,
                    "_created_at": "2026-08-27T20:44:13Z",
                    "_operation": "updated",
                    "_type": "ticket",
                    "_type_id_attr": 29,
                    "action": "Attendance Started",
                    "action_details": {
                    },
                    "changes": {
                      "fields": [
                        "stage_name",
                        "changed_first_stage_at"
                      ],
                      "new_values": {
                        "stage_name": "N1",
                        "changed_stage_at": "2026-08-27T20:44:13Z",
                        "changed_first_stage_at": "2026-08-27T20:44:13Z"
                      },
                      "old_values": {
                        "stage_name": "Pending",
                        "changed_stage_at": null,
                        "changed_first_stage_at": null
                      }
                    },
                    "user": {
                      "id": 1,
                      "name": "Kum Rau Sr.",
                      "email": "api_user@example.test"
                    }
                  }
                ],
                "schema": {
                  "type": "array",
                  "description": "Lista de registros de histórico do ticket",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador (ID) do histórico do ticket"
                      },
                      "_created_at": {
                        "type": "string",
                        "description": "Data e hora em que o histórico foi criado"
                      },
                      "_operation": {
                        "type": "string",
                        "enum": [
                          "created",
                          "updated",
                          "deleted"
                        ],
                        "description": "Operação que originou o histórico (criação, atualização ou remoção)"
                      },
                      "_type": {
                        "type": "string",
                        "description": "Categoria ou área do ticket em que a mudança ocorreu"
                      },
                      "_type_id_attr": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Campo de identificação entre os registros e as alterações feitas no histórico (ex: ID do apontamento)"
                      },
                      "action": {
                        "type": "string",
                        "description": "Descrição resumida da ação registrada no histórico"
                      },
                      "action_details": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Detalhamento adicional sobre a ação realizada, com chaves dinâmicas"
                      },
                      "changes": {
                        "type": "object",
                        "description": "Conjunto de alterações realizadas durante a ação",
                        "properties": {
                          "fields": {
                            "type": "array",
                            "description": "Lista de nomes dos campos que foram alterados",
                            "items": {
                              "type": "string"
                            }
                          },
                          "new_values": {
                            "type": "object",
                            "description": "Novos valores dos campos modificados",
                            "additionalProperties": {
                              "type": "string",
                              "nullable": true
                            }
                          },
                          "old_values": {
                            "type": "object",
                            "description": "Valores antigos dos campos, antes da modificação",
                            "additionalProperties": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "required": [
                          "fields",
                          "new_values",
                          "old_values"
                        ]
                      },
                      "user": {
                        "type": "object",
                        "description": "Usuário responsável pela ação registrada no histórico (pode ser nulo para ações automáticas)",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do usuário que realizou a ação"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do usuário que realizou a ação"
                          },
                          "email": {
                            "type": "string",
                            "description": "E-mail do usuário que realizou a ação"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "email"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "_created_at",
                      "_operation",
                      "_type",
                      "action",
                      "action_details",
                      "changes",
                      "user"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 9999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum valor de atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "Faltou informar parâmetros obrigatórios": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "history_of": [
                          "can't be blank",
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "Ticket informado deve ser um número maior que 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "ticket_ticket_number": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Visualizar tickets em que eu não sou o responsável"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/stages-slas": {
      "get": {
        "summary": "Listar durações por estágios do ticket",
        "tags": [
          "Tickets"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket que será exibido",
            "examples": {
              "1": {
                "value": 32
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          }
        ],
        "description": "Retorna o histórico completo de passagem de um determinado ticket, por cada um de seus estágios.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_stages-slas",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 35,
                    "attended_at": null,
                    "attended_by": null,
                    "created_at": "2026-08-27T21:04:13Z",
                    "created_by": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "desk": {
                      "id": 33,
                      "name": "API"
                    },
                    "duration_in_expedient": "00:00",
                    "expiration": "2026-08-28T09:00:00Z",
                    "sla_attended": false,
                    "stage": {
                      "id": 105,
                      "name": "N2"
                    }
                  },
                  {
                    "id": 34,
                    "attended_at": "2026-08-27T21:04:13Z",
                    "attended_by": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "created_at": "2026-08-27T20:34:13Z",
                    "created_by": {
                      "id": 1,
                      "name": "Kum Rau Sr."
                    },
                    "desk": {
                      "id": 33,
                      "name": "API"
                    },
                    "duration_in_expedient": "00:00",
                    "expiration": "2026-08-28T12:00:00Z",
                    "sla_attended": true,
                    "stage": {
                      "id": 102,
                      "name": "Pending"
                    }
                  }
                ],
                "schema": {
                  "type": "array",
                  "description": "Lista de registros representando cada passagem do ticket por um estágio",
                  "items": {
                    "type": "object",
                    "description": "Informações detalhadas sobre a permanência do ticket em um estágio específico",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador do registro de passagem do ticket pelo estágio"
                      },
                      "attended_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data e hora em que o ticket foi atendido neste estágio (ou null se ainda não atendido)"
                      },
                      "attended_by": {
                        "type": "object",
                        "nullable": true,
                        "description": "Usuário que realizou o atendimento do ticket no estágio",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do usuário"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do usuário"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "description": "Data e hora em que o ticket entrou neste estágio"
                      },
                      "created_by": {
                        "type": "object",
                        "nullable": true,
                        "description": "Usuário que movimentou o ticket para este estágio",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do usuário"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do usuário"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "desk": {
                        "type": "object",
                        "description": "Mesa em que o ticket estava durante o atendimento",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID da mesa"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome da mesa"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      },
                      "duration_in_expedient": {
                        "type": "string",
                        "description": "Tempo total (HH:MM) que o ticket permaneceu neste estágio durante horário de expediente"
                      },
                      "expiration": {
                        "type": "string",
                        "description": "Data e hora limite do SLA para este estágio"
                      },
                      "sla_attended": {
                        "type": "boolean",
                        "description": "Indica se o SLA foi atendido no estágio (true/false)"
                      },
                      "stage": {
                        "type": "object",
                        "description": "Estágio correspondente ao registro",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do estágio"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do estágio"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "attended_at",
                      "attended_by",
                      "created_at",
                      "created_by",
                      "desk",
                      "duration_in_expedient",
                      "expiration",
                      "sla_attended",
                      "stage"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 9999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum valor de atributo informado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 42201,
                  "message": "Problems with query or path parameters values",
                  "detail": {
                    "ticket_number": [
                      "must be greater than 0"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Visualizar e abrir tickets"
          },
          {
            "color": "red",
            "label": "Visualizar tickets em que eu não sou o responsável"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/shifts": {
      "get": {
        "summary": "Listar deslocamentos do ticket",
        "tags": [
          "Tickets",
          "Apontamentos"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "1": {
                "value": 32
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "contract_id",
            "in": "query",
            "required": false,
            "description": "Filtra os deslocamentos, retornando apenas os vinculados a esse contrato.",
            "examples": {
              "0": {
                "value": ""
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Retorna os deslocamentos ativos que podem ser utilizados no ticket.\n\nOs resultados podem ser utilizados no campo `shift_id` do formulário de criação de apontamento valorizado.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_shifts",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "client": null,
                    "contract": null,
                    "name": "Deslocamento de carro até Joinville",
                    "reference": "All"
                  },
                  {
                    "id": 7,
                    "client": {
                      "id": 39,
                      "name": "Tremblay LLC"
                    },
                    "contract": null,
                    "name": "Deslocamento do cliente do ticket",
                    "reference": "Client"
                  },
                  {
                    "id": 8,
                    "client": {
                      "id": 39,
                      "name": "Tremblay LLC"
                    },
                    "contract": {
                      "id": 18,
                      "name": "Hours contract"
                    },
                    "name": "Deslocamento do contrato do cliente",
                    "reference": "Contract"
                  },
                  {
                    "id": 6,
                    "client": null,
                    "contract": null,
                    "name": "Deslocamento global",
                    "reference": "All"
                  }
                ],
                "schema": {
                  "title": "Deslocamentos do ticket",
                  "type": "array",
                  "description": "Lista de deslocamentos ativos aplicáveis ao ticket",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Identificador (ID) do deslocamento"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do deslocamento"
                      },
                      "reference": {
                        "type": "string",
                        "description": "Tipo/abrangência do deslocamento:\n* `All`: genérico, disponível para qualquer cliente\n* `Client`: exclusivo de um cliente\n* `Contract`: exclusivo de um contrato\n* `Shared`: compartilhado por um grupo de contratos",
                        "enum": [
                          "All",
                          "Client",
                          "Contract",
                          "Shared"
                        ]
                      },
                      "client": {
                        "type": "object",
                        "nullable": true,
                        "description": "Cliente ao qual o deslocamento pertence. `null` quando o deslocamento é genérico",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do cliente"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do cliente"
                          }
                        }
                      },
                      "contract": {
                        "type": "object",
                        "nullable": true,
                        "description": "Contrato ao qual o deslocamento pertence. `null` quando o deslocamento não é exclusivo de um contrato",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "ID do contrato"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do contrato"
                          }
                        }
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "reference",
                      "client",
                      "contract"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 9999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum valor de atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "Ticket informado deve ser um número maior que 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "ticket_number": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  },
                  "contract_id informado deve ser um número": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "contract_id": [
                          "is not a number"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Criar e editar apontamentos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/tickets/{ticket_number}/service-types": {
      "get": {
        "summary": "Listar tipos de atendimento do ticket",
        "tags": [
          "Tickets",
          "Apontamentos"
        ],
        "parameters": [
          {
            "name": "ticket_number",
            "in": "path",
            "description": "Número do ticket",
            "examples": {
              "1": {
                "value": 32
              }
            },
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "Data-base para verificar contratos/adendos vigentes. Formato ISO (YYYY-MM-DD). Não pode ser uma data maior que hoje.",
            "examples": {
              "Não informado": {
                "value": "",
                "summary": "Quando não informado, o padrão é o dia de hoje"
              },
              "Data específica": {
                "value": "2026-07-09",
                "summary": "Filtra os contratos/adendos vigentes nessa data"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Retorna os serviços avulsos e os contratos (adendos vigentes) aplicáveis ao ticket, para uso na criação de apontamentos valorizados.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_tickets_ticket_number_service-types",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "Avulsos e contratos do ticket": {
                    "value": {
                      "contract_riders": [
                        {
                          "id": 27,
                          "cancel_date": "2027-04-30",
                          "contract": {
                            "id": 22,
                            "name": "Contrato do cliente"
                          },
                          "rider_number": 2,
                          "start_date": "2024-01-01"
                        },
                        {
                          "id": 21,
                          "cancel_date": "2027-04-30",
                          "contract": {
                            "id": 18,
                            "name": "Hours contract"
                          },
                          "rider_number": 2,
                          "start_date": "2024-01-01"
                        },
                        {
                          "id": 23,
                          "cancel_date": "2027-04-30",
                          "contract": {
                            "id": 20,
                            "name": "Hours contract"
                          },
                          "rider_number": 2,
                          "start_date": "2024-01-01"
                        }
                      ],
                      "loose_services": [
                        {
                          "id": 3,
                          "name": "Serviço avulso com valores distintos"
                        },
                        {
                          "id": 6,
                          "name": "Serviço avulso do cliente"
                        },
                        {
                          "id": 5,
                          "name": "Serviço avulso global"
                        },
                        {
                          "id": 1,
                          "name": "Serviço avulso teste"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "title": "SCHEMA: Tipos de atendimento do ticket",
                  "type": "object",
                  "description": "Serviços avulsos e contratos (adendos vigentes) aplicáveis ao ticket, para uso na criação de apontamentos valorizados",
                  "properties": {
                    "contract_riders": {
                      "type": "array",
                      "description": "Adendos (contract_riders) vigentes dos contratos ativos do cliente do ticket, na data informada",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do adendo (contract_rider)"
                          },
                          "rider_number": {
                            "type": "integer",
                            "description": "Número do adendo"
                          },
                          "start_date": {
                            "type": "string",
                            "description": "Data de início de vigência do adendo"
                          },
                          "cancel_date": {
                            "type": "string",
                            "description": "Data de fim de vigência do adendo"
                          },
                          "contract": {
                            "type": "object",
                            "description": "Contrato ao qual o adendo pertence",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "Identificador do contrato"
                              },
                              "name": {
                                "type": "string",
                                "description": "Nome do contrato"
                              }
                            },
                            "required": [
                              "id",
                              "name"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "rider_number",
                          "start_date",
                          "cancel_date",
                          "contract"
                        ]
                      }
                    },
                    "loose_services": {
                      "type": "array",
                      "description": "Serviços avulsos ativos, globais ou vinculados ao cliente do ticket",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Identificador do serviço avulso"
                          },
                          "name": {
                            "type": "string",
                            "description": "Nome do serviço avulso"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      }
                    }
                  },
                  "required": [
                    "contract_riders",
                    "loose_services"
                  ]
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\n\nEssa resposta significa que o seu usuário está autenticado corretamente, porém, não possui a permissão ou licença necessária para acessar essa rota",
            "content": {
              "application/json": {
                "examples": {
                  "Sem permissão necessária": {
                    "description": "### **Como corrigir o erro `40301`?**\nEsse erro indica que o grupo de permissões do seu usuário não possui acesso a esta rota.\n\nPara corrigir, verifique no topo desta página quais são as permissões necessárias e solicite ao administrador do seu sistema que as conceda.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You are not authorized to access this page."
                        ]
                      }
                    }
                  },
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "404": {
            "description": "### **Ticket não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find ServiceDesk::Ticket with ticket_number = 9999"
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas com algum valor de atributo informado**",
            "content": {
              "application/json": {
                "examples": {
                  "Ticket informado deve ser um número maior que 0": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "ticket_number": [
                          "must be greater than 0"
                        ]
                      }
                    }
                  },
                  "Data informada é inválida": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "date": [
                          "invalid date"
                        ]
                      }
                    }
                  },
                  "Data informada não pode ser maior que hoje": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "date": [
                          "cannot be in the future"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Criar e editar apontamentos"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ]
      }
    },
    "/users": {
      "get": {
        "summary": "Listar usuários",
        "tags": [
          "Usuários"
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filtrar a busca por usuários ativos ou inativos",
            "examples": {
              "0": {
                "value": ""
              },
              "Ativos": {
                "value": true
              },
              "Inativos": {
                "value": false
              }
            },
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "gauth_enabled",
            "in": "query",
            "description": "Filtrar a busca por usuários que possuem autenticação de 2 fatores ativa ou inativa",
            "examples": {
              "0": {
                "value": ""
              },
              "Ativa": {
                "value": true
              },
              "Inativa": {
                "value": false
              }
            },
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filtrar a busca por tipo de usuário: administrador, cliente ou técnico",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "client",
                "attendant",
                "admin"
              ]
            }
          },
          {
            "name": "email",
            "in": "query",
            "description": "Filtra a busca por usuários cujo e-mail contém o valor informado",
            "examples": {
              "0": {
                "value": ""
              },
              "Início do e-mail": {
                "value": "supor",
                "description": "Retorna usuários com e-mails como: '**supor**te@​tiflux.com' ou 'user@**supor**te.com'"
              },
              "Final do e-mail": {
                "value": "@tiflux.com",
                "description": "Retorna todos os usuários com e-mails do domínio **tiflux.com**"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filtra a busca por usuários cujo nome contém o valor informado",
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "lucas",
                "description": "Retorna usuários como: '**Lucas** Lima' ou 'João **Lucas**'"
              },
              "2": {
                "value": "luc",
                "description": "Retorna usuários com nomes que contenham 'luc', como: '**Luc**as', '**Luc**iana' ou 'Fe**luc**io'"
              }
            },
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Lista os usuários que existem na sua organização.",
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "operationId": "get_users",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "examples": {
                  "Lista todos usuários": {
                    "value": [
                      {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:25Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      {
                        "id": 7,
                        "_type": null,
                        "active": true,
                        "email": "fay_lupe@kozey.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lupe Fay",
                        "technical_group_id": null
                      },
                      {
                        "id": 49,
                        "_type": "admin",
                        "active": true,
                        "email": "departments_spec_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rowena Gerhold",
                        "technical_group_id": 49
                      },
                      {
                        "id": 100,
                        "_type": "attendant",
                        "active": true,
                        "email": "amb_tressie_johnston@crooks.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Amb. Tressie Johnston",
                        "technical_group_id": 101
                      },
                      {
                        "id": 103,
                        "_type": "attendant",
                        "active": true,
                        "email": "prof.murazik.malcolm@legros.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Prof. Malcolm Murazik",
                        "technical_group_id": 105
                      },
                      {
                        "id": 109,
                        "_type": "attendant",
                        "active": true,
                        "email": "lockman.marty@bergnaum.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Marty Lockman",
                        "technical_group_id": 111
                      },
                      {
                        "id": 125,
                        "_type": "attendant",
                        "active": true,
                        "email": "kuphal_ashely@volkman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ashely Kuphal",
                        "technical_group_id": 128
                      },
                      {
                        "id": 126,
                        "_type": "attendant",
                        "active": true,
                        "email": "ret_hayes_dino@zemlak-cartwright.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Dino Hayes Ret.",
                        "technical_group_id": 129
                      },
                      {
                        "id": 127,
                        "_type": "attendant",
                        "active": true,
                        "email": "mohr_sen_mauricio@kessler-crist.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sen. Mauricio Mohr",
                        "technical_group_id": 130
                      },
                      {
                        "id": 130,
                        "_type": "attendant",
                        "active": true,
                        "email": "kozey.otha@volkman.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Otha Kozey",
                        "technical_group_id": 135
                      },
                      {
                        "id": 137,
                        "_type": "attendant",
                        "active": true,
                        "email": "vonrueden_giuseppe@prosacco.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Giuseppe VonRueden",
                        "technical_group_id": 142
                      },
                      {
                        "id": 147,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Deedee Runte",
                        "technical_group_id": 1
                      },
                      {
                        "id": 206,
                        "_type": "attendant",
                        "active": true,
                        "email": "miss_tesha_skiles@schuppe.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Miss Tesha Skiles",
                        "technical_group_id": 207
                      },
                      {
                        "id": 207,
                        "_type": "attendant",
                        "active": true,
                        "email": "durgan.christopher.ms@mayert-doyle.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ms. Christopher Durgan",
                        "technical_group_id": 207
                      },
                      {
                        "id": 208,
                        "_type": "attendant",
                        "active": true,
                        "email": "johnson.sabina@hudson.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sabina Johnson",
                        "technical_group_id": 207
                      },
                      {
                        "id": 245,
                        "_type": "attendant",
                        "active": true,
                        "email": "wolf_paul_dc@murray.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Paul Wolf DC",
                        "technical_group_id": 246
                      },
                      {
                        "id": 250,
                        "_type": "attendant",
                        "active": true,
                        "email": "avery_weimann@streich.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Avery Weimann",
                        "technical_group_id": 251
                      },
                      {
                        "id": 259,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rivka Prohaska",
                        "technical_group_id": 1
                      },
                      {
                        "id": 260,
                        "_type": "attendant",
                        "active": true,
                        "email": "merle.davis@wilderman-wyman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Merle Davis",
                        "technical_group_id": 261
                      },
                      {
                        "id": 261,
                        "_type": "client",
                        "active": true,
                        "email": "lon_v_lemke@mayer.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lon Lemke V",
                        "technical_group_id": null
                      }
                    ]
                  },
                  "Lista todos usuários ativos": {
                    "value": [
                      {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:25Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      {
                        "id": 7,
                        "_type": null,
                        "active": true,
                        "email": "fay_lupe@kozey.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lupe Fay",
                        "technical_group_id": null
                      },
                      {
                        "id": 49,
                        "_type": "admin",
                        "active": true,
                        "email": "departments_spec_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rowena Gerhold",
                        "technical_group_id": 49
                      },
                      {
                        "id": 100,
                        "_type": "attendant",
                        "active": true,
                        "email": "amb_tressie_johnston@crooks.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Amb. Tressie Johnston",
                        "technical_group_id": 101
                      },
                      {
                        "id": 103,
                        "_type": "attendant",
                        "active": true,
                        "email": "prof.murazik.malcolm@legros.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Prof. Malcolm Murazik",
                        "technical_group_id": 105
                      },
                      {
                        "id": 109,
                        "_type": "attendant",
                        "active": true,
                        "email": "lockman.marty@bergnaum.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Marty Lockman",
                        "technical_group_id": 111
                      },
                      {
                        "id": 125,
                        "_type": "attendant",
                        "active": true,
                        "email": "kuphal_ashely@volkman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ashely Kuphal",
                        "technical_group_id": 128
                      },
                      {
                        "id": 126,
                        "_type": "attendant",
                        "active": true,
                        "email": "ret_hayes_dino@zemlak-cartwright.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Dino Hayes Ret.",
                        "technical_group_id": 129
                      },
                      {
                        "id": 127,
                        "_type": "attendant",
                        "active": true,
                        "email": "mohr_sen_mauricio@kessler-crist.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sen. Mauricio Mohr",
                        "technical_group_id": 130
                      },
                      {
                        "id": 130,
                        "_type": "attendant",
                        "active": true,
                        "email": "kozey.otha@volkman.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Otha Kozey",
                        "technical_group_id": 135
                      },
                      {
                        "id": 137,
                        "_type": "attendant",
                        "active": true,
                        "email": "vonrueden_giuseppe@prosacco.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Giuseppe VonRueden",
                        "technical_group_id": 142
                      },
                      {
                        "id": 147,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Deedee Runte",
                        "technical_group_id": 1
                      },
                      {
                        "id": 206,
                        "_type": "attendant",
                        "active": true,
                        "email": "miss_tesha_skiles@schuppe.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Miss Tesha Skiles",
                        "technical_group_id": 207
                      },
                      {
                        "id": 207,
                        "_type": "attendant",
                        "active": true,
                        "email": "durgan.christopher.ms@mayert-doyle.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ms. Christopher Durgan",
                        "technical_group_id": 207
                      },
                      {
                        "id": 208,
                        "_type": "attendant",
                        "active": true,
                        "email": "johnson.sabina@hudson.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sabina Johnson",
                        "technical_group_id": 207
                      },
                      {
                        "id": 245,
                        "_type": "attendant",
                        "active": true,
                        "email": "wolf_paul_dc@murray.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Paul Wolf DC",
                        "technical_group_id": 246
                      },
                      {
                        "id": 250,
                        "_type": "attendant",
                        "active": true,
                        "email": "avery_weimann@streich.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Avery Weimann",
                        "technical_group_id": 251
                      },
                      {
                        "id": 259,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rivka Prohaska",
                        "technical_group_id": 1
                      },
                      {
                        "id": 260,
                        "_type": "attendant",
                        "active": true,
                        "email": "merle.davis@wilderman-wyman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Merle Davis",
                        "technical_group_id": 261
                      },
                      {
                        "id": 261,
                        "_type": "client",
                        "active": true,
                        "email": "lon_v_lemke@mayer.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lon Lemke V",
                        "technical_group_id": null
                      }
                    ]
                  },
                  "Lista todos usuários inativos": {
                    "value": [
                      {
                        "id": 264,
                        "_type": "client",
                        "active": false,
                        "email": "hansen.sherie@batz-cronin.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sherie Hansen",
                        "technical_group_id": null
                      }
                    ]
                  },
                  "Lista todos usuários que possuem autenticação de 2 fatores inativa": {
                    "value": [
                      {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:25Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      {
                        "id": 7,
                        "_type": null,
                        "active": true,
                        "email": "fay_lupe@kozey.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lupe Fay",
                        "technical_group_id": null
                      },
                      {
                        "id": 49,
                        "_type": "admin",
                        "active": true,
                        "email": "departments_spec_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rowena Gerhold",
                        "technical_group_id": 49
                      },
                      {
                        "id": 100,
                        "_type": "attendant",
                        "active": true,
                        "email": "amb_tressie_johnston@crooks.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Amb. Tressie Johnston",
                        "technical_group_id": 101
                      },
                      {
                        "id": 103,
                        "_type": "attendant",
                        "active": true,
                        "email": "prof.murazik.malcolm@legros.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Prof. Malcolm Murazik",
                        "technical_group_id": 105
                      },
                      {
                        "id": 109,
                        "_type": "attendant",
                        "active": true,
                        "email": "lockman.marty@bergnaum.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Marty Lockman",
                        "technical_group_id": 111
                      },
                      {
                        "id": 125,
                        "_type": "attendant",
                        "active": true,
                        "email": "kuphal_ashely@volkman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ashely Kuphal",
                        "technical_group_id": 128
                      },
                      {
                        "id": 126,
                        "_type": "attendant",
                        "active": true,
                        "email": "ret_hayes_dino@zemlak-cartwright.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Dino Hayes Ret.",
                        "technical_group_id": 129
                      },
                      {
                        "id": 127,
                        "_type": "attendant",
                        "active": true,
                        "email": "mohr_sen_mauricio@kessler-crist.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sen. Mauricio Mohr",
                        "technical_group_id": 130
                      },
                      {
                        "id": 130,
                        "_type": "attendant",
                        "active": true,
                        "email": "kozey.otha@volkman.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Otha Kozey",
                        "technical_group_id": 135
                      },
                      {
                        "id": 137,
                        "_type": "attendant",
                        "active": true,
                        "email": "vonrueden_giuseppe@prosacco.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Giuseppe VonRueden",
                        "technical_group_id": 142
                      },
                      {
                        "id": 147,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Deedee Runte",
                        "technical_group_id": 1
                      },
                      {
                        "id": 206,
                        "_type": "attendant",
                        "active": true,
                        "email": "miss_tesha_skiles@schuppe.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Miss Tesha Skiles",
                        "technical_group_id": 207
                      },
                      {
                        "id": 207,
                        "_type": "attendant",
                        "active": true,
                        "email": "durgan.christopher.ms@mayert-doyle.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ms. Christopher Durgan",
                        "technical_group_id": 207
                      },
                      {
                        "id": 208,
                        "_type": "attendant",
                        "active": true,
                        "email": "johnson.sabina@hudson.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sabina Johnson",
                        "technical_group_id": 207
                      },
                      {
                        "id": 245,
                        "_type": "attendant",
                        "active": true,
                        "email": "wolf_paul_dc@murray.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Paul Wolf DC",
                        "technical_group_id": 246
                      },
                      {
                        "id": 250,
                        "_type": "attendant",
                        "active": true,
                        "email": "avery_weimann@streich.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Avery Weimann",
                        "technical_group_id": 251
                      },
                      {
                        "id": 259,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rivka Prohaska",
                        "technical_group_id": 1
                      },
                      {
                        "id": 260,
                        "_type": "attendant",
                        "active": true,
                        "email": "merle.davis@wilderman-wyman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Merle Davis",
                        "technical_group_id": 261
                      },
                      {
                        "id": 261,
                        "_type": "client",
                        "active": true,
                        "email": "lon_v_lemke@mayer.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lon Lemke V",
                        "technical_group_id": null
                      }
                    ]
                  },
                  "Lista todos usuários do tipo 'client'": {
                    "value": [
                      {
                        "id": 261,
                        "_type": "client",
                        "active": true,
                        "email": "lon_v_lemke@mayer.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Lon Lemke V",
                        "technical_group_id": null
                      },
                      {
                        "id": 264,
                        "_type": "client",
                        "active": false,
                        "email": "hansen.sherie@batz-cronin.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sherie Hansen",
                        "technical_group_id": null
                      }
                    ]
                  },
                  "Lista todos usuários do tipo 'attendant'": {
                    "value": [
                      {
                        "id": 100,
                        "_type": "attendant",
                        "active": true,
                        "email": "amb_tressie_johnston@crooks.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Amb. Tressie Johnston",
                        "technical_group_id": 101
                      },
                      {
                        "id": 103,
                        "_type": "attendant",
                        "active": true,
                        "email": "prof.murazik.malcolm@legros.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Prof. Malcolm Murazik",
                        "technical_group_id": 105
                      },
                      {
                        "id": 109,
                        "_type": "attendant",
                        "active": true,
                        "email": "lockman.marty@bergnaum.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Marty Lockman",
                        "technical_group_id": 111
                      },
                      {
                        "id": 125,
                        "_type": "attendant",
                        "active": true,
                        "email": "kuphal_ashely@volkman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ashely Kuphal",
                        "technical_group_id": 128
                      },
                      {
                        "id": 126,
                        "_type": "attendant",
                        "active": true,
                        "email": "ret_hayes_dino@zemlak-cartwright.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Dino Hayes Ret.",
                        "technical_group_id": 129
                      },
                      {
                        "id": 127,
                        "_type": "attendant",
                        "active": true,
                        "email": "mohr_sen_mauricio@kessler-crist.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sen. Mauricio Mohr",
                        "technical_group_id": 130
                      },
                      {
                        "id": 130,
                        "_type": "attendant",
                        "active": true,
                        "email": "kozey.otha@volkman.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Otha Kozey",
                        "technical_group_id": 135
                      },
                      {
                        "id": 137,
                        "_type": "attendant",
                        "active": true,
                        "email": "vonrueden_giuseppe@prosacco.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Giuseppe VonRueden",
                        "technical_group_id": 142
                      },
                      {
                        "id": 206,
                        "_type": "attendant",
                        "active": true,
                        "email": "miss_tesha_skiles@schuppe.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Miss Tesha Skiles",
                        "technical_group_id": 207
                      },
                      {
                        "id": 207,
                        "_type": "attendant",
                        "active": true,
                        "email": "durgan.christopher.ms@mayert-doyle.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Ms. Christopher Durgan",
                        "technical_group_id": 207
                      },
                      {
                        "id": 208,
                        "_type": "attendant",
                        "active": true,
                        "email": "johnson.sabina@hudson.example",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Sabina Johnson",
                        "technical_group_id": 207
                      },
                      {
                        "id": 245,
                        "_type": "attendant",
                        "active": true,
                        "email": "wolf_paul_dc@murray.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Paul Wolf DC",
                        "technical_group_id": 246
                      },
                      {
                        "id": 250,
                        "_type": "attendant",
                        "active": true,
                        "email": "avery_weimann@streich.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Avery Weimann",
                        "technical_group_id": 251
                      },
                      {
                        "id": 260,
                        "_type": "attendant",
                        "active": true,
                        "email": "merle.davis@wilderman-wyman.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Merle Davis",
                        "technical_group_id": 261
                      },
                      {
                        "id": 262,
                        "_type": "attendant",
                        "active": true,
                        "email": "user_with_all_licenses@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Alex Ullrich",
                        "technical_group_id": 262
                      },
                      {
                        "id": 263,
                        "_type": "attendant",
                        "active": true,
                        "email": "user_with_only_tickets_licenses@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Virgina Leannon Sr.",
                        "technical_group_id": 263
                      },
                      {
                        "id": 265,
                        "_type": "attendant",
                        "active": true,
                        "email": "attendant@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Clemente Feest",
                        "technical_group_id": 260
                      },
                      {
                        "id": 266,
                        "_type": "attendant",
                        "active": true,
                        "email": "attendant2@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Santo Cremin",
                        "technical_group_id": 260
                      }
                    ]
                  },
                  "Lista todos usuários do tipo 'admin'": {
                    "value": [
                      {
                        "id": 1,
                        "_type": "admin",
                        "active": true,
                        "email": "api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": "2026-08-27T21:04:25Z",
                        "name": "Kum Rau Sr.",
                        "technical_group_id": 1
                      },
                      {
                        "id": 49,
                        "_type": "admin",
                        "active": true,
                        "email": "departments_spec_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rowena Gerhold",
                        "technical_group_id": 49
                      },
                      {
                        "id": 147,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.test",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Deedee Runte",
                        "technical_group_id": 1
                      },
                      {
                        "id": 259,
                        "_type": "admin",
                        "active": true,
                        "email": "new_api_user@example.com",
                        "gauth_enabled": false,
                        "last_login_at": null,
                        "name": "Rivka Prohaska",
                        "technical_group_id": 1
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do grupo de permissões"
                      },
                      "_type": {
                        "type": "string",
                        "description": "Tipo de usuário",
                        "enum": [
                          "client",
                          "attendant",
                          "admin"
                        ],
                        "nullable": true
                      },
                      "active": {
                        "type": "boolean",
                        "description": "O usuário está ativo?"
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "description": "E-mail do usuário"
                      },
                      "gauth_enabled": {
                        "type": "boolean",
                        "description": "O usuário possui autenticação de dois fatores habilitada?"
                      },
                      "last_login_at": {
                        "type": "string",
                        "nullable": true,
                        "description": "Data do último acesso do usuário"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do usuário"
                      },
                      "technical_group_id": {
                        "type": "integer",
                        "nullable": true,
                        "description": "ID do grupo de atendentes do usuário"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "email",
                      "gauth_enabled",
                      "active"
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Algo deu errado com os parâmetros informados**",
            "content": {
              "application/json": {
                "examples": {
                  "gauth_enabled - Não pode ser um valor diferente de true e false": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "gauth_enabled": [
                          "teste is not a valid option. Gauth enabled must be 'true' or 'false'"
                        ]
                      }
                    }
                  },
                  "active - Não pode ser um valor diferente de true e false": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "active": [
                          "123 is not a valid option. Active must be 'true' or 'false'"
                        ]
                      }
                    }
                  },
                  "type - Não pode ser um valor diferente de 'client', 'attendant' e 'admin'": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "type": [
                          "a is not a valid option. Type must be 'client', 'attendant' or 'admin'"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar usuários"
          }
        ]
      },
      "post": {
        "summary": "Criar usuário",
        "tags": [
          "Usuários"
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "parameters": [

        ],
        "description": "Cria um novo usuário dentro da sua organização e envia um convite por e-mail, para que ele complete o acesso.\n\nPara que o usuário seja criado com sucesso, é obrigatório que ele possua **ao menos uma licença ativa**, que deve ser atribuída durante a requisição de criação. Você deve indicar explicitamente uma das seguintes opções:\n* `tickets_license: true` - para atribuir a licença de Tickets\n* `whatsapp_license: true` - para atribuir a licença de whatsapp\n      \nCaso nenhuma dessas duas licenças seja informada, a criação será rejeitada.",
        "operationId": "post_users",
        "responses": {
          "201": {
            "description": "### **Usuário criado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "message": "User was successfully invited",
                  "user": {
                    "id": 268,
                    "name": "Nome do usuário",
                    "email": "my_mail@example.com",
                    "user_licenses": {
                      "whatsapp_license": true,
                      "tickets_license": true,
                      "splashtop_license": true,
                      "remote_access_license": true,
                      "api_license": true
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "### **Problemas na criação do usuário**",
            "content": {
              "application/json": {
                "examples": {
                  "Não preencheu nome e e-mail": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "name": [
                          "can't be blank"
                        ],
                        "email": [
                          "can't be blank"
                        ]
                      }
                    }
                  },
                  "Informou um grupo técnico que não existe": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "technical_group_id": [
                          "this technical group doesn't exists in your organization"
                        ],
                        "email": [
                          "is invalid"
                        ]
                      }
                    }
                  },
                  "Informou um e-mail que já está em uso": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "email": [
                          "has already been taken"
                        ]
                      }
                    }
                  },
                  "Informou e-mail em um formato inválido (não são aceitos e-mail que contenham as palavras teste, 123, estudante, blog e email": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "email": [
                          "Invalid email address. Email cannot contains the following words: 'teste', '123', 'estudante', 'blog' and 'email'"
                        ]
                      }
                    }
                  },
                  "Criação de usuário sem as licenças obrigatórias": {
                    "description": "### **Como corrigir esse erro?**\nEsse erro ocorre quando a tentativa de criar um usuário não informa **nenhuma licença obrigatória**.\nPara que o usuário seja criado com sucesso, é necessário atribuir pelo menos uma das seguintes licenças na requisição:\n* `tickets_license: true`\n* `whatsapp_license: true`\n\nBasta enviar **uma dessas opções** (ou ambas) no corpo da requisição.",
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "error": [
                          "At least one Tickets or Whatsapp license must be enabled to create the user"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar usuários"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "technical_group_id"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Brad Pitt",
                    "description": "Nome do usuário"
                  },
                  "email": {
                    "type": "string",
                    "example": "brad.pitt@gmail.com",
                    "description": "E-mail do usuário"
                  },
                  "technical_group_id": {
                    "type": "integer",
                    "example": 1,
                    "description": "ID do grupo de permissões do usuário"
                  },
                  "whatsapp_license": {
                    "type": "boolean",
                    "description": "Licença **whatsapp**"
                  },
                  "tickets_license": {
                    "type": "boolean",
                    "description": "Licença **Tickets**"
                  },
                  "remote_access_license": {
                    "type": "boolean",
                    "description": "Licença **Acesso remoto**"
                  },
                  "api_license": {
                    "type": "boolean",
                    "description": "Licença **API por usuário**"
                  },
                  "splashtop_license": {
                    "type": "boolean",
                    "description": "Licença **Splashtop RMM**"
                  }
                }
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "Nome do usuário",
                    "email": "my_mail@example.com",
                    "technical_group_id": 260,
                    "whatsapp_license": true,
                    "tickets_license": true,
                    "remote_access_license": true,
                    "api_license": true,
                    "splashtop_license": true
                  }
                }
              }
            }
          },
          "required": true
        }
      }
    },
    "/users/{id}": {
      "get": {
        "summary": "Exibir usuário",
        "tags": [
          "Usuários"
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do usuário",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "description": "Exibe informações detalhadas sobre um determinado usuário.",
        "x-badges": [
          {
            "color": "green",
            "label": "Livre: Exibir informações do seu usuário"
          },
          {
            "color": "red",
            "label": "Gerenciar usuários"
          }
        ],
        "operationId": "get_users_id",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "example": {
                  "id": 260,
                  "_type": "attendant",
                  "active": true,
                  "client_ids": [

                  ],
                  "email": "merle.davis@wilderman-wyman.test",
                  "email_info_alert": null,
                  "extension": null,
                  "gauth_enabled": false,
                  "last_login_at": "2026-08-27T21:04:26Z",
                  "name": "Merle Davis",
                  "signature": null,
                  "technical_group_id": 261,
                  "telephone": null
                }
              }
            }
          },
          "404": {
            "description": "### **Usuário não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find User with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**\nEssa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40301,
                  "message": "Access Denied - You cannot access this route",
                  "detail": {
                    "error": [
                      "You are not authorized to access this page."
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Atualizar usuário",
        "tags": [
          "Usuários"
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "description": "Essa é uma rota de gerenciamento, onde você pode atualizar o perfil de qualquer usuário da sua organização.\n> Se for atualizado o e-mail do usuário, será necessário confirmar essa alteração no novo e-mail. \n> Mais informações estão inclusas no atributo `email_info_alert`, retornado na resposta dessa requisição.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID do usuário que será atualizado",
            "example": 1,
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "operationId": "put_users_id",
        "responses": {
          "200": {
            "description": "### **Atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "_type": "attendant",
                  "active": true,
                  "client_ids": [

                  ],
                  "email": "api_user@example.test",
                  "email_info_alert": "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address.: user_new_mail@example.com",
                  "extension": 123,
                  "gauth_enabled": false,
                  "last_login_at": "2026-08-27T21:04:26Z",
                  "name": "Novo nome para o usuário",
                  "signature": "Assinatura do usuário",
                  "technical_group_id": 260,
                  "telephone": "+15029999999",
                  "user_licenses": {
                    "whatsapp_license": true,
                    "tickets_license": false,
                    "splashtop_license": false,
                    "remote_access_license": false,
                    "api_license": true
                  }
                }
              }
            }
          },
          "404": {
            "description": "### **Usuário não encontrado**",
            "content": {
              "application/json": {
                "example": {
                  "error_code": 40401,
                  "message": "Cannot find record",
                  "detail": {
                    "error": [
                      "Couldn't find User with 'id'=\"0\""
                    ]
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "",
            "content": {
              "application/json": {
                "examples": {
                  "name - empty": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "name": [
                          "can't be blank"
                        ]
                      }
                    }
                  },
                  "technical_group_id - not exists": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "technical_group_id": [
                          "this technical group doesn't exists in your organization"
                        ]
                      }
                    }
                  },
                  "email - not valid": {
                    "value": {
                      "error_code": 42202,
                      "message": "Problems with body attributes values",
                      "detail": {
                        "email": [
                          "is invalid"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "400": {
            "description": "### **Problemas com a requisição**",
            "content": {
              "application/json": {
                "examples": {
                  "trying to update not permitted params: created_at": {
                    "value": {
                      "error_code": 40001,
                      "message": "Unknown parameters",
                      "detail": {
                        "error": [
                          "found unpermitted parameter: :created_at"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**",
            "content": {
              "application/json": {
                "examples": {
                  "Sem a permissão necessária": {
                    "description": "Essa resposta significa que o seu grupo de permissões não possui a permissão necessária para acessar essa rota.\n\n- Para atualizar **somente usuários clientes**, a permissão <span style=\"margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Cadastrar solicitantes e usuários clientes</span> é suficiente\n\n- Porém, para atualizar **outros tipos de usuários**, será necessária a permissão <span style=\"margin:1px; padding:1px 8px; font-weight:bold; border-radius:12px;  background-color: var(--light-red, var(--input-bg)); color:var(--red); border:1px solid var(--red)\"><!--?lit$8458964218$-->Gerenciar usuários</span>",
                    "value": {
                      "error_code": 40301,
                      "message": "Access Denied - You cannot access this route",
                      "detail": {
                        "error": [
                          "You cannot update technical users"
                        ]
                      }
                    }
                  },
                  "Não é possível atualizar licenças de usuários clientes": {
                    "value": {
                      "error_code": 40302,
                      "message": "Access Denied - Unauthorized parameter usage",
                      "detail": {
                        "error": [
                          "Licenses cannot be added to client-type users"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "color": "red",
            "label": "Gerenciar usuários"
          },
          {
            "color": "red",
            "label": "Cadastrar solicitantes e usuários clientes"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "New User Name",
                    "description": "Novo nome do usuário"
                  },
                  "email": {
                    "type": "string",
                    "example": "my_new_mail@mail.com",
                    "description": "Novo e-mail do usuário. Lembrando que será necessário confirmar"
                  },
                  "technical_group_id": {
                    "type": "integer",
                    "example": 2,
                    "description": "Novo grupo técnico do usuário"
                  },
                  "active": {
                    "type": "boolean",
                    "example": false,
                    "description": "Inativar ou ativar o usuário"
                  },
                  "extension": {
                    "type": "integer",
                    "description": "Atualizar o ramal do usuários"
                  },
                  "telephone": {
                    "type": "string",
                    "example": "(47) 99999-9999",
                    "description": "Atualizar o telefone do usuário"
                  },
                  "client_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "IDs dos clientes que serão relacionados com o usuário"
                  },
                  "country_code": {
                    "type": "string",
                    "default": "\"BR\"",
                    "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\n\nEste atributo será utilizado para validar se o número de telefone informado é um número válido em um outro país diferente do Brasil"
                  },
                  "whatsapp_license": {
                    "type": "boolean",
                    "description": "Licença **whatsapp**"
                  },
                  "tickets_license": {
                    "type": "boolean",
                    "description": "Licença **Tickets**"
                  },
                  "remote_access_license": {
                    "type": "boolean",
                    "description": "Licença **Acesso remoto**"
                  },
                  "api_license": {
                    "type": "boolean",
                    "description": "Licença **API por usuário**"
                  },
                  "splashtop_license": {
                    "type": "boolean",
                    "description": "Licença **Splashtop RMM**"
                  }
                }
              },
              "examples": {
                "Atualizar usuário atendente/admin": {
                  "summary": "Atualizar usuário atendente/admin",
                  "value": {
                    "name": "Novo nome para o usuário",
                    "email": "user_new_mail@example.com",
                    "technical_group_id": 260,
                    "active": true,
                    "extension": 123,
                    "telephone": "(502) 999-9999",
                    "country_code": "US"
                  }
                },
                "Atualizar usuário cliente": {
                  "summary": "Atualizar usuário cliente",
                  "value": {
                    "name": "Novo nome para o usuário cliente",
                    "email": "client_user_new_mail@example.com",
                    "client_ids": [
                      45
                    ],
                    "active": false,
                    "extension": 321,
                    "telephone": "(502) 999-9999",
                    "country_code": "US"
                  }
                },
                "Atualizar licenças": {
                  "summary": "Atualizar licenças",
                  "value": {
                    "api_license": true,
                    "tickets_license": true,
                    "whatsapp_license": true,
                    "splashtop_license": true,
                    "remote_access_license": true
                  }
                }
              }
            }
          },
          "description": "- Só é possível atualizar a informação de `client_ids` em usuários do tipo cliente ou em usuários sem grupo\n- Só é possível atualizar a informação de `technical_group_id` em usuários que não sejam do tipo cliente\n- Só é possível adicionar ou remover licenças em usuários que não sejam do tipo cliente"
        }
      }
    },
    "/technical-users": {
      "get": {
        "summary": "Listar usuários técnicos",
        "tags": [
          "Usuários"
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "description": "Número da página a ser retornada",
            "required": false
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 200
            },
            "description": "Número de itens retornados na página",
            "required": false
          },
          {
            "name": "desk_id",
            "in": "query",
            "description": "Informar um ID de mesa de serviço, para filtrar usuários que possuem acesso e podem ser responsáveis de tickets em uma determinada mesa de serviço",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "description": "Informar um ID de cliente, para filtrar usuários que possuem acesso e podem ser responsáveis de tickets de um determinado cliente",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filtra a busca por usuários cujo nome contém o valor informado",
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "examples": {
              "0": {
                "value": ""
              },
              "1": {
                "value": "lucas",
                "description": "Retorna usuários como: '**Lucas** Lima' ou 'João **Lucas**'"
              },
              "2": {
                "value": "luc",
                "description": "Retorna usuários com nomes que contenham 'luc', como: '**Luc**as', '**Luc**iana' ou 'Fe**luc**io'"
              }
            },
            "required": false
          },
          {
            "name": "email",
            "in": "query",
            "description": "Filtra a busca por usuários cujo e-mail contém o valor informado",
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "examples": {
              "0": {
                "value": ""
              },
              "Início do e-mail": {
                "value": "supor",
                "description": "Retorna usuários com e-mails como: '**supor**te@​tiflux.com' ou 'user@**supor**te.com'"
              },
              "Final do e-mail": {
                "value": "@tiflux.com",
                "description": "Retorna todos os usuários com e-mails do domínio **tiflux.com**"
              }
            },
            "required": false
          },
          {
            "name": "with_tickets_license",
            "in": "query",
            "description": "Filtra usuários que possuem licença de tickets. Por padrão é `true`, retornando apenas usuários elegíveis para serem responsáveis de tickets. Informe `false` para retornar todos os usuários técnicos ativos, independentemente de possuírem licença de tickets",
            "schema": {
              "type": "boolean",
              "default": "true"
            },
            "examples": {
              "true": {
                "value": true,
                "description": "Com licença de tickets (padrão)"
              },
              "false": {
                "value": false,
                "description": "Sem filtro de licença"
              }
            },
            "required": false
          }
        ],
        "description": "Lista os usuários técnicos ativos da organização.\n\n> **Licença de tickets:** apenas usuários com licença de tickets podem ser responsáveis por tickets. Por padrão, esta rota retorna somente esses usuários.\nUse `with_tickets_license=false` para listar todos os técnicos ativos sem aplicar esse filtro.",
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          },
          {
            "color": "orange",
            "label": "Licença Tickets"
          }
        ],
        "operationId": "get_technical-users",
        "responses": {
          "200": {
            "description": "",
            "headers": {
              "X-Total-Items": {
                "schema": {
                  "type": "integer"
                },
                "description": "O número total de itens que podem ser retornados nessa requisição"
              }
            },
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 262,
                    "email": "user_with_all_licenses@example.com",
                    "name": "Alex Ullrich"
                  },
                  {
                    "id": 100,
                    "email": "amb_tressie_johnston@crooks.test",
                    "name": "Amb. Tressie Johnston"
                  },
                  {
                    "id": 125,
                    "email": "kuphal_ashely@volkman.test",
                    "name": "Ashely Kuphal"
                  },
                  {
                    "id": 250,
                    "email": "avery_weimann@streich.test",
                    "name": "Avery Weimann"
                  },
                  {
                    "id": 147,
                    "email": "new_api_user@example.test",
                    "name": "Deedee Runte"
                  },
                  {
                    "id": 126,
                    "email": "ret_hayes_dino@zemlak-cartwright.test",
                    "name": "Dino Hayes Ret."
                  },
                  {
                    "id": 137,
                    "email": "vonrueden_giuseppe@prosacco.test",
                    "name": "Giuseppe VonRueden"
                  },
                  {
                    "id": 279,
                    "email": "technical_user_tickets@example.test",
                    "name": "Herminia Hand"
                  },
                  {
                    "id": 109,
                    "email": "lockman.marty@bergnaum.test",
                    "name": "Marty Lockman"
                  },
                  {
                    "id": 260,
                    "email": "merle.davis@wilderman-wyman.test",
                    "name": "Merle Davis"
                  },
                  {
                    "id": 282,
                    "email": "kathlene.fritsch.miss@tillman.test",
                    "name": "Miss Kathlene Fritsch"
                  },
                  {
                    "id": 130,
                    "email": "kozey.otha@volkman.example",
                    "name": "Otha Kozey"
                  },
                  {
                    "id": 245,
                    "email": "wolf_paul_dc@murray.test",
                    "name": "Paul Wolf DC"
                  },
                  {
                    "id": 103,
                    "email": "prof.murazik.malcolm@legros.test",
                    "name": "Prof. Malcolm Murazik"
                  },
                  {
                    "id": 127,
                    "email": "mohr_sen_mauricio@kessler-crist.example",
                    "name": "Sen. Mauricio Mohr"
                  },
                  {
                    "id": 263,
                    "email": "user_with_only_tickets_licenses@example.com",
                    "name": "Virgina Leannon Sr."
                  }
                ],
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID do usuário"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do usuário"
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "description": "E-mail do usuário"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "email"
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "### **Problemas com permissão**",
            "content": {
              "application/json": {
                "examples": {
                  "Sem licença de tickets": {
                    "description": "### **Como corrigir o erro `40304`?**\nEsse erro indica que o seu usuário não possui a **licença necessária** para acessar esta rota.\n\nPara corrigir, solicite ao administrador do seu sistema que habilite a **licença de Tickets** para o seu usuário. Alternativamente, usuários com permissão para gerenciar outros usuários também podem habilitar esta licença.\n\n### **Exemplo de resposta de erro:**",
                    "value": {
                      "error_code": 40304,
                      "message": "Access Denied - Missing required license",
                      "detail": {
                        "error": [
                          "You do not have the required 'tickets' license to access this route"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          },
          "422": {
            "description": "### **Parâmetros inválidos**",
            "content": {
              "application/json": {
                "examples": {
                  "desk_id - valor não inteiro": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "desk_id": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "client_id - valor não inteiro": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "client_id": [
                          "is not a number"
                        ]
                      }
                    }
                  },
                  "with_tickets_license - valor inválido": {
                    "value": {
                      "error_code": 42201,
                      "message": "Problems with query or path parameters values",
                      "detail": {
                        "with_tickets_license": [
                          "invalid is not a valid option. With tickets license must be true and false"
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/errors_object"
                }
              }
            }
          }
        }
      }
    },
    "/users/profile": {
      "put": {
        "summary": "Atualizar perfil do seu usuário",
        "tags": [
          "Usuários"
        ],
        "security": [
          {
            "BearerAuth": [

            ]
          }
        ],
        "description": "Nessa rota você pode atualizar o perfil do seu usuário.\n> Se for atualizado o e-mail do seu usuário, será necessário confirmar essa alteração no novo e-mail. \n> Mais informações estão inclusas no atributo `email_info_alert`, retornado na resposta dessa requisição.",
        "parameters": [

        ],
        "x-badges": [
          {
            "color": "green",
            "label": "Livre"
          }
        ],
        "operationId": "put_users_profile",
        "responses": {
          "200": {
            "description": "### **Perfil atualizado com sucesso**",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "_type": "admin",
                  "active": true,
                  "client_ids": [

                  ],
                  "email": "api_user@example.test",
                  "email_info_alert": "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address.: my_new_mail@mail.com",
                  "extension": 500,
                  "gauth_enabled": false,
                  "last_login_at": "2026-08-27T21:04:28Z",
                  "name": "New User Name",
                  "signature": "Assinatura do usuário",
                  "technical_group_id": 1,
                  "telephone": "+15029999999"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/update_profile"
              },
              "examples": {
                "request_example_1": {
                  "summary": "A request example",
                  "value": {
                    "name": "New User Name",
                    "email": "my_new_mail@mail.com",
                    "telephone": "(502) 999-9999",
                    "country_code": "US",
                    "extension": 500
                  }
                }
              }
            }
          },
          "description": "O Body da requisição possui o seguinte padrão. Se for informada algum parâmetro errado, será disparado um erro"
        }
      }
    }
  },
  "components": {
    "schemas": {
      "errors_object": {
        "type": "object",
        "description": "# Schema de Erro\n\nTodas as requisições que apresentarem algum `erro` na aplicação (respostas diferentes do status `200`, `201` e `204`), terão em seu body, uma mensagem de erro no formato apresentado a seguir:\n```json\n{\n  \"error_code\": 40301,\n  \"message\": \"Access Denied - You cannot access this route\",\n  \"detail\": {\n      \"info\": [\n          \"You are not authorized to access this page.\"\n      ]\n  }\n}\n```\nBaseado no padrão de erro *RFC 7807 - Problem Details for HTTP APIs*. Essa padronização serve para você identificar com mais clareza o que aconteceu, categorizar os erros e tomar as devidas ações para tratá-lo.\n* `error_code`: Além do status HTTP da resposta, esse código de erro serve para categorizar e especificar com mais detalhes a falha que acabou de acontecer.\n* `message`: Um resumo breve e claro do erro, apropriado para ser apresentado como uma mensagem de erro ao usuário final.\n* `detail`: Um objeto contendo informações adicionais sobre o erro, como falhas específicas de validação ou outras mensagens contextuais.\n\n\n",
        "properties": {
          "error_code": {
            "type": "integer",
            "description": "## Código mais específico do problema.\nAlém do status da resposta, foi adicionado esse código de erro, para categorizar e especificar a falha que acabou de acontecer.\n\n`Exemplo`: 40301\n<br/>\n___"
          },
          "message": {
            "type": "string",
            "description": "## Breve descrição do problema apresentado\n\n`Exemplo`: \"Access Denied\"\n___"
          },
          "detail": {
            "type": "object",
            "description": "## Detalhes do problema ocorrido\n\n`Exemplo`: \n\n```json\n{ \n  \"info\": [ \"You are not authorized to access this page.\" ] \n}\n```\n___\n",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "entities": {
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "entity_field_id"
              ],
              "additionalProperties": false,
              "properties": {
                "entity_field_id": {
                  "type": "integer",
                  "description": "Identificador único do campo da entidade que será atualizada"
                },
                "entity_field_option_id": {
                  "type": "integer",
                  "nullable": true,
                  "default": null,
                  "description": "Identificador da opção do campo personalizado a ser atualizado.\n\nEste atributo só deve ser informado para campos do tipo `checkbox`"
                },
                "value": {
                  "type": "string",
                  "nullable": true,
                  "default": null,
                  "description": "Novo valor do campo personalizado.\n\nO formato específico de como o valor dessa string deve ser preenchido, depende do tipo de campo personalizado. Consulte a documentação para obter mais detalhes"
                },
                "country_code": {
                  "type": "string",
                  "default": "\"BR\"",
                  "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\n\nEste atributo será utilizado para validar se o número de telefone informado é um número válido no país informado.\nEsse atributo só será utilizado ao atualizar um campo personalizado do tipo `phone`"
                }
              }
            }
          }
        }
      },
      "create_client_user": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Nome do usuário cliente"
              },
              "email": {
                "type": "string",
                "description": "E-mail do usuário cliente. Lembrando que será necessário confirmar"
              },
              "extension": {
                "type": "integer",
                "description": "Ramal do usuário",
                "minimum": 0,
                "maximum": 9999
              },
              "authorization_flow": {
                "type": "boolean",
                "description": "Esse usuário será um autorizador para novos tickets?",
                "default": false
              },
              "telephone": {
                "type": "string",
                "description": "Telefone do usuário"
              },
              "country_code": {
                "type": "string",
                "default": "\"BR\"",
                "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\nEste atributo será utilizado para validar se o número de telefone informado é um número válido em um outro país diferente do Brasil"
              }
            },
            "required": [
              "name",
              "email"
            ]
          }
        }
      },
      "update_profile": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "New User Name",
            "description": "Novo nome da sua conta"
          },
          "email": {
            "type": "string",
            "example": "my_new_mail@mail.com",
            "description": "Novo e-mail do seu usuário. Lembrando que será necessário confirmar"
          },
          "extension": {
            "type": "integer",
            "example": 500,
            "description": "Atualizar o ramal da sua conta de usuário"
          },
          "telephone": {
            "type": "string",
            "example": "(502) 999-9999",
            "description": "Atualizar o telefone do seu usuário"
          },
          "country_code": {
            "type": "string",
            "example": "US",
            "default": "BR",
            "description": "Código de país no formato <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\" target=\"_blank\">ISO 3166-1 alpha-2</a>\n\nEste atributo será utilizado para validar se o número de telefone informado é um número válido em um outro país diferente do Brasil"
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "description": "Your Bearer token",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.tiflux.com/api/v2",
      "description": "Ambiente de produção"
    },
    {
      "url": "http://localhost:9898/api/v2",
      "description": "Ambiente de testes"
    },
    {
      "url": "https://dende.tiflux.com/api/v2",
      "description": "Ambiente de testes do SAQ"
    }
  ]
}