{
  "openapi": "3.1.0",
  "info": {
    "title": "API CPC — UPA Santo Antônio — DEV FAKE da unidade",
    "version": "1.0.0",
    "description": "Ambiente exclusivo de teste com dados fictícios e procedures fake v3. Consulte /manual.md. Credencial entregue separadamente."
  },
  "servers": [
    {
      "url": "https://api-prontuario.cpcbrasil.com",
      "description": "Desenvolvimento da unidade — somente dados fictícios"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "operationId": "health",
        "summary": "Saúde da API sem consultar o banco",
        "security": [],
        "responses": {
          "200": {
            "description": "API disponível",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status"
                  ],
                  "properties": {
                    "status": {
                      "const": "ok"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/token": {
      "post": {
        "operationId": "issueToken",
        "summary": "Emitir JWT com credenciais da integração",
        "description": "JWT próprio, validade de 900 segundos, corpo até 4096 bytes. Limite de 20 tentativas por origem em 60 segundos. Use HTTPS.",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientCredentials"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Token emitido; Cache-Control: no-store",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Token"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "JSON ou campos inválidos",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Corpo acima de 4096 bytes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "415": {
            "description": "Content-Type diferente de application/json",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "429": {
            "description": "Limite de tentativas atingido",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Segundos até nova tentativa",
                "schema": {
                  "type": "integer",
                  "minimum": 1
                }
              },
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/me": {
      "get": {
        "operationId": "currentClient",
        "summary": "Consultar identidade e permissões da integração autenticada",
        "responses": {
          "200": {
            "description": "Identidade validada com configuração atual do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Principal"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pacientes/cpf/{cpf}": {
      "get": {
        "operationId": "patientsByCpf",
        "summary": "Consultar CPF e histórico por procedures fictícias",
        "description": "Modo fake somente em desenvolvimento; modo real exige configuração e procedures concordantes. Exige simultaneamente pacientes:read, atendimentos:read e internacoes:read. Retorna todos os cadastros em páginas, sem deduplicar por CPF. Rejeita parâmetros desconhecidos. Nulos preservados, listas vazias quando não há registros. CNES e demais campos fictícios não identificam uma unidade real. Campos conferidos com a seção 4.3 da OS; aceite de dados reais ocorre em homologação.",
        "parameters": [
          {
            "name": "cpf",
            "in": "path",
            "required": true,
            "description": "CPF com dígitos verificadores válidos, sem máscara ou no formato 000.000.000-00. Exemplo fictício de desenvolvimento.",
            "schema": {
              "type": "string",
              "pattern": "^(?:[0-9]{11}|[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}-[0-9]{2})$",
              "example": "52998224725"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página dos cadastros encontrados, ordenados por código.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de cadastros nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          },
          {
            "name": "pagina_historico",
            "in": "query",
            "description": "Página do histórico de cada cadastro retornado.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite_historico",
            "in": "query",
            "description": "Máximo de eventos por cadastro, incluindo atendimentos e internações.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "CPF inválido, parâmetro desconhecido ou paginação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaCpf"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pacientes/cns/{numero_sus}": {
      "get": {
        "operationId": "patientsByCns",
        "summary": "Consultar CNS e histórico",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read, atendimentos:read e internacoes:read. Retorna todos os cadastros com histórico paginado. CNS consultado como identificador de 15 dígitos; sem validação de dígito verificador.",
        "parameters": [
          {
            "name": "numero_sus",
            "in": "path",
            "required": true,
            "description": "CNS fictício de desenvolvimento.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]{15}$",
              "example": "700000000000000"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página dos cadastros encontrados, ordenados por código.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de cadastros nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          },
          {
            "name": "pagina_historico",
            "in": "query",
            "description": "Página do histórico de cada cadastro retornado.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite_historico",
            "in": "query",
            "description": "Máximo de eventos por cadastro, incluindo atendimentos e internações.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaPacientes"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pacientes/busca": {
      "get": {
        "operationId": "patientsByNameBirth",
        "summary": "Consultar nome completo e nascimento",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read, atendimentos:read e internacoes:read. Retorna todos os cadastros com histórico paginado. Nome completo por igualdade, ignorando caixa e espaços nas pontas; sem busca parcial. Homônimos retornam todos os cadastros em páginas.",
        "parameters": [
          {
            "name": "nome",
            "in": "query",
            "required": true,
            "description": "Nome completo; entre 3 e 100 caracteres, sem controles.",
            "schema": {
              "type": "string",
              "minLength": 3,
              "maxLength": 100,
              "example": "PACIENTE FICTICIO SEM DADOS REAIS"
            }
          },
          {
            "name": "data_nascimento",
            "in": "query",
            "required": true,
            "description": "Data civil de nascimento.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "1990-01-15"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página dos cadastros encontrados, ordenados por código.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de cadastros nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          },
          {
            "name": "pagina_historico",
            "in": "query",
            "description": "Página do histórico de cada cadastro retornado.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite_historico",
            "in": "query",
            "description": "Máximo de eventos por cadastro, incluindo atendimentos e internações.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaPacientes"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/atendimentos/{numero_atendimento}": {
      "get": {
        "operationId": "attendanceByNumber",
        "summary": "Consultar atendimento ou internação pelo número",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read, atendimentos:read e internacoes:read. Retorna o evento correspondente com cadastro, documentos e historico_paciente paginado, em lista de zero ou um item. O histórico inclui atendimentos e internações do cadastro vinculado. Sem recorte de 24 horas.",
        "parameters": [
          {
            "name": "numero_atendimento",
            "in": "path",
            "required": true,
            "description": "Número da conta, de 1 a 12 dígitos.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]{1,12}$",
              "example": "910001"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página de eventos, ordenados por entrada e número.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de eventos retornados nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          },
          {
            "name": "pagina_historico",
            "in": "query",
            "description": "Página do histórico de cada cadastro retornado.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite_historico",
            "in": "query",
            "description": "Máximo de eventos por cadastro, incluindo atendimentos e internações.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaNumeroAtendimento"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/unidades/{cnes}/atendimentos": {
      "get": {
        "operationId": "unitAttendances",
        "summary": "Consultar snapshot de atendimentos por CNES",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read e atendimentos:read. Atendimentos de tipos 1 e 2. Retorna entradas até o instante atual da unidade que estejam ativas ou tenham saída nas últimas 24 horas, com limite inferior inclusivo. Referência gerada no servidor, timezone configurado.",
        "parameters": [
          {
            "name": "cnes",
            "in": "path",
            "required": true,
            "description": "CNES fictício de desenvolvimento; 7 dígitos.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]{7}$",
              "example": "0000000"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página de eventos, ordenados por entrada e número.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de eventos retornados nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaEventos"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/unidades/atendimentos": {
      "get": {
        "operationId": "datedAttendances",
        "summary": "Consultar atendimentos por data ou período",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read e atendimentos:read. Atendimentos de tipos 1 e 2. Obrigatório informar CNES e exatamente uma data ou um período completo. Filtro pelo instante de entrada/admissão; inclui o dia final inteiro. Máximo de 31 dias, contando ambos os extremos. Sem recorte de 24 horas.",
        "parameters": [
          {
            "name": "cnes",
            "in": "query",
            "required": true,
            "description": "CNES obrigatório para delimitar a unidade.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]{7}$",
              "example": "0000000"
            }
          },
          {
            "name": "data_atendimento",
            "in": "query",
            "required": false,
            "description": "Data de entrada; usar esta data ou o par data_inicial/data_final.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-10-20"
            }
          },
          {
            "name": "data_inicial",
            "in": "query",
            "required": false,
            "description": "Primeiro dia inclusivo; exige data_final, sem combinar com data_atendimento.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-10-20"
            }
          },
          {
            "name": "data_final",
            "in": "query",
            "required": false,
            "description": "Último dia inteiro inclusivo; intervalo máximo de 31 dias. Data máxima 9999-12-30.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-10-21"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página de eventos, ordenados por entrada e número.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de eventos retornados nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaEventos"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/unidades/{cnes}/internacoes": {
      "get": {
        "operationId": "unitAdmissions",
        "summary": "Consultar snapshot de internacoes por CNES",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read e internacoes:read. Internações de tipo 3. Retorna entradas até o instante atual da unidade que estejam ativas ou tenham saída nas últimas 24 horas, com limite inferior inclusivo. Referência gerada no servidor, timezone configurado.",
        "parameters": [
          {
            "name": "cnes",
            "in": "path",
            "required": true,
            "description": "CNES fictício de desenvolvimento; 7 dígitos.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]{7}$",
              "example": "0000000"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página de eventos, ordenados por entrada e número.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de eventos retornados nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaEventos"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/unidades/internacoes": {
      "get": {
        "operationId": "datedAdmissions",
        "summary": "Consultar internacoes por data ou período",
        "description": "Contrato SQL v3; dados fictícios em desenvolvimento e modo real habilitado por configuração. Rejeita parâmetros desconhecidos. Exige pacientes:read e internacoes:read. Internações de tipo 3. Obrigatório informar CNES e exatamente uma data ou um período completo. Filtro pelo instante de entrada/admissão; inclui o dia final inteiro. Máximo de 31 dias, contando ambos os extremos. Sem recorte de 24 horas.",
        "parameters": [
          {
            "name": "cnes",
            "in": "query",
            "required": true,
            "description": "CNES obrigatório para delimitar a unidade.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]{7}$",
              "example": "0000000"
            }
          },
          {
            "name": "data_internacao",
            "in": "query",
            "required": false,
            "description": "Data de entrada; usar esta data ou o par data_inicial/data_final.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-10-21"
            }
          },
          {
            "name": "data_inicial",
            "in": "query",
            "required": false,
            "description": "Primeiro dia inclusivo; exige data_final, sem combinar com data_internacao.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-10-20"
            }
          },
          {
            "name": "data_final",
            "in": "query",
            "required": false,
            "description": "Último dia inteiro inclusivo; intervalo máximo de 31 dias. Data máxima 9999-12-30.",
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-10-21"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "description": "Página de eventos, ordenados por entrada e número.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "name": "limite",
            "in": "query",
            "description": "Máximo de eventos retornados nesta página.",
            "schema": {
              "type": "integer",
              "default": 10,
              "minimum": 1,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Credencial ou token inválido, ausente, expirado ou revogado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                },
                "description": "Desafio Bearer; invalid_token quando aplicável"
              }
            }
          },
          "403": {
            "description": "HTTPS obrigatório ou permissão insuficiente",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "400": {
            "description": "Identificador, campos de busca, datas, paginação ou combinação de filtros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Modo fake bloqueado fora de desenvolvimento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Consulta concluída; meta.dados_ficticios identifica o modo. Ausência de resultado ou página além do fim retorna data vazia com 200. Cache-Control: no-store.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsultaEventos"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "description": "Identificador da requisição gerado pela API",
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "413": {
            "description": "Limite de volume atingido, sem retornar conteúdo truncado. Reduza a paginação; persistindo com limite 1, revisar o volume de documentos do evento.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "JWT HS256 emitido por esta API. Enviar somente no cabeçalho Authorization: Bearer TOKEN."
      }
    },
    "schemas": {
      "ClientCredentials": {
        "type": "object",
        "required": [
          "client_id",
          "client_secret"
        ],
        "properties": {
          "client_id": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{2,63}$",
            "example": "sms_osid"
          },
          "client_secret": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "writeOnly": true
          }
        }
      },
      "Token": {
        "type": "object",
        "required": [
          "access_token",
          "token_type",
          "expires_in"
        ],
        "properties": {
          "access_token": {
            "type": "string"
          },
          "token_type": {
            "const": "Bearer"
          },
          "expires_in": {
            "type": "integer",
            "const": 900
          }
        }
      },
      "Principal": {
        "type": "object",
        "required": [
          "client_id",
          "profile",
          "permissions",
          "environment"
        ],
        "properties": {
          "client_id": {
            "type": "string"
          },
          "profile": {
            "type": "string",
            "example": "consulta_clinica"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[a-z_]+:read$"
            },
            "example": [
              "pacientes:read",
              "atendimentos:read",
              "internacoes:read"
            ]
          },
          "environment": {
            "type": "string",
            "enum": [
              "desenvolvimento",
              "homologacao",
              "producao"
            ]
          }
        }
      },
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "status",
              "message",
              "request_id"
            ],
            "properties": {
              "status": {
                "type": "integer"
              },
              "message": {
                "type": "string"
              },
              "request_id": {
                "type": "string",
                "pattern": "^[a-f0-9]{32}$"
              }
            }
          }
        }
      },
      "PaginacaoClinica": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "pagina",
          "limite",
          "retornados",
          "tem_proxima"
        ],
        "properties": {
          "pagina": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "limite": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "retornados": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20
          },
          "tem_proxima": {
            "type": "boolean"
          }
        }
      },
      "EvolucaoClinica": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "codigo",
          "numero_atendimento",
          "categoria",
          "tipo_documento",
          "descricao_tipo_documento",
          "data_hora",
          "ativa",
          "anamnese",
          "exame_fisico",
          "suspeita_diagnostica",
          "evolucao",
          "conduta",
          "observacao"
        ],
        "properties": {
          "codigo": {
            "type": "string"
          },
          "numero_atendimento": {
            "type": "string"
          },
          "categoria": {
            "type": "string"
          },
          "tipo_documento": {
            "type": "string"
          },
          "descricao_tipo_documento": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "ativa": {
            "type": "boolean"
          },
          "anamnese": {
            "type": [
              "string",
              "null"
            ]
          },
          "exame_fisico": {
            "type": [
              "string",
              "null"
            ]
          },
          "suspeita_diagnostica": {
            "type": [
              "string",
              "null"
            ]
          },
          "evolucao": {
            "type": [
              "string",
              "null"
            ]
          },
          "conduta": {
            "type": [
              "string",
              "null"
            ]
          },
          "observacao": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "ExecucaoClinica": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "prescricao",
          "item",
          "horario",
          "tipo",
          "codigo",
          "descricao",
          "data_hora"
        ],
        "properties": {
          "prescricao": {
            "type": "string"
          },
          "item": {
            "type": "string"
          },
          "horario": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24
          },
          "tipo": {
            "type": "string",
            "enum": [
              "medicamento",
              "procedimento"
            ]
          },
          "codigo": {
            "type": [
              "string",
              "null"
            ]
          },
          "descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "EventoAtendimento": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "numero_atendimento",
          "tipo",
          "cnes",
          "data_hora_entrada",
          "data_hora_saida",
          "classificacao_risco",
          "diagnostico",
          "cid",
          "desfecho",
          "leito",
          "data_hora_primeira_reavaliacao",
          "data_hora_segunda_reavaliacao",
          "evolucoes",
          "medicacoes_administradas",
          "procedimentos_realizados",
          "codigo_paciente",
          "nome_unidade",
          "hora_entrada",
          "hora_saida",
          "classificacao_risco_nivel",
          "data_hora_classificacao",
          "profissional_medico",
          "especialidade",
          "data_hora_atendimento",
          "cid_descricao",
          "destino",
          "data_hora_destino",
          "anamnese",
          "data_hora_admissao",
          "hora_admissao",
          "tipo_leito",
          "tipo_internacao",
          "tipo_saida",
          "setor_atual",
          "procedencia",
          "convenio",
          "motivo_internacao",
          "numero_prontuario",
          "observacao"
        ],
        "properties": {
          "numero_atendimento": {
            "type": "string"
          },
          "tipo": {
            "type": "integer",
            "enum": [
              1,
              2,
              3
            ],
            "description": "1 ambulatório; 2 emergência; 3 internação."
          },
          "cnes": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_entrada": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "data_hora_saida": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "classificacao_risco": {
            "type": [
              "string",
              "null"
            ]
          },
          "diagnostico": {
            "type": [
              "string",
              "null"
            ]
          },
          "cid": {
            "type": [
              "string",
              "null"
            ]
          },
          "desfecho": {
            "type": [
              "string",
              "null"
            ]
          },
          "leito": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_primeira_reavaliacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "data_hora_segunda_reavaliacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "evolucoes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvolucaoClinica"
            }
          },
          "medicacoes_administradas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecucaoClinica"
            }
          },
          "procedimentos_realizados": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecucaoClinica"
            }
          },
          "codigo_paciente": {
            "type": "string"
          },
          "nome_unidade": {
            "type": [
              "string",
              "null"
            ]
          },
          "hora_entrada": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "hora_saida": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "classificacao_risco_nivel": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "maximum": 5
          },
          "data_hora_classificacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "profissional_medico": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "nome",
              "crm",
              "cpf"
            ],
            "properties": {
              "nome": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "crm": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cpf": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "especialidade": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_atendimento": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cid_descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "destino": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_destino": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "anamnese": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_admissao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "hora_admissao": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "tipo_leito": {
            "type": [
              "string",
              "null"
            ]
          },
          "tipo_internacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "tipo_saida": {
            "type": [
              "string",
              "null"
            ]
          },
          "setor_atual": {
            "type": [
              "string",
              "null"
            ]
          },
          "procedencia": {
            "type": [
              "string",
              "null"
            ]
          },
          "convenio": {
            "type": [
              "string",
              "null"
            ]
          },
          "motivo_internacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "numero_prontuario": {
            "type": [
              "string",
              "null"
            ]
          },
          "observacao": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "description": "Evento clínico com os campos comuns de porta e internação. Campos inaplicáveis ou ausentes são nulos. Horas são extraídas do instante completo conhecido. Anamnese, observação e seções de evolução são convertidas de RTF/texto legado para texto simples UTF-8."
      },
      "HistoricoPaciente": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data",
          "pagination"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventoAtendimento"
            },
            "maxItems": 20
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginacaoClinica"
          }
        },
        "description": "Histórico conjunto de atendimentos e internações; sem recorte de 24 horas. Página independente por cadastro, com os mesmos filtros pagina_historico/limite_historico. Ordenação crescente por entrada e número do atendimento. tipo=3 identifica internação."
      },
      "PacienteClinico": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "codigo",
          "nome",
          "cpf",
          "numero_sus",
          "data_nascimento",
          "sexo",
          "nome_mae",
          "endereco",
          "historico"
        ],
        "properties": {
          "codigo": {
            "type": "string"
          },
          "nome": {
            "type": [
              "string",
              "null"
            ]
          },
          "cpf": {
            "type": [
              "string",
              "null"
            ]
          },
          "numero_sus": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_nascimento": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "sexo": {
            "type": [
              "string",
              "null"
            ]
          },
          "nome_mae": {
            "type": [
              "string",
              "null"
            ]
          },
          "endereco": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "logradouro",
              "bairro",
              "cep",
              "cidade",
              "uf"
            ],
            "properties": {
              "logradouro": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "bairro": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cep": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cidade": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "uf": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "historico": {
            "$ref": "#/components/schemas/HistoricoPaciente"
          }
        }
      },
      "ConsultaCpf": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data",
          "pagination",
          "meta"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PacienteClinico"
            },
            "maxItems": 20
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginacaoClinica"
          },
          "meta": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "dados_ficticios",
              "contrato_provisorio",
              "versao_contrato"
            ],
            "properties": {
              "dados_ficticios": {
                "type": "boolean"
              },
              "contrato_provisorio": {
                "type": "boolean",
                "deprecated": true,
                "description": "Compatibilidade com a fase dev: true no modo fake, false no modo real. Não representa aceite clínico ou homologação."
              },
              "versao_contrato": {
                "const": 3
              }
            }
          }
        }
      },
      "ConsultaPacientes": {
        "$ref": "#/components/schemas/ConsultaCpf"
      },
      "CadastroPaciente": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "codigo",
          "nome",
          "cpf",
          "numero_sus",
          "data_nascimento",
          "sexo",
          "nome_mae",
          "endereco"
        ],
        "properties": {
          "codigo": {
            "type": "string"
          },
          "nome": {
            "type": [
              "string",
              "null"
            ]
          },
          "cpf": {
            "type": [
              "string",
              "null"
            ]
          },
          "numero_sus": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_nascimento": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "sexo": {
            "type": [
              "string",
              "null"
            ]
          },
          "nome_mae": {
            "type": [
              "string",
              "null"
            ]
          },
          "endereco": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "logradouro",
              "bairro",
              "cep",
              "cidade",
              "uf"
            ],
            "properties": {
              "logradouro": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "bairro": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cep": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cidade": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "uf": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      },
      "EventoComPaciente": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "numero_atendimento",
          "tipo",
          "cnes",
          "data_hora_entrada",
          "data_hora_saida",
          "classificacao_risco",
          "diagnostico",
          "cid",
          "desfecho",
          "leito",
          "data_hora_primeira_reavaliacao",
          "data_hora_segunda_reavaliacao",
          "evolucoes",
          "medicacoes_administradas",
          "procedimentos_realizados",
          "paciente",
          "codigo_paciente",
          "nome_unidade",
          "hora_entrada",
          "hora_saida",
          "classificacao_risco_nivel",
          "data_hora_classificacao",
          "profissional_medico",
          "especialidade",
          "data_hora_atendimento",
          "cid_descricao",
          "destino",
          "data_hora_destino",
          "anamnese",
          "data_hora_admissao",
          "hora_admissao",
          "tipo_leito",
          "tipo_internacao",
          "tipo_saida",
          "setor_atual",
          "procedencia",
          "convenio",
          "motivo_internacao",
          "numero_prontuario",
          "observacao"
        ],
        "properties": {
          "numero_atendimento": {
            "type": "string"
          },
          "tipo": {
            "type": "integer",
            "enum": [
              1,
              2,
              3
            ],
            "description": "1 ambulatório; 2 emergência; 3 internação."
          },
          "cnes": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_entrada": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "data_hora_saida": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "classificacao_risco": {
            "type": [
              "string",
              "null"
            ]
          },
          "diagnostico": {
            "type": [
              "string",
              "null"
            ]
          },
          "cid": {
            "type": [
              "string",
              "null"
            ]
          },
          "desfecho": {
            "type": [
              "string",
              "null"
            ]
          },
          "leito": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_primeira_reavaliacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "data_hora_segunda_reavaliacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "evolucoes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvolucaoClinica"
            }
          },
          "medicacoes_administradas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecucaoClinica"
            }
          },
          "procedimentos_realizados": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecucaoClinica"
            }
          },
          "paciente": {
            "$ref": "#/components/schemas/CadastroPaciente"
          },
          "codigo_paciente": {
            "type": "string"
          },
          "nome_unidade": {
            "type": [
              "string",
              "null"
            ]
          },
          "hora_entrada": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "hora_saida": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "classificacao_risco_nivel": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "maximum": 5
          },
          "data_hora_classificacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "profissional_medico": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "nome",
              "crm",
              "cpf"
            ],
            "properties": {
              "nome": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "crm": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cpf": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "especialidade": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_atendimento": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cid_descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "destino": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_destino": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "anamnese": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_admissao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "hora_admissao": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "tipo_leito": {
            "type": [
              "string",
              "null"
            ]
          },
          "tipo_internacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "tipo_saida": {
            "type": [
              "string",
              "null"
            ]
          },
          "setor_atual": {
            "type": [
              "string",
              "null"
            ]
          },
          "procedencia": {
            "type": [
              "string",
              "null"
            ]
          },
          "convenio": {
            "type": [
              "string",
              "null"
            ]
          },
          "motivo_internacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "numero_prontuario": {
            "type": [
              "string",
              "null"
            ]
          },
          "observacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "historico_paciente": {
            "$ref": "#/components/schemas/HistoricoPaciente",
            "description": "Presente na consulta por número; histórico paginado do paciente vinculado."
          }
        },
        "description": "Evento clínico com os campos comuns de porta e internação. Campos inaplicáveis ou ausentes são nulos. Horas são extraídas do instante completo conhecido. Anamnese, observação e seções de evolução são convertidas de RTF/texto legado para texto simples UTF-8."
      },
      "ConsultaEventos": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data",
          "pagination",
          "meta"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventoComPaciente"
            },
            "maxItems": 20
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginacaoClinica"
          },
          "meta": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "dados_ficticios",
              "contrato_provisorio",
              "versao_contrato"
            ],
            "properties": {
              "dados_ficticios": {
                "type": "boolean"
              },
              "contrato_provisorio": {
                "type": "boolean",
                "deprecated": true,
                "description": "Compatibilidade com a fase dev: true no modo fake, false no modo real. Não representa aceite clínico ou homologação."
              },
              "versao_contrato": {
                "const": 3
              }
            }
          }
        }
      },
      "EventoNumeroAtendimento": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "numero_atendimento",
          "tipo",
          "cnes",
          "data_hora_entrada",
          "data_hora_saida",
          "classificacao_risco",
          "diagnostico",
          "cid",
          "desfecho",
          "leito",
          "data_hora_primeira_reavaliacao",
          "data_hora_segunda_reavaliacao",
          "evolucoes",
          "medicacoes_administradas",
          "procedimentos_realizados",
          "paciente",
          "codigo_paciente",
          "nome_unidade",
          "hora_entrada",
          "hora_saida",
          "classificacao_risco_nivel",
          "data_hora_classificacao",
          "profissional_medico",
          "especialidade",
          "data_hora_atendimento",
          "cid_descricao",
          "destino",
          "data_hora_destino",
          "anamnese",
          "data_hora_admissao",
          "hora_admissao",
          "tipo_leito",
          "tipo_internacao",
          "tipo_saida",
          "setor_atual",
          "procedencia",
          "convenio",
          "motivo_internacao",
          "numero_prontuario",
          "observacao",
          "historico_paciente"
        ],
        "properties": {
          "numero_atendimento": {
            "type": "string"
          },
          "tipo": {
            "type": "integer",
            "enum": [
              1,
              2,
              3
            ],
            "description": "1 ambulatório; 2 emergência; 3 internação."
          },
          "cnes": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_entrada": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "data_hora_saida": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "classificacao_risco": {
            "type": [
              "string",
              "null"
            ]
          },
          "diagnostico": {
            "type": [
              "string",
              "null"
            ]
          },
          "cid": {
            "type": [
              "string",
              "null"
            ]
          },
          "desfecho": {
            "type": [
              "string",
              "null"
            ]
          },
          "leito": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_primeira_reavaliacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "data_hora_segunda_reavaliacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "evolucoes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvolucaoClinica"
            }
          },
          "medicacoes_administradas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecucaoClinica"
            }
          },
          "procedimentos_realizados": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecucaoClinica"
            }
          },
          "paciente": {
            "$ref": "#/components/schemas/CadastroPaciente"
          },
          "codigo_paciente": {
            "type": "string"
          },
          "nome_unidade": {
            "type": [
              "string",
              "null"
            ]
          },
          "hora_entrada": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "hora_saida": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "classificacao_risco_nivel": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "maximum": 5
          },
          "data_hora_classificacao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "profissional_medico": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "nome",
              "crm",
              "cpf"
            ],
            "properties": {
              "nome": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "crm": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "cpf": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "especialidade": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_atendimento": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cid_descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "destino": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_destino": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "anamnese": {
            "type": [
              "string",
              "null"
            ]
          },
          "data_hora_admissao": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "hora_admissao": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}$"
          },
          "tipo_leito": {
            "type": [
              "string",
              "null"
            ]
          },
          "tipo_internacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "tipo_saida": {
            "type": [
              "string",
              "null"
            ]
          },
          "setor_atual": {
            "type": [
              "string",
              "null"
            ]
          },
          "procedencia": {
            "type": [
              "string",
              "null"
            ]
          },
          "convenio": {
            "type": [
              "string",
              "null"
            ]
          },
          "motivo_internacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "numero_prontuario": {
            "type": [
              "string",
              "null"
            ]
          },
          "observacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "historico_paciente": {
            "$ref": "#/components/schemas/HistoricoPaciente",
            "description": "Presente na consulta por número; histórico paginado do paciente vinculado."
          }
        },
        "description": "Evento clínico com os campos comuns de porta e internação. Campos inaplicáveis ou ausentes são nulos. Horas são extraídas do instante completo conhecido. Anamnese, observação e seções de evolução são convertidas de RTF/texto legado para texto simples UTF-8."
      },
      "ConsultaNumeroAtendimento": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data",
          "pagination",
          "meta"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventoNumeroAtendimento"
            },
            "maxItems": 20
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginacaoClinica"
          },
          "meta": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "dados_ficticios",
              "contrato_provisorio",
              "versao_contrato"
            ],
            "properties": {
              "dados_ficticios": {
                "type": "boolean"
              },
              "contrato_provisorio": {
                "type": "boolean",
                "deprecated": true,
                "description": "Compatibilidade com a fase dev: true no modo fake, false no modo real. Não representa aceite clínico ou homologação."
              },
              "versao_contrato": {
                "const": 3
              }
            }
          }
        }
      }
    }
  },
  "x-procedure-contract-version": 2
}
