{
  "openapi": "3.1.0",
  "info": {
    "title": "Fábrica de Cálculos · APIs",
    "description": "Portal de documentação OpenAPI/Swagger das APIs da Fábrica de Cálculos.\n\n**Versões das fontes:** `prev-api` v4.0.5 · `prev-documentos` v0.1.19 · `rmi-api` v3.0.6 · `backoffice` v2.2.0 · `pdpj` v2.2.5",
    "version": "1.5.0"
  },
  "paths": {
    "/apps/api/v1/calculadoras": {
      "get": {
        "tags": [
          "Calculadoras"
        ],
        "summary": "Listar calculadoras disponíveis.",
        "description": "Retorna o catálogo público de calculadoras da Fábrica de Cálculos com URLs resolvidas para o ambiente atual.",
        "responses": {
          "200": {
            "description": "OK — catálogo público de calculadoras",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CalculadoraCatalogo"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/apps/api/v1/documentos-legais/{slug}": {
      "get": {
        "tags": [
          "Documentos legais"
        ],
        "summary": "Obter documento legal vigente por slug.",
        "description": "Retorna a versão publicada vigente do documento legal (ex.: termos-de-uso, aviso-de-privacidade), incluindo o corpo em HTML sanitizado e o identificador da versão (versaoId) para registro de aceite.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "termos-de-uso"
          }
        ],
        "responses": {
          "200": {
            "description": "OK — documento legal vigente",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/DocumentoLegalApi"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Documento legal não encontrado ou sem versão publicada"
          }
        }
      }
    },
    "/apps/api/v1/documentos-legais": {
      "get": {
        "tags": [
          "Documentos legais"
        ],
        "summary": "Listar documentos legais vigentes.",
        "description": "Retorna os documentos legais ativos com versão publicada (termos de uso, aviso de privacidade), sem o corpo — use o detalhe por slug para obter o conteúdo.",
        "responses": {
          "200": {
            "description": "OK — documentos legais vigentes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DocumentoLegalResumoApi"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/apps/api/v1/exchange": {
      "post": {
        "tags": [
          "Exchange"
        ],
        "summary": "Criar token de exchange (server-to-server)",
        "description": "Cria um token de uso único com TTL de 10 minutos para pré-carregar dados\nem uma calculadora da Fábrica de Cálculos. Endpoint server-to-server —\nrequer chave de API no header X-Api-Key. Devolve também `urlAbrir`, a URL\npública pronta para redirecionar o usuário diretamente para a calculadora\ndestino. Apenas calculadoras com a capacidade `exchange` habilitada aceitam\ncriação de token.\n",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "app",
                  "payload"
                ],
                "properties": {
                  "app": {
                    "type": "string",
                    "example": "rgps.beneficios"
                  },
                  "payload": {
                    "$ref": "#/components/schemas/PayloadExchange"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Token criado (TTL 10 min, uso único)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "201"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/DadosExchangeToken"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Parâmetros inválidos"
          },
          "401": {
            "description": "Chave de API inválida ou desativada"
          }
        }
      }
    },
    "/indices/api/v1/adiantamento": {
      "get": {
        "tags": [
          "Adiantamento de Abono"
        ],
        "summary": "Obter tabela de adiantamento de abono anual.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LinhaAdiantamentoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/moedas": {
      "get": {
        "tags": [
          "Moedas Pré-Real"
        ],
        "summary": "Obter tabela de moedas do período pré-Real.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LinhaMoedasApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/os121": {
      "get": {
        "tags": [
          "Reajuste OS 121"
        ],
        "summary": "Obter tabela de reajuste OS 121 (pré-Real).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LinhaOs121Api"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/reajuste-pre-real": {
      "get": {
        "tags": [
          "Reajuste Pré-Real"
        ],
        "summary": "Obter tabela de reajuste de benefícios pré-Real.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LinhaReajustePreRealApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/reajuste": {
      "get": {
        "tags": [
          "Reajuste de Benefícios"
        ],
        "summary": "Obter tabela de reajuste de benefícios previdenciários.",
        "parameters": [
          {
            "in": "query",
            "name": "competenciaInicial",
            "schema": {
              "type": "string"
            },
            "description": "Competência inicial (YYYY-MM)",
            "required": false
          },
          {
            "in": "query",
            "name": "competenciaFinal",
            "schema": {
              "type": "string"
            },
            "description": "Competência final (YYYY-MM)",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LinhaReajusteApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/tabela/{competencia}": {
      "get": {
        "tags": [
          "Tabela Índices"
        ],
        "summary": "Obter linha da tabela de indexadores e taxas de juros (Justiça Federal).",
        "description": "Gera e retorna uma linha da tabela de variação de indexadores e de taxas de juros utilizadas em cálculos judiciais na Justiça Federal.",
        "parameters": [
          {
            "in": "path",
            "name": "competencia",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Competência no formato 'aaaa-mm'"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/LinhaIndexadoresApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Competência não encontrada"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/tabela": {
      "get": {
        "tags": [
          "Tabela Índices"
        ],
        "summary": "Obter tabela de indexadores e taxas de juros (Justiça Federal).",
        "description": "Gera uma tabela de variação dos indexadores e de taxas de juros utilizados em cálculos judiciais na Justiça Federal.",
        "parameters": [
          {
            "in": "query",
            "name": "competenciaInicial",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Competência inicial para filtrar os resultados (formato: YYYY-MM)",
            "required": false
          },
          {
            "in": "query",
            "name": "competenciaFinal",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Competência final para filtrar os resultados (formato: YYYY-MM)",
            "required": false
          },
          {
            "in": "query",
            "name": "indice",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Lista de colunas/índices específicos a serem retornados",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/TabelaIndexadoresApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/indices/api/v1/tabua-mortalidade": {
      "get": {
        "tags": [
          "Tábua de Mortalidade"
        ],
        "summary": "Obter tábuas de mortalidade (IBGE).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "code",
                    "messages",
                    "result"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LinhaTabuaMortalidadeApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/status/{servico}/health": {
      "get": {
        "tags": [
          "Raiz"
        ],
        "summary": "Health-check operacional por serviço.",
        "description": "Retorna o estado de execução do serviço hospedeiro.\nOs paths correspondentes aos serviços ainda não são estáveis.\nHaverá mudanças em breve. Em caso de divergência ou de\npathname inesperado, responde 404.\n",
        "parameters": [
          {
            "in": "path",
            "name": "servico",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador operacional configurado pelo serviço respondente. Caminhos desconhecidos respondem 404."
          }
        ],
        "responses": {
          "200": {
            "description": "Serviço respondendo.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthCheckResposta"
                }
              }
            }
          },
          "404": {
            "description": "Subpath não corresponde à app respondente, ou pathname não é exatamente `/status/{servico}/health`."
          },
          "500": {
            "description": "Subpath operacional ausente ou inválido na app respondente."
          }
        }
      }
    },
    "/info": {
      "get": {
        "tags": [
          "Raiz"
        ],
        "summary": "Metadados públicos da Fábrica de Cálculos na PDPJ-br.",
        "description": "Retorna o cartão de apresentação da Fábrica de Cálculos no ecossistema\nPDPJ-br.\n",
        "responses": {
          "200": {
            "description": "Cartão de apresentação do portal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InfoPdpj"
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-atrasados/arquivo-calc/calcular": {
      "post": {
        "tags": [
          "Atrasados"
        ],
        "summary": "Cálculo de atrasados a partir de um arquivo .calc.",
        "description": "Leitura + cálculo em uma única chamada. Lê um arquivo de atrasados (.calc) e realiza a liquidação do(s) benefício(s) em atraso.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de atrasados em PDF e o devolve no envelope (`demonstrativoPdf`), acompanhado do demonstrativo de alçada (`demonstrativoAlcadaPdf`) quando o cálculo a apurou. O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "demonstrativoAlcadaPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoAtrasadosApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-atrasados/arquivo-calc/ler": {
      "post": {
        "tags": [
          "Atrasados"
        ],
        "summary": "Ler arquivo de atrasados (extensão .calc).",
        "description": "Ler um arquivo de atrasados (extensão .calc) e retornar os dados no formato esperado pelo cálculo de atrasados.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/CalculoAtrasadosApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-atrasados": {
      "post": {
        "tags": [
          "Atrasados"
        ],
        "summary": "Cálculo de valores de benefício em atraso.",
        "description": "Realiza o cálculo de liquidação do(s) benefício(s) em atraso, considerando descontos do período, honorários, multa, alçada e acordo.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de atrasados em PDF e o devolve no envelope (`demonstrativoPdf`), acompanhado do demonstrativo de alçada (`demonstrativoAlcadaPdf`) quando o cálculo a apurou. O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "demonstrativoAlcadaPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoAtrasadosApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoAtrasadosApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-atrasados/valor-causa": {
      "post": {
        "tags": [
          "Atrasados"
        ],
        "summary": "Valor da causa de uma liquidação de atrasados.",
        "description": "Apura o valor da causa — parcelas vencidas até o ajuizamento, atualizadas, mais doze vincendas (CPC, art. 292, §§ 1º e 2º) — e o compara com o limite de alçada dos Juizados Especiais Federais, sessenta salários mínimos na data do protocolo. Recebe os dados de `POST /rgps/api/v1/calculos-atrasados`, sem a citação — o valor da causa é apurado na data do protocolo, e a citação, sempre posterior, não é parâmetro dele; se vier, é ignorada —, e devolve apenas o resultado dessa comparação; para a liquidação completa, com diferenças, honorários e demonstrativos, use aquela rota. O cálculo executado é o mesmo, então o custo de processamento também é.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ValorCausaApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoValorCausaApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/arquivo-calc/calcular-por-grupos": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Cálculo de tempo (todos os grupos) a partir de um arquivo .calc.",
        "description": "Leitura + cálculo em uma única chamada. Lê um arquivo TC (.calc) e executa o cálculo de tempo de contribuição para todos os grupos de benefícios.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de tempo em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GrupoResultadoCalculoTempoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/arquivo-calc/calcular": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Cálculo de tempo a partir de um arquivo .calc.",
        "description": "Leitura + cálculo em uma única chamada. Lê um arquivo TC (.calc) e executa o cálculo de tempo de contribuição com análise de benefícios.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de tempo em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoTempoApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/arquivo-calc/ler": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Ler arquivo TC (extensão .calc).",
        "description": "Ler um arquivo TC (extensão .calc) e retornar os dados no formato esperado pelo cálculo de tempo.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/CalculoTempoApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/carta/ler": {
      "post": {
        "deprecated": true,
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados da Carta de Concessão.",
        "description": "DEPRECIADO — use `/rgps/api/v1/documentos/carta/ler`, no serviço de leitura documental. Este caminho deixa de responder em 30/09/2026; a resposta traz os cabeçalhos `Deprecation`, `Sunset` e `Link` da RFC 8594. Extrai identificação, dados do benefício e salários do PBC de uma Carta de Concessão do INSS, no formato esperado pelo cálculo de tempo. Aceita PDF (`application/pdf`) ou texto puro (`text/plain`). Quando o PDF contém mais de uma Carta completa, considera-se o ÚLTIMO documento identificado; a separação de múltiplos documentos ocorre apenas em PDF (texto puro é tratado como documento único). Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraCartaApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor"
          },
          "422": {
            "description": "Nenhuma Carta de Concessão foi identificada no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/cnis/ler": {
      "post": {
        "deprecated": true,
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados do CNIS.",
        "description": "DEPRECIADO — use `/rgps/api/v1/documentos/cnis/ler`, no serviço de leitura documental. Este caminho deixa de responder em 30/09/2026; a resposta traz os cabeçalhos `Deprecation`, `Sunset` e `Link` da RFC 8594. Extrai os dados de um extrato do Cadastro Nacional de Informações Sociais do INSS, no formato esperado pelo cálculo de tempo. Aceita PDF (`application/pdf`) ou texto puro (`text/plain`). Quando o PDF contém mais de um extrato CNIS completo, considera-se o ÚLTIMO documento identificado; a separação de múltiplos documentos ocorre apenas em PDF (texto puro é tratado como documento único). Na entrada em texto puro, o campo `anoCivil` pode ficar incompleto, pois depende da estrutura de páginas do PDF. Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário. PDFs de CNIS têm o teto de 5000 páginas.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraCnisApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor ou o teto de 5000 páginas"
          },
          "422": {
            "description": "Nenhum extrato CNIS foi identificado no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Cálculo de tempo de contribuição e análise de benefícios.",
        "description": "Calcula o tempo de contribuição e verifica se o segurado cumpre requisitos para a concessão de benefícios.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de tempo em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoTempoApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoTempoApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/pap/ler": {
      "post": {
        "deprecated": true,
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Segmentação e extração de documentos de um PAP.",
        "description": "DEPRECIADO — use `/rgps/api/v1/documentos/pap/ler`, no serviço de leitura documental. Este caminho deixa de responder em 30/09/2026; a resposta traz os cabeçalhos `Deprecation`, `Sunset` e `Link` da RFC 8594. Recebe o PDF de um Processo Administrativo Previdenciário (ou qualquer PDF com documentos previdenciários), identifica os documentos conhecidos e devolve os dados extraídos de CNIS, RDCTC e Carta de Concessão no mesmo formato dos endpoints de leitura dedicados — dispensando a chamada individual a `cnis/ler`, `rdctc/ler` e `carta/ler`. Somente documentos identificados com certeza são devolvidos, agrupados por tipo e na ordem em que aparecem no PDF (campo `ordem`), com a faixa de páginas de cada exemplar. Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraPapApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor"
          },
          "422": {
            "description": "Nenhum CNIS, RDCTC ou Carta de Concessão foi identificado no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/por-grupos": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Cálculo de tempo de contribuição para todos os grupos de benefícios.",
        "description": "Calcula o tempo de contribuição e verifica requisitos para a concessão de benefícios em todos os grupos possíveis para o segurado.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de tempo em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GrupoResultadoCalculoTempoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoTempoApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/prevjud/calcular-por-grupos": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Cálculo de tempo por grupos a partir de dados PrevJud.",
        "description": "Leitura + cálculo em uma única chamada. Recebe o JSON do serviço PrevJud (PDPJ-Br) e calcula o tempo de contribuição para todos os grupos de benefícios aplicáveis ao segurado.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de tempo em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/GrupoResultadoCalculoTempoApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoTempoPrevjudApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/prevjud/calcular": {
      "post": {
        "tags": [
          "Tempo"
        ],
        "summary": "Cálculo de tempo de contribuição a partir de dados PrevJud.",
        "description": "Leitura + cálculo em uma única chamada. Recebe o JSON do serviço PrevJud (PDPJ-Br) e executa o cálculo de tempo de contribuição com análise de elegibilidade a benefícios.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de tempo em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoTempoApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "Serviço de permalink indisponível ou não configurado"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoTempoPrevjudApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/prevjud/ler": {
      "post": {
        "deprecated": true,
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados do json PrevJud/PDPJ-br.",
        "description": "DEPRECIADO — use `/rgps/api/v1/documentos/prevjud/ler`, no serviço de leitura documental. Este caminho deixa de responder em 30/09/2026; a resposta traz os cabeçalhos `Deprecation`, `Sunset` e `Link` da RFC 8594. Extrai os dados de um json do serviço PrevJud da Plataforma Digital do Poder Judiciário Brasileiro para utilização nos cálculos de tempo da Fábrica de Cálculos.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraPrevjudApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-tempo/rdctc/ler": {
      "post": {
        "deprecated": true,
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados do RDCTC.",
        "description": "DEPRECIADO — use `/rgps/api/v1/documentos/rdctc/ler`, no serviço de leitura documental. Este caminho deixa de responder em 30/09/2026; a resposta traz os cabeçalhos `Deprecation`, `Sunset` e `Link` da RFC 8594. Extrai os dados de um Resumo de Documentos para Cálculo de Tempo de Contribuição (RDCTC) do INSS, no formato esperado pelo cálculo de tempo. Aceita PDF (`application/pdf`) ou texto puro (`text/plain`). Quando o PDF contém mais de um RDCTC completo, considera-se o ÚLTIMO documento identificado; a separação de múltiplos documentos ocorre apenas em PDF (texto puro é tratado como documento único). Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraRdctcApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor"
          },
          "422": {
            "description": "Nenhum documento RDCTC foi identificado no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/documentos/carta/ler": {
      "post": {
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados da Carta de Concessão.",
        "description": "Extrai identificação, dados do benefício e salários do PBC de uma Carta de Concessão do INSS, no formato esperado pelo cálculo de tempo. Aceita PDF (`application/pdf`) ou texto puro (`text/plain`). Quando o PDF contém mais de uma Carta completa, considera-se o ÚLTIMO documento identificado; a separação de múltiplos documentos ocorre apenas em PDF (texto puro é tratado como documento único). Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário. Na superfície publicada, o multipart pode usar `content-length` ou `transfer-encoding: chunked`.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraCartaApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor"
          },
          "422": {
            "description": "Nenhuma Carta de Concessão foi identificada no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "504": {
            "description": "O processamento excedeu o tempo limite"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/documentos/cnis/ler": {
      "post": {
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados do CNIS.",
        "description": "Extrai os dados de um extrato do Cadastro Nacional de Informações Sociais do INSS, no formato esperado pelo cálculo de tempo. Aceita PDF (`application/pdf`) ou texto puro (`text/plain`). Quando o PDF contém mais de um extrato CNIS completo, considera-se o ÚLTIMO documento identificado; a separação de múltiplos documentos ocorre apenas em PDF (texto puro é tratado como documento único). Na entrada em texto puro, o campo `anoCivil` pode ficar incompleto, pois depende da estrutura de páginas do PDF. Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário. PDFs de CNIS têm o teto de 5000 páginas. Na superfície publicada, o multipart pode usar `content-length` ou `transfer-encoding: chunked`.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraCnisApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor ou o teto de 5000 páginas"
          },
          "422": {
            "description": "Nenhum extrato CNIS foi identificado no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "504": {
            "description": "O processamento excedeu o tempo limite"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/documentos/pap/ler": {
      "post": {
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Segmentação e extração de documentos de um PAP.",
        "description": "Recebe o PDF de um Processo Administrativo Previdenciário (ou qualquer PDF com documentos previdenciários), identifica os documentos conhecidos e devolve os dados extraídos de CNIS, RDCTC e Carta de Concessão no mesmo formato dos endpoints de leitura dedicados — dispensando a chamada individual a `cnis/ler`, `rdctc/ler` e `carta/ler`. Somente documentos identificados com certeza são devolvidos, agrupados por tipo e na ordem em que aparecem no PDF (campo `ordem`), com a faixa de páginas de cada exemplar. Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário. Na superfície publicada, o multipart pode usar `content-length` ou `transfer-encoding: chunked`.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraPapApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor"
          },
          "422": {
            "description": "Nenhum CNIS, RDCTC ou Carta de Concessão foi identificado no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "504": {
            "description": "O processamento excedeu o tempo limite"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/documentos/prevjud/ler": {
      "post": {
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados do json PrevJud/PDPJ-br.",
        "description": "Extrai os dados de um json do serviço PrevJud da Plataforma Digital do Poder Judiciário Brasileiro para utilização nos cálculos de tempo da Fábrica de Cálculos. Na superfície publicada, o multipart pode usar `content-length` ou `transfer-encoding: chunked`.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraPrevjudApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/documentos/rdctc/ler": {
      "post": {
        "tags": [
          "Tempo",
          "Documentos"
        ],
        "summary": "Extração de dados do RDCTC.",
        "description": "Extrai os dados de um Resumo de Documentos para Cálculo de Tempo de Contribuição (RDCTC) do INSS, no formato esperado pelo cálculo de tempo. Aceita PDF (`application/pdf`) ou texto puro (`text/plain`). Quando o PDF contém mais de um RDCTC completo, considera-se o ÚLTIMO documento identificado; a separação de múltiplos documentos ocorre apenas em PDF (texto puro é tratado como documento único). Limite de tamanho por classe de consumidor da chave de API: 20 MB por padrão; 150 MB para a classe judiciário. Na superfície publicada, o multipart pode usar `content-length` ou `transfer-encoding: chunked`.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoLeituraRdctcApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (upload malformado, MIME não aceito ou PDF corrompido)"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo da classe do consumidor"
          },
          "422": {
            "description": "Nenhum documento RDCTC foi identificado no arquivo enviado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "504": {
            "description": "O processamento excedeu o tempo limite"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/arquivo-calc/calcular-desvinculada": {
      "post": {
        "tags": [
          "RMI Desvinculada"
        ],
        "summary": "Cálculo de RMI desvinculada a partir de arquivo .calc.",
        "description": "Lê um arquivo .calc e calcula a RMI desvinculada.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de RMI em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoRmiDesvinculadaApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "API de índices ou serviço de permalink indisponível"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/arquivo-calc/calcular/async": {
      "post": {
        "tags": [
          "RMI Async"
        ],
        "summary": "Cria um job assíncrono de cálculo de RMI a partir de arquivo .calc.",
        "description": "Enfileira o cálculo em background e devolve um identificador para consulta posterior.",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "description": "Identificador de até 128 caracteres para repetir a mesma criação sem duplicar o job.",
            "schema": {
              "type": "string",
              "maxLength": 128
            }
          },
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 120
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Job criado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "in-progress"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "202"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/RespostaCriacaoJobRmiApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "409": {
            "description": "Idempotency-Key reutilizada com conteúdo diferente"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "429": {
            "description": "Capacidade temporariamente indisponível; consulte Retry-After"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/arquivo-calc/calcular": {
      "post": {
        "tags": [
          "RMI Sync"
        ],
        "summary": "Cálculo de RMI a partir de arquivo .calc.",
        "description": "Lê um arquivo .calc e retorna a RMI para todos os fundamentos cabíveis.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "demonstrativoDescartesPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResultadoBlocoCalculoRmiComConclusaoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado; ou cálculo interrompido pelo limite de iterações com demonstrativo solicitado — o demonstrativo só é emitido para cálculo completo"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "API de índices ou serviço de permalink indisponível"
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de RMI em PDF e o devolve no envelope (`demonstrativoPdf`), acompanhado do demonstrativo de cálculos a cada descarte (`demonstrativoDescartesPdf`) quando alguma hipótese descartou competências. O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          },
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 120
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/arquivo-calc/calcular/stream": {
      "post": {
        "tags": [
          "RMI Stream"
        ],
        "summary": "Cálculo de RMI a partir de arquivo .calc com streaming SSE.",
        "description": "Lê um arquivo .calc e emite eventos de progresso e resultados parciais via SSE.",
        "parameters": [
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/event-stream": {
                "schema": {
                  "$ref": "#/components/schemas/EventoStreamCalculoRmiApi"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com o cálculo solicitado"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "503": {
            "description": "API de índices indisponível"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/arquivo-calc/ler-desvinculada": {
      "post": {
        "tags": [
          "RMI Leitura"
        ],
        "summary": "Leitura de arquivo .calc de RMI desvinculada.",
        "description": "Deserializa um arquivo .calc de RMI desvinculada (coeficiente e tempo informados pelo usuário) e retorna os dados no formato esperado por `/rgps/api/v1/calculos-rmi/desvinculada`.\nArquivo de RMI canônica (períodos e regras de tempo) responde 422 com orientação para `arquivo-calc/ler`.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/CalculoRmiDesvinculadaApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com este leitor (ex.: RMI canônica — use arquivo-calc/ler)"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/arquivo-calc/ler": {
      "post": {
        "tags": [
          "RMI Leitura"
        ],
        "summary": "Leitura de arquivo .calc de RMI canônica.",
        "description": "Deserializa um arquivo .calc de RMI canônica (períodos e regras de tempo) e retorna os dados no formato esperado por `/rgps/api/v1/calculos-rmi`.\nArquivo de RMI desvinculada (coeficiente e tempo informados pelo usuário) responde 422 com orientação para `arquivo-calc/ler-desvinculada` — projetá-lo aqui recalcularia a RMI como zero.\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/CalculoRmiApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Arquivo excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Arquivo .calc legível, mas incompatível com este leitor (ex.: RMI desvinculada — use arquivo-calc/ler-desvinculada)"
          },
          "500": {
            "description": "Erro da aplicação"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/async": {
      "post": {
        "tags": [
          "RMI Async"
        ],
        "summary": "Cria um job assíncrono de cálculo de RMI.",
        "description": "Enfileira o cálculo em background e devolve um identificador para consulta posterior.",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "description": "Identificador de até 128 caracteres para repetir a mesma criação sem duplicar o job.",
            "schema": {
              "type": "string",
              "maxLength": 128
            }
          },
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 120
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Job criado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "in-progress"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "202"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/RespostaCriacaoJobRmiApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "409": {
            "description": "Idempotency-Key reutilizada com conteúdo diferente"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporariamente indisponível; consulte Retry-After"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoRmiApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/desvinculada": {
      "post": {
        "tags": [
          "RMI Desvinculada"
        ],
        "summary": "Cálculo de RMI desvinculada.",
        "description": "Calcula a RMI usando os parâmetros de tempo e coeficiente fornecidos.",
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de RMI em PDF e o devolve no envelope (`demonstrativoPdf`). O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ResultadoCalculoRmiDesvinculadaApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "API de índices ou serviço de permalink indisponível"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoRmiDesvinculadaApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi": {
      "post": {
        "tags": [
          "RMI Sync"
        ],
        "summary": "Cálculo de RMI.",
        "description": "Calcula a RMI para todos os benefícios cabíveis.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "demonstrativoDescartesPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResultadoBlocoCalculoRmiComConclusaoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Cálculo interrompido pelo limite de iterações com demonstrativo solicitado: o demonstrativo só é emitido para cálculo completo"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "API de índices ou serviço de permalink indisponível"
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de RMI em PDF e o devolve no envelope (`demonstrativoPdf`), acompanhado do demonstrativo de cálculos a cada descarte (`demonstrativoDescartesPdf`) quando alguma hipótese descartou competências. O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          },
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 120
            },
            "description": "Limita a quantidade de iterações de descarte por requisição."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoRmiApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/jobs/{jobId}": {
      "delete": {
        "tags": [
          "RMI Async"
        ],
        "summary": "Cancela um job assíncrono de RMI.",
        "description": "Cancela um job pendente ou em processamento pertencente à mesma chave de API. Repetir o cancelamento é seguro.",
        "parameters": [
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Job cancelado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/RespostaJobRmiApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Job inválido"
          },
          "404": {
            "description": "Job não encontrado"
          },
          "409": {
            "description": "Job já finalizado e não cancelável"
          }
        }
      },
      "get": {
        "tags": [
          "RMI Async"
        ],
        "summary": "Consulta o status de um job assíncrono de RMI.",
        "parameters": [
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok",
                        "in-progress"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "$ref": "#/components/schemas/RespostaJobRmiApi"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Job inválido"
          },
          "404": {
            "description": "Job não encontrado"
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/jobs/{jobId}/resultado": {
      "get": {
        "tags": [
          "RMI Async"
        ],
        "summary": "Obtém o resultado final de um job assíncrono de RMI.",
        "parameters": [
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResultadoBlocoCalculoRmiComConclusaoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Job inválido"
          },
          "404": {
            "description": "Job não encontrado"
          },
          "409": {
            "description": "Resultado ainda não disponível"
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/por-fundamento": {
      "post": {
        "tags": [
          "RMI Por Fundamento"
        ],
        "summary": "Cálculo de RMI filtrado por fundamento.",
        "description": "Calcula a RMI apenas para o fundamento informado.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "permalink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Presente somente quando solicitado."
                    },
                    "demonstrativoPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "demonstrativoDescartesPdf": {
                      "$ref": "#/components/schemas/DemonstrativoPdfApi"
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ResultadoBlocoCalculoRmiComConclusaoApi"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "422": {
            "description": "Cálculo interrompido pelo limite de iterações com demonstrativo solicitado: o demonstrativo só é emitido para cálculo completo"
          },
          "429": {
            "description": "Capacidade temporária de processamento atingida"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "502": {
            "description": "Serviço de permalink retornou resposta inválida"
          },
          "503": {
            "description": "API de índices ou serviço de permalink indisponível"
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "permalink",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, cria um snapshot reabrível na calculadora e devolve sua URL no envelope."
          },
          {
            "in": "query",
            "name": "demonstrativo",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "Quando true, gera o demonstrativo de RMI em PDF e o devolve no envelope (`demonstrativoPdf`), acompanhado do demonstrativo de cálculos a cada descarte (`demonstrativoDescartesPdf`) quando alguma hipótese descartou competências. O PDF sempre embute um permalink do cálculo; a flag `permalink` decide apenas se a URL também sai como dado separado."
          },
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 120
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoRmiPorFundamentoApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/calculos-rmi/stream": {
      "post": {
        "tags": [
          "RMI Stream"
        ],
        "summary": "Cálculo de RMI com streaming SSE.",
        "description": "Emite eventos de progresso e resultados parciais via SSE.",
        "parameters": [
          {
            "in": "query",
            "name": "numeroMaximoIteracoes",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/event-stream": {
                "schema": {
                  "$ref": "#/components/schemas/EventoStreamCalculoRmiApi"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida"
          },
          "413": {
            "description": "Corpo JSON excede o tamanho máximo permitido"
          },
          "500": {
            "description": "Erro da aplicação"
          },
          "503": {
            "description": "API de índices indisponível"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculoRmiApi"
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/fundamentos": {
      "get": {
        "tags": [
          "Metadados"
        ],
        "summary": "Lista os fundamentos suportados pela API.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FundamentoOpcaoApi"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rgps/api/v1/marcos-temporais": {
      "get": {
        "tags": [
          "Metadados"
        ],
        "summary": "Lista os marcos temporais suportados pela API.",
        "description": "Retorna o catálogo dos valores aceitos em `marcoTemporal` nos endpoints de cálculo de RMI.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "code": {
                      "type": "string",
                      "example": "200"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "result": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MarcoTemporalOpcaoApi"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "LinhaIndexadoresApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string"
          },
          "ortnOtn": {
            "type": [
              "string",
              "number"
            ]
          },
          "btn": {
            "type": [
              "string",
              "number"
            ]
          },
          "ufir": {
            "type": [
              "string",
              "number"
            ]
          },
          "ipcIbge": {
            "type": [
              "string",
              "number"
            ]
          },
          "irsm": {
            "type": [
              "string",
              "number"
            ]
          },
          "urv": {
            "type": [
              "string",
              "number"
            ]
          },
          "urvCjf": {
            "type": [
              "string",
              "number"
            ]
          },
          "urvEmValor": {
            "type": [
              "string",
              "number"
            ]
          },
          "ipcr": {
            "type": [
              "string",
              "number"
            ]
          },
          "ipcFgvCjf": {
            "type": [
              "string",
              "number"
            ]
          },
          "igpdi": {
            "type": [
              "string",
              "number"
            ]
          },
          "igpm": {
            "type": [
              "string",
              "number"
            ]
          },
          "tr": {
            "type": [
              "string",
              "number"
            ]
          },
          "ipca": {
            "type": [
              "string",
              "number"
            ]
          },
          "inpc": {
            "type": [
              "string",
              "number"
            ]
          },
          "inpcPrimitivo": {
            "type": [
              "string",
              "number"
            ]
          },
          "inpcInss": {
            "type": [
              "string",
              "number"
            ]
          },
          "ipcaeCjf": {
            "type": [
              "string",
              "number"
            ]
          },
          "ipcae": {
            "type": [
              "string",
              "number"
            ]
          },
          "selic": {
            "type": [
              "string",
              "number"
            ]
          },
          "fatorSelic": {
            "type": [
              "string",
              "number"
            ]
          },
          "jurosPoupanca": {
            "type": [
              "string",
              "number"
            ]
          },
          "taxaLegal": {
            "type": [
              "string",
              "number"
            ]
          },
          "observacoes": {
            "type": "string"
          }
        },
        "required": [
          "competencia",
          "ortnOtn",
          "btn",
          "ufir",
          "ipcIbge",
          "irsm",
          "urv",
          "urvCjf",
          "urvEmValor",
          "ipcr",
          "ipcFgvCjf",
          "igpdi",
          "igpm",
          "tr",
          "ipca",
          "inpc",
          "inpcPrimitivo",
          "inpcInss",
          "ipcaeCjf",
          "ipcae",
          "selic",
          "jurosPoupanca",
          "taxaLegal",
          "observacoes"
        ],
        "additionalProperties": false
      },
      "TabelaIndexadoresApi": {
        "$ref": "#/components/schemas/TabelaIndexadores"
      },
      "TabelaIndexadores": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "competencia": {
              "type": "string"
            },
            "ortnOtn": {
              "type": [
                "string",
                "number"
              ]
            },
            "btn": {
              "type": [
                "string",
                "number"
              ]
            },
            "ufir": {
              "type": [
                "string",
                "number"
              ]
            },
            "ipcIbge": {
              "type": [
                "string",
                "number"
              ]
            },
            "irsm": {
              "type": [
                "string",
                "number"
              ]
            },
            "urv": {
              "type": [
                "string",
                "number"
              ]
            },
            "urvCjf": {
              "type": [
                "string",
                "number"
              ]
            },
            "urvEmValor": {
              "type": [
                "string",
                "number"
              ]
            },
            "ipcr": {
              "type": [
                "string",
                "number"
              ]
            },
            "ipcFgvCjf": {
              "type": [
                "string",
                "number"
              ]
            },
            "igpdi": {
              "type": [
                "string",
                "number"
              ]
            },
            "igpm": {
              "type": [
                "string",
                "number"
              ]
            },
            "tr": {
              "type": [
                "string",
                "number"
              ]
            },
            "ipca": {
              "type": [
                "string",
                "number"
              ]
            },
            "inpc": {
              "type": [
                "string",
                "number"
              ]
            },
            "inpcPrimitivo": {
              "type": [
                "string",
                "number"
              ]
            },
            "inpcInss": {
              "type": [
                "string",
                "number"
              ]
            },
            "ipcaeCjf": {
              "type": [
                "string",
                "number"
              ]
            },
            "ipcae": {
              "type": [
                "string",
                "number"
              ]
            },
            "selic": {
              "type": [
                "string",
                "number"
              ]
            },
            "fatorSelic": {
              "type": [
                "string",
                "number"
              ]
            },
            "jurosPoupanca": {
              "type": [
                "string",
                "number"
              ]
            },
            "taxaLegal": {
              "type": [
                "string",
                "number"
              ]
            },
            "observacoes": {
              "type": "string"
            }
          },
          "required": [
            "competencia",
            "ortnOtn",
            "btn",
            "ufir",
            "ipcIbge",
            "irsm",
            "urv",
            "urvCjf",
            "urvEmValor",
            "ipcr",
            "ipcFgvCjf",
            "igpdi",
            "igpm",
            "tr",
            "ipca",
            "inpc",
            "inpcPrimitivo",
            "inpcInss",
            "ipcaeCjf",
            "ipcae",
            "selic",
            "jurosPoupanca",
            "taxaLegal",
            "observacoes"
          ],
          "additionalProperties": false
        }
      },
      "PayloadExchange": {
        "type": "object",
        "properties": {
          "numeroProcesso": {
            "type": "string"
          },
          "autor": {
            "type": "string"
          },
          "protocolo": {
            "type": "string"
          },
          "citacao": {
            "type": "string"
          },
          "rdctc": {
            "$ref": "#/components/schemas/ResultadoLeituraRdctcApi"
          },
          "cnis": {
            "$ref": "#/components/schemas/ResultadoLeituraCnisApi"
          },
          "opcoesFiltroCnis": {
            "$ref": "#/components/schemas/OpcoesFiltroCnis"
          },
          "prevjud": {
            "$ref": "#/components/schemas/DadosPrevjud"
          },
          "opcoesFiltroPrevjud": {
            "$ref": "#/components/schemas/OpcoesFiltroPrevjud"
          },
          "ordemJudicialPrevjudPje": {
            "$ref": "#/components/schemas/OrdemJudicialPrevjudPje"
          }
        },
        "additionalProperties": false
      },
      "ResultadoLeituraRdctcApi": {
        "type": "object",
        "properties": {
          "dadosSegurado": {
            "type": "object",
            "properties": {
              "nascimento": {
                "type": "string",
                "examples": [
                  "1960-01-01"
                ],
                "description": "Data de nascimento do segurado.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "sexo": {
                "$ref": "#/components/schemas/Sexo"
              },
              "tipo": {
                "$ref": "#/components/schemas/TipoSegurado"
              }
            },
            "additionalProperties": false
          },
          "dadosBeneficio": {
            "type": "object",
            "properties": {
              "der": {
                "type": "string",
                "examples": [
                  "2021-05-01"
                ],
                "description": "Data de entrada do requerimento administrativo.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "especie": {
                "type": "number"
              },
              "nb": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "avisos": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Avisos sobre a segmentação, a fidelidade ou limitações dos dados declarados no exemplar. Ausente quando não há ressalvas."
          }
        },
        "required": [
          "dadosSegurado",
          "dadosBeneficio",
          "periodosContribuicao"
        ],
        "additionalProperties": false
      },
      "Sexo": {
        "type": "string",
        "enum": [
          "M",
          "F"
        ]
      },
      "TipoSegurado": {
        "type": "string",
        "enum": [
          "COMUM",
          "PCD",
          "RURICOLA"
        ]
      },
      "PeriodoContribuicaoApi": {
        "type": "object",
        "properties": {
          "dataInicial": {
            "type": "string",
            "examples": [
              "1980-01-01"
            ],
            "description": "Data inicial do período de contribuição.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dataFinal": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data final do período de contribuição.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "descricao": {
            "type": "string",
            "examples": [
              "Empresa X"
            ],
            "description": "Descrição do período."
          },
          "formaContagem": {
            "$ref": "#/components/schemas/FormaContagem",
            "examples": [
              "ESPECIAL_25"
            ],
            "description": "Forma de contagem do período."
          },
          "motivoContagem": {
            "$ref": "#/components/schemas/MotivoContagem",
            "examples": [
              "CONTADO_PELO_INSS"
            ],
            "description": "Define o motivo da contagem do período."
          },
          "naturezaVinculo": {
            "$ref": "#/components/schemas/NaturezaVinculo",
            "examples": [
              "EMPREGADO"
            ],
            "description": "Natureza do vínculo."
          },
          "contarCarencia": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Define se o período deve ser contado para carência."
          },
          "desempregoInvoluntario": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Define se o período deve ser considerado como desemprego involuntário, não aplicável para natureza vínculo de benefícios, facultativo e reclusão."
          },
          "computavelDesde": {
            "type": "string",
            "examples": [
              "1980-01-01"
            ],
            "description": "Data a partir da qual o período de contribuição é computável. Útil para períodos regularizados posteriormente.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatorConversaoModificado": {
            "type": "number",
            "examples": [
              1.5
            ],
            "description": "Fator de conversão modificado. Permite afastar o fato de conversão calculado automaticamente pela aplicação."
          },
          "observacao": {
            "type": "string",
            "examples": [
              "Período especial"
            ],
            "description": "Observações sobre o período."
          },
          "excluido": {
            "type": "boolean",
            "description": "Define se o período deve ser excluído.",
            "examples": [
              false
            ]
          },
          "prioritario": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Define se o período deve prevalecer sobre os demais em caso de concomitância. Permite afastar os pesos calculados automaticamente pela aplicação."
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            },
            "description": "Lista de salários de contribuição do período, considerado conjuntamente com os salários independentes."
          },
          "pesoCustomizado": {
            "type": "number",
            "examples": [
              1.4
            ],
            "description": "Peso customizado para conversão do período especial."
          },
          "indicadores": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicadores associados ao período."
          },
          "atividade": {
            "type": "number",
            "examples": [
              1
            ],
            "description": "Atividade do período (usado em cálculos de conversão especial)."
          },
          "origem": {
            "$ref": "#/components/schemas/Origem",
            "examples": [
              "CNIS"
            ],
            "description": "Origem dos dados do período."
          }
        },
        "required": [
          "dataInicial",
          "dataFinal",
          "descricao",
          "contarCarencia",
          "prioritario"
        ],
        "additionalProperties": false
      },
      "FormaContagem": {
        "type": "string",
        "enum": [
          "NAO_COMPUTAR",
          "COMUM",
          "ESPECIAL_25",
          "ESPECIAL_20",
          "ESPECIAL_15",
          "RURAL",
          "MAGISTERIO"
        ]
      },
      "MotivoContagem": {
        "type": "string",
        "enum": [
          "NAO_DEFINIDO",
          "CONTADO_PELO_INSS",
          "CONFORME_PEDIDO_INICIAL",
          "CONFORME_DETERMINACAO_JUDICIAL",
          "COMPUTADO_NA_SENTENCA",
          "CONTAGEM_RECIPROCA"
        ]
      },
      "NaturezaVinculo": {
        "type": "string",
        "enum": [
          "BENEFICIO_INCAPACIDADE",
          "EMPREGADO",
          "EMPREGADO_DOMESTICO",
          "CONTRIBUINTE_INDIVIDUAL",
          "TRABALHADOR_AVULSO",
          "SEGURADO_ESPECIAL",
          "SEGURADO_FACULTATIVO",
          "LC_123_CONTRIBUINTE_INDIVIDUAL",
          "LC_123_FACULTATIVO",
          "AUXILIO_ACIDENTE",
          "OUTROS_BENEFICIOS_INSS",
          "SALARIO_MATERNIDADE",
          "RECLUSO",
          "SERVICO_MILITAR",
          "CONTRIB_INDIVIDUAL_PRESTADOR_SERVICO"
        ]
      },
      "SalarioApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "examples": [
              "2021-01"
            ],
            "description": "Competência do salário.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "valor": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor total na competência."
          },
          "dataRecolhimento": {
            "type": "string",
            "examples": [
              "2021-02-15"
            ],
            "description": "Data de recolhimento, se o caso (Contribuinte Individual / Facultativo).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "origem": {
            "$ref": "#/components/schemas/Origem",
            "examples": [
              "CNIS"
            ],
            "description": "Origem do salário. Preserva a proveniência para round-trip fiel.\nOmitido em salários digitados pelo usuário sem origem declarada. `NENHUMA` com\n`valor: 0` é uma competência sem salário em fonte alguma (distinta de zero digitado);\n`MULTIPLA` é aceito e tratado como digitado pelo usuário."
          }
        },
        "required": [
          "competencia",
          "valor"
        ],
        "additionalProperties": false
      },
      "Origem": {
        "type": "string",
        "enum": [
          "CALCULO_INSS",
          "CNIS",
          "USUARIO",
          "NENHUMA",
          "PREVJUD",
          "MULTIPLA"
        ]
      },
      "ResultadoLeituraCnisApi": {
        "type": "object",
        "properties": {
          "dadosSegurado": {
            "type": "object",
            "properties": {
              "nome": {
                "type": "string"
              },
              "cpf": {
                "type": "string"
              },
              "mae": {
                "type": "string"
              },
              "nit": {
                "type": "string"
              },
              "nascimento": {
                "type": "string",
                "examples": [
                  "1960-01-01"
                ],
                "description": "Data de nascimento do segurado.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              }
            },
            "required": [
              "nome",
              "cpf",
              "mae",
              "nit",
              "nascimento"
            ],
            "additionalProperties": false
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dadosSegurado",
          "periodosContribuicao",
          "salarios"
        ],
        "additionalProperties": false
      },
      "OpcoesFiltroCnis": {
        "type": "object",
        "properties": {
          "dadosSegurado": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "nome",
                "nascimento",
                "nit",
                "cpf",
                "mae",
                "sexo",
                "obito"
              ]
            }
          },
          "vinculos": {
            "$ref": "#/components/schemas/OpcoesFiltroPeriodos"
          },
          "anoCivil": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dadosSegurado",
          "vinculos"
        ],
        "additionalProperties": false
      },
      "OpcoesFiltroPeriodos": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "periodo": {
              "type": "boolean"
            },
            "salarios": {
              "type": "boolean"
            }
          },
          "required": [
            "periodo",
            "salarios"
          ],
          "additionalProperties": false
        }
      },
      "DadosPrevjud": {
        "type": "object",
        "properties": {
          "segurado": {
            "$ref": "#/components/schemas/DadosSeguradoPrevjud"
          },
          "beneficios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficioComCreditos"
            }
          },
          "periodos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoRgpsProps"
            }
          },
          "anoCivil": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/components/schemas/SalarioProps"
              }
            }
          }
        },
        "required": [
          "segurado",
          "beneficios",
          "periodos"
        ],
        "additionalProperties": false
      },
      "DadosSeguradoPrevjud": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string"
          },
          "sexo": {
            "$ref": "#/components/schemas/Sexo"
          },
          "nascimento": {
            "type": "string",
            "format": "date-time"
          },
          "obito": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "nome",
          "sexo"
        ],
        "additionalProperties": false
      },
      "BeneficioComCreditos": {
        "type": "object",
        "properties": {
          "beneficio": {
            "$ref": "#/components/schemas/BeneficioProps"
          },
          "cartaConcessao": {
            "$ref": "#/components/schemas/CartaConcessaoPrevjud"
          },
          "pagamentos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosPagamentoHiscre"
            }
          }
        },
        "required": [
          "beneficio",
          "cartaConcessao",
          "pagamentos"
        ],
        "additionalProperties": false
      },
      "BeneficioProps": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "finalidade": {
            "$ref": "#/components/schemas/FinalidadeBeneficio"
          },
          "especie": {
            "$ref": "#/components/schemas/EspecieBeneficio"
          },
          "nb": {
            "type": "string"
          },
          "dib": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "dcb": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "dadosRmi": {
            "type": "object",
            "properties": {
              "baseReajuste": {
                "$ref": "#/components/schemas/TipoBaseReajuste"
              },
              "valor": {
                "type": "number"
              },
              "sb": {
                "type": "number"
              },
              "coeficiente": {
                "type": "number"
              },
              "irt": {
                "type": "number"
              }
            },
            "required": [
              "baseReajuste",
              "valor"
            ],
            "additionalProperties": false
          },
          "dadosReajuste": {
            "type": "object",
            "properties": {
              "inicioAdicional25PorCento": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "computarAPartirDe": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "utilizarComputarAPartirDeParaAbono": {
                "type": "boolean"
              },
              "percentualPiso": {
                "type": "number"
              },
              "limitarBaseReajuste": {
                "type": "boolean"
              },
              "equivalenciaSalarial": {
                "type": "number"
              },
              "aplicarOs121": {
                "type": "boolean"
              },
              "aplicarReajuste147EmSet91": {
                "type": "boolean"
              },
              "referenciaPrimeiroReajuste": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "anteciparAbono": {
                "type": "boolean"
              },
              "criterioApuracaoAbono": {
                "$ref": "#/components/schemas/CriterioApuracaoAbono"
              },
              "rendaSalarioMinimo": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "acumulacaoEc103": {
            "type": "boolean"
          },
          "reconstituirDescontoAdmAcumulacao": {
            "type": "boolean"
          },
          "limitarDescontos": {
            "type": "boolean"
          },
          "computarSomenteComSalario": {
            "type": "boolean"
          },
          "dependentes": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/DependentesProps"
            }
          },
          "observacao": {
            "type": "string"
          },
          "excluido": {
            "type": "boolean"
          },
          "dadosDerivado": {
            "$ref": "#/components/schemas/BeneficioProps"
          },
          "dadosOriginario": {
            "$ref": "#/components/schemas/BeneficioProps"
          }
        },
        "required": [
          "finalidade",
          "especie",
          "dib",
          "dadosRmi",
          "dadosReajuste"
        ],
        "additionalProperties": false
      },
      "FinalidadeBeneficio": {
        "type": "string",
        "enum": [
          "COMPUTO_SALARIO",
          "APURACAO_VALOR_DEVIDO",
          "APURACAO_VALOR_DESCONTADO",
          "SIMULACAO"
        ]
      },
      "EspecieBeneficio": {
        "type": "number",
        "enum": [
          21,
          25,
          31,
          32,
          36,
          41,
          42,
          46,
          57,
          80,
          87,
          88,
          91,
          92,
          93,
          94,
          95
        ]
      },
      "TipoBaseReajuste": {
        "type": "string",
        "enum": [
          "BENEFICIO_INDEPENDENTE",
          "RMI_ORIGINARIO",
          "SB_ORIGINARIO"
        ]
      },
      "CriterioApuracaoAbono": {
        "type": "string",
        "enum": [
          "EXCLUIR_ULTIMO",
          "EXCLUIR_PRIMEIRO",
          "EXCLUIR_PRIMEIRO_E_ULTIMO",
          "MANTER_CALCULO_DO_SISTEMA"
        ]
      },
      "DependentesProps": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "total": {
            "type": "number"
          },
          "aPartirDe": {
            "type": "string",
            "format": "date-time"
          },
          "algumInvalido": {
            "type": "boolean"
          }
        },
        "required": [
          "total",
          "aPartirDe",
          "algumInvalido"
        ],
        "additionalProperties": false
      },
      "CartaConcessaoPrevjud": {
        "type": "object",
        "properties": {
          "salariosConsolidados": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/SalarioProps"
            }
          },
          "tc": {
            "type": "string"
          },
          "dadosCalculo": {
            "$ref": "#/components/schemas/DadosCartaConcessao"
          }
        },
        "required": [
          "dadosCalculo"
        ],
        "additionalProperties": false
      },
      "SalarioProps": {
        "type": "object",
        "properties": {
          "valorUsuario": {
            "type": "number"
          },
          "valorCalculoInss": {
            "type": "number"
          },
          "valorCnis": {
            "type": "number"
          },
          "valorPrevjud": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "seqCarta": {
            "type": "number"
          },
          "seqCnis": {
            "type": "number"
          },
          "seqPrevjud": {
            "type": "number"
          },
          "competencia": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "consolidadoAnoCivil": {
            "type": "boolean"
          },
          "valorAcrescimo": {
            "type": "number"
          },
          "valorLc123": {
            "$ref": "#/components/schemas/ValorSalarioPorOrigem"
          },
          "dataRecolhimentoUsuario": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "dataRecolhimentoCnis": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "dataRecolhimentoPrevjud": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "excluido": {
            "type": "boolean"
          },
          "computavelDesde": {
            "type": "string",
            "format": "date-time"
          },
          "observacao": {
            "type": "string"
          },
          "aposEc103": {
            "type": "boolean"
          },
          "manterSalariosCarta": {
            "type": "boolean"
          },
          "indicadores": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "competencia",
          "excluido"
        ],
        "additionalProperties": false
      },
      "ValorSalarioPorOrigem": {
        "type": "object",
        "properties": {
          "valorUsuario": {
            "type": "number"
          },
          "valorCalculoInss": {
            "type": "number"
          },
          "valorCnis": {
            "type": "number"
          },
          "valorPrevjud": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "DadosCartaConcessao": {
        "type": "object",
        "properties": {
          "dadosSegurado": {
            "type": "object",
            "properties": {
              "nome": {
                "type": "string"
              },
              "nit": {
                "type": "string"
              },
              "aps": {
                "type": "string"
              }
            },
            "required": [
              "nome"
            ],
            "additionalProperties": false
          },
          "dadosBeneficio": {
            "type": "object",
            "properties": {
              "nb": {
                "type": "string"
              },
              "especie": {
                "type": "number"
              },
              "descricao": {
                "type": "string"
              },
              "dib": {
                "type": "string",
                "format": "date-time"
              },
              "der": {
                "type": "string",
                "format": "date-time"
              },
              "ddb": {
                "type": "string",
                "format": "date-time"
              },
              "coeficiente": {
                "type": "number"
              },
              "rmi": {
                "type": "number"
              },
              "tempo": {
                "type": "number"
              },
              "dip": {
                "type": "string",
                "format": "date-time"
              },
              "direitoAdquirido": {
                "type": "boolean"
              },
              "regraTransicao": {
                "type": "string"
              },
              "pcd": {
                "type": "boolean"
              },
              "nbAnterior": {
                "type": "string"
              },
              "dibAnterior": {
                "type": "string",
                "format": "date-time"
              },
              "apBase": {
                "type": "number"
              }
            },
            "required": [
              "nb",
              "especie",
              "descricao",
              "dib",
              "der",
              "rmi"
            ],
            "additionalProperties": false
          },
          "dadosCalculo": {
            "type": "object",
            "properties": {
              "principal": {
                "$ref": "#/components/schemas/DadosCalculoCarta"
              },
              "secundarias": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DadosCalculoCarta"
                }
              },
              "direitoAdquirido": {
                "$ref": "#/components/schemas/DadosCalculoCarta"
              }
            },
            "required": [
              "principal",
              "secundarias"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "dadosSegurado",
          "dadosBeneficio",
          "dadosCalculo"
        ],
        "additionalProperties": false
      },
      "DadosCalculoCarta": {
        "type": "object",
        "properties": {
          "grupos": {
            "type": "number"
          },
          "tempoContribuicao": {
            "type": "number"
          },
          "pedagio": {
            "type": "number"
          },
          "fatorPrevidenciario": {
            "type": "number"
          },
          "expectativaSobrevida": {
            "type": "number"
          },
          "idade": {
            "type": "number"
          },
          "aliquota": {
            "type": "number"
          },
          "soma": {
            "type": "number"
          },
          "divisor": {
            "type": "number"
          },
          "media": {
            "type": "number"
          },
          "salarioBeneficio": {
            "type": "number"
          },
          "coeficiente": {
            "type": "number"
          },
          "rmi": {
            "type": "number"
          },
          "mesesAposPublicacaoLei": {
            "type": "number"
          },
          "limitadoTeto": {
            "type": "boolean"
          },
          "elevadoMinimo": {
            "type": "boolean"
          },
          "portariaCorrecao": {
            "type": "string"
          },
          "competenciaInicial": {
            "type": "string",
            "format": "date-time"
          },
          "competenciaFinal": {
            "type": "string",
            "format": "date-time"
          },
          "pbc": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/DadosSalarioCarta"
            }
          }
        },
        "required": [
          "soma",
          "divisor",
          "media",
          "coeficiente",
          "competenciaInicial",
          "competenciaFinal",
          "pbc"
        ],
        "additionalProperties": false
      },
      "DadosSalarioCarta": {
        "type": "object",
        "properties": {
          "seq": {
            "type": "number"
          },
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "original": {
            "type": "number"
          },
          "consolidado": {
            "type": "number"
          },
          "indice": {
            "type": "number"
          },
          "corrigido": {
            "type": "number"
          },
          "limitadoTeto": {
            "type": "boolean"
          },
          "desconsiderado": {
            "type": "boolean"
          },
          "salariosAtividadesSecundarias": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        "required": [
          "seq",
          "competencia",
          "original",
          "indice",
          "corrigido",
          "limitadoTeto",
          "desconsiderado"
        ],
        "additionalProperties": false
      },
      "DadosPagamentoHiscre": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "nb": {
            "type": "string"
          },
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "dataInicial": {
            "type": "string",
            "format": "date-time"
          },
          "dataFinal": {
            "type": "string",
            "format": "date-time"
          },
          "dataPagamento": {
            "type": "string",
            "format": "date-time"
          },
          "valorLiquidoRenda": {
            "type": "number"
          },
          "valorLiquidoAbono": {
            "type": "number"
          },
          "creditosRenda": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetalheRubrica"
            }
          },
          "debitosRenda": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetalheRubrica"
            }
          },
          "creditosAbono": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetalheRubrica"
            }
          },
          "debitosAbono": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetalheRubrica"
            }
          }
        },
        "required": [
          "id",
          "nb",
          "competencia",
          "valorLiquidoRenda",
          "valorLiquidoAbono",
          "creditosRenda",
          "debitosRenda",
          "creditosAbono",
          "debitosAbono"
        ],
        "additionalProperties": false
      },
      "DetalheRubrica": {
        "type": "object",
        "properties": {
          "codigo": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "valor": {
            "type": "number"
          }
        },
        "required": [
          "codigo",
          "descricao",
          "valor"
        ],
        "additionalProperties": false
      },
      "PeriodoRgpsProps": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "dataInicial": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "dataFinal": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "observacao": {
            "type": "string"
          },
          "excluido": {
            "type": "boolean"
          },
          "seq": {
            "type": "number"
          },
          "descricao": {
            "type": "string"
          },
          "formaContagem": {
            "$ref": "#/components/schemas/FormaContagem"
          },
          "motivoContagem": {
            "$ref": "#/components/schemas/MotivoContagem"
          },
          "prioritario": {
            "type": "boolean"
          },
          "grauDeficiencia": {
            "$ref": "#/components/schemas/GrauDeficiencia"
          },
          "computavelDesde": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "naturezaVinculo": {
            "$ref": "#/components/schemas/NaturezaVinculo"
          },
          "pesoCustomizado": {
            "type": "number"
          },
          "fatorConversaoModificado": {
            "type": "number"
          },
          "valoresSistema": {
            "$ref": "#/components/schemas/ValoresSistemaRgps"
          },
          "contarCarencia": {
            "type": "boolean"
          },
          "indicadores": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "salarios": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/SalarioProps"
            }
          },
          "atividade": {
            "type": "number"
          },
          "origem": {
            "$ref": "#/components/schemas/Origem"
          },
          "desempregoInvoluntario": {
            "type": "boolean"
          }
        },
        "required": [
          "contarCarencia",
          "dataFinal",
          "dataInicial",
          "excluido",
          "prioritario"
        ],
        "additionalProperties": false
      },
      "GrauDeficiencia": {
        "type": "string",
        "enum": [
          "SEM_DEFICIENCIA",
          "LEVE",
          "MODERADO",
          "GRAVE"
        ]
      },
      "ValoresSistemaRgps": {
        "type": "object",
        "properties": {
          "computavelDesde": {
            "type": "string",
            "format": "date-time"
          },
          "grauDeficiencia": {
            "$ref": "#/components/schemas/GrauDeficiencia"
          },
          "formaContagem": {
            "$ref": "#/components/schemas/FormaContagem"
          },
          "descricao": {
            "type": "string"
          },
          "contarCarencia": {
            "type": "boolean"
          },
          "qualidadeSegurado": {
            "$ref": "#/components/schemas/PeriodoQualidadeSegurado"
          },
          "exclusaoAutomatica": {
            "type": "boolean"
          },
          "exclusaoRecolhidoInferiorMinimo": {
            "type": "boolean"
          },
          "exclusaoRecolhidoEmAtraso": {
            "type": "boolean"
          },
          "exclusaoRecolhidoAposFatoGerador": {
            "type": "boolean"
          },
          "exclusaoPrimeiroEmAtraso": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "O que o sistema sobrepõe ao usuário, com o que só existe no RGPS."
      },
      "PeriodoQualidadeSegurado": {
        "type": "object",
        "properties": {
          "inicio": {
            "type": "string",
            "format": "date-time"
          },
          "termino": {
            "type": "string",
            "format": "date-time"
          },
          "contribuicoesPeriodo": {
            "type": "number"
          },
          "contribuicoesAcumuladas": {
            "type": "number"
          },
          "incorporou120Contribuicoes": {
            "type": "boolean"
          },
          "porExtenso": {
            "type": "string"
          }
        },
        "required": [
          "inicio",
          "termino",
          "contribuicoesPeriodo",
          "contribuicoesAcumuladas",
          "incorporou120Contribuicoes",
          "porExtenso"
        ],
        "additionalProperties": false
      },
      "OpcoesFiltroPrevjud": {
        "type": "object",
        "properties": {
          "dadosSegurado": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "nome",
                "nascimento",
                "nit",
                "cpf",
                "mae",
                "sexo",
                "obito"
              ]
            }
          },
          "beneficios": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "devido": {
                  "type": "boolean"
                },
                "pago": {
                  "type": "boolean"
                },
                "comoSalario": {
                  "type": "boolean"
                },
                "dadosPagamentos": {
                  "type": "boolean"
                },
                "salariosCarta": {
                  "type": "boolean"
                }
              },
              "required": [
                "devido",
                "pago",
                "comoSalario",
                "dadosPagamentos",
                "salariosCarta"
              ],
              "additionalProperties": false
            }
          },
          "vinculos": {
            "$ref": "#/components/schemas/OpcoesFiltroPeriodos"
          },
          "anoCivil": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dadosSegurado",
          "beneficios",
          "vinculos",
          "anoCivil"
        ],
        "additionalProperties": false
      },
      "OrdemJudicialPrevjudPje": {
        "type": "object",
        "properties": {
          "id_intimacao": {
            "type": "number"
          },
          "dt_data_hora_solicitacao": {
            "type": "string"
          },
          "ds_protocolo": {
            "type": "string"
          },
          "ds_protocolo_pdpj": {
            "type": [
              "string",
              "null"
            ]
          },
          "ds_servico": {
            "type": "string"
          },
          "ds_status": {
            "$ref": "#/components/schemas/StatusOrdemJudicialPrevjudPje"
          },
          "nr_ordem": {
            "type": "number"
          },
          "id_pessoa": {
            "type": "number"
          },
          "id_processo_trf": {
            "type": "number"
          },
          "id_processo_documento": {
            "type": "number"
          },
          "ds_json_intimacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "dt_data_inicio_prazo": {
            "type": [
              "string",
              "null"
            ]
          },
          "dt_data_final_prazo": {
            "type": [
              "string",
              "null"
            ]
          },
          "nr_tentativas": {
            "type": "number"
          },
          "dt_inclusao": {
            "type": [
              "string",
              "null"
            ]
          },
          "id_usuario_inclusao": {
            "type": [
              "number",
              "null"
            ]
          },
          "dt_exclusao": {
            "type": [
              "string",
              "null"
            ]
          },
          "id_usuario_exclusao": {
            "type": [
              "number",
              "null"
            ]
          },
          "nr_prazo": {
            "type": [
              "number",
              "null"
            ]
          },
          "cd_especie": {
            "type": [
              "number",
              "null"
            ]
          },
          "in_acrescimo_25": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "nr_beneficio": {
            "type": [
              "string",
              "null"
            ]
          },
          "vl_rmi": {
            "type": [
              "number",
              "null"
            ]
          },
          "dt_dib": {
            "type": [
              "string",
              "null"
            ]
          },
          "dt_dcb": {
            "type": [
              "string",
              "null"
            ]
          },
          "dt_dip": {
            "type": [
              "string",
              "null"
            ]
          },
          "in_primeiro_dia": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "dt_dii": {
            "type": [
              "string",
              "null"
            ]
          },
          "in_segurado_especial": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "in_implantacao_padrao": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "in_possui_representacao_legal": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "ds_nome_representante_legal": {
            "type": [
              "string",
              "null"
            ]
          },
          "nr_cpf_representante_legal": {
            "type": [
              "string",
              "null"
            ]
          },
          "ds_tipo_representante_legal": {
            "type": [
              "string",
              "null"
            ]
          },
          "ds_tipo_representacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "dt_inicio_representacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "ds_observacao": {
            "type": [
              "string",
              "null"
            ]
          },
          "id_servico_inss": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IdServicoInssOrdemJudicialPrevjudPje"
              },
              {
                "type": "null"
              }
            ]
          },
          "id_processo_notificacao_envio": {
            "type": [
              "number",
              "null"
            ]
          },
          "id_processo_notificacao_cumprimento": {
            "type": [
              "number",
              "null"
            ]
          },
          "in_envio_imediato": {
            "type": "boolean"
          },
          "nr_sequencia": {
            "type": [
              "number",
              "null"
            ]
          },
          "dt_pedido_envio": {
            "type": [
              "string",
              "null"
            ]
          },
          "id_usuario_pedido_envio": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "id_intimacao",
          "dt_data_hora_solicitacao",
          "ds_protocolo",
          "ds_protocolo_pdpj",
          "ds_servico",
          "ds_status",
          "nr_ordem",
          "id_pessoa",
          "id_processo_trf",
          "id_processo_documento",
          "ds_json_intimacao",
          "dt_data_inicio_prazo",
          "dt_data_final_prazo",
          "nr_tentativas",
          "dt_inclusao",
          "id_usuario_inclusao",
          "dt_exclusao",
          "id_usuario_exclusao",
          "nr_prazo",
          "cd_especie",
          "in_acrescimo_25",
          "nr_beneficio",
          "vl_rmi",
          "dt_dib",
          "dt_dcb",
          "dt_dip",
          "in_primeiro_dia",
          "dt_dii",
          "in_segurado_especial",
          "in_implantacao_padrao",
          "in_possui_representacao_legal",
          "ds_nome_representante_legal",
          "nr_cpf_representante_legal",
          "ds_tipo_representante_legal",
          "ds_tipo_representacao",
          "dt_inicio_representacao",
          "ds_observacao",
          "id_servico_inss",
          "id_processo_notificacao_envio",
          "id_processo_notificacao_cumprimento",
          "in_envio_imediato",
          "nr_sequencia",
          "dt_pedido_envio",
          "id_usuario_pedido_envio"
        ],
        "additionalProperties": false
      },
      "StatusOrdemJudicialPrevjudPje": {
        "type": "string",
        "enum": [
          "PJE_INATIVADA",
          "PJE_EM_ELABORACAO",
          "PJE_PROCESSANDO",
          "PJE_FALHA_ENVIO",
          "PJE_PROCESSANDO_OUTRA_INSTANCIA",
          "PJE_FALHA_ENVIO_OUTRA_INSTANCIA",
          "PJE_ENVIADA_OUTRA_INSTANCIA",
          "PJE_FALHA_PREVJUD_OUTRA_INSTANCIA",
          "RECEBIDA",
          "ORDEM_CUMPRIDA",
          "RESPONDIDA_COM_JUSTIFICATIVA",
          "PEDIDO_RECEBIDO_PDPJ_ERROR_INTEGRACAO_DATAPREV",
          "PEDIDO_FINALIZADO_POR_FALHA_TENTATIVAS_EXCEDIDAS"
        ]
      },
      "IdServicoInssOrdemJudicialPrevjudPje": {
        "type": "string",
        "enum": [
          "2",
          "3",
          "4",
          "6",
          "7",
          "8",
          "9",
          "10",
          "11",
          "12",
          "13",
          "14",
          "15",
          "16",
          "17",
          "50",
          "51",
          "52",
          "53",
          "54",
          "55",
          "56",
          "57",
          "58",
          "59",
          "60",
          "61",
          "62",
          "63",
          "64",
          "65",
          "66",
          "67",
          "68",
          "69",
          "70",
          "71",
          "72",
          "73",
          "74",
          "75",
          "76",
          "77",
          "78",
          "79",
          "80",
          "81",
          "82",
          "83"
        ]
      },
      "DadosExchangeToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "expiraEm": {
            "type": "string"
          },
          "urlAbrir": {
            "type": "string"
          }
        },
        "required": [
          "token",
          "expiraEm",
          "urlAbrir"
        ],
        "additionalProperties": false
      },
      "CalculadoraCatalogo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "namespace": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "pacote": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "nomeCurto": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "capacidades": {
            "type": "object",
            "properties": {
              "persistenciaOnline": {
                "type": "boolean"
              },
              "aberturaPorUrl": {
                "type": "boolean"
              },
              "linksPublicos": {
                "type": "boolean"
              },
              "exchange": {
                "type": "boolean"
              }
            },
            "required": [
              "persistenciaOnline",
              "aberturaPorUrl",
              "linksPublicos",
              "exchange"
            ],
            "additionalProperties": false
          },
          "url": {
            "type": "string"
          },
          "caminhoAbrir": {
            "type": "string"
          },
          "urlAbrirTemplate": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "namespace",
          "slug",
          "pacote",
          "nome",
          "nomeCurto",
          "descricao",
          "capacidades",
          "url"
        ],
        "additionalProperties": false
      },
      "DocumentoLegalApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "tipo": {
            "$ref": "#/components/schemas/TipoDocumentoLegal"
          },
          "slug": {
            "type": "string"
          },
          "titulo": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "versao": {
            "type": "number"
          },
          "versaoId": {
            "type": "string"
          },
          "corpoHtml": {
            "type": "string"
          },
          "publicadoEm": {
            "type": "string"
          },
          "atualizadoEm": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "tipo",
          "slug",
          "titulo",
          "descricao",
          "versao",
          "versaoId",
          "corpoHtml",
          "publicadoEm",
          "atualizadoEm"
        ],
        "additionalProperties": false
      },
      "TipoDocumentoLegal": {
        "type": "string",
        "enum": [
          "termos-uso",
          "aviso-privacidade"
        ]
      },
      "DocumentoLegalResumoApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "tipo": {
            "$ref": "#/components/schemas/TipoDocumentoLegal"
          },
          "slug": {
            "type": "string"
          },
          "titulo": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "versao": {
            "type": "number"
          },
          "versaoId": {
            "type": "string"
          },
          "publicadoEm": {
            "type": "string"
          },
          "atualizadoEm": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "tipo",
          "slug",
          "titulo",
          "descricao",
          "versao",
          "versaoId",
          "publicadoEm",
          "atualizadoEm"
        ],
        "additionalProperties": false
      },
      "LinhaReajusteApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string"
          },
          "dataBase": {
            "type": [
              "string",
              "null"
            ]
          },
          "integral": {
            "type": [
              "number",
              "null"
            ]
          },
          "proporcional": {
            "type": [
              "number",
              "null"
            ]
          },
          "art58ADCT": {
            "type": [
              "number",
              "null"
            ]
          },
          "fonte": {
            "type": [
              "string",
              "null"
            ]
          },
          "multiplicadorMoeda": {
            "type": [
              "number",
              "null"
            ]
          },
          "observacoes": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "competencia",
          "dataBase",
          "integral",
          "proporcional",
          "art58ADCT",
          "fonte",
          "multiplicadorMoeda",
          "observacoes"
        ],
        "additionalProperties": false
      },
      "LinhaReajustePreRealApi": {
        "type": "object",
        "properties": {
          "dataBase": {
            "type": "string"
          },
          "dados": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        "required": [
          "dataBase",
          "dados"
        ],
        "additionalProperties": false
      },
      "LinhaOs121Api": {
        "type": "object",
        "properties": {
          "dataBase": {
            "type": "string"
          },
          "dados": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        "required": [
          "dataBase",
          "dados"
        ],
        "additionalProperties": false
      },
      "LinhaMoedasApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string"
          },
          "moeda": {
            "type": "string"
          },
          "multiplicador": {
            "type": "number"
          },
          "inicio": {
            "type": "string"
          },
          "fundamento": {
            "type": "string"
          }
        },
        "required": [
          "competencia",
          "moeda",
          "multiplicador",
          "inicio",
          "fundamento"
        ],
        "additionalProperties": false
      },
      "LinhaAdiantamentoApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string"
          },
          "proporcao": {
            "type": "number"
          },
          "fundamento": {
            "type": "string"
          }
        },
        "required": [
          "competencia",
          "proporcao",
          "fundamento"
        ],
        "additionalProperties": false
      },
      "LinhaTabuaMortalidadeApi": {
        "type": "object",
        "properties": {
          "publicacao": {
            "type": "string"
          },
          "expectativas": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "publicacao",
          "expectativas"
        ],
        "additionalProperties": false
      },
      "LinkPublicoCalculoOnline": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "app": {
            "type": "string"
          },
          "versao": {
            "type": "string"
          },
          "titulo": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "arquivo": {
            "type": "object",
            "additionalProperties": {}
          },
          "observacoes": {
            "type": [
              "string",
              "null"
            ]
          },
          "criadoEm": {
            "type": "string"
          },
          "atualizadoEm": {
            "type": "string"
          }
        },
        "required": [
          "app",
          "arquivo",
          "atualizadoEm",
          "criadoEm",
          "id",
          "observacoes",
          "tags",
          "titulo",
          "versao"
        ],
        "additionalProperties": false
      },
      "PermalinkCalculoOnline": {
        "$ref": "#/components/schemas/CalculoCompartilhadoPublicoBaseOnline"
      },
      "CalculoCompartilhadoPublicoBaseOnline": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "app": {
            "type": "string"
          },
          "versao": {
            "type": "string"
          },
          "titulo": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "arquivo": {
            "type": "object",
            "additionalProperties": {}
          },
          "observacoes": {
            "type": [
              "string",
              "null"
            ]
          },
          "criadoEm": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "app",
          "versao",
          "titulo",
          "tags",
          "arquivo",
          "observacoes",
          "criadoEm"
        ],
        "additionalProperties": false
      },
      "InfoPdpj": {
        "type": "object",
        "properties": {
          "nomeServico": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "iconePequenoUrl": {
            "type": "string"
          },
          "iconeGrandeUrl": {
            "type": "string"
          },
          "iconePequenoDarkUrl": {
            "type": "string"
          },
          "iconeGrandeDarkUrl": {
            "type": "string"
          },
          "swaggerUrl": {
            "type": "string"
          },
          "frontendUrl": {
            "type": "string"
          },
          "documentacaoUsuarioUrl": {
            "type": "string"
          },
          "documentacaoTecnicaUrl": {
            "type": "string"
          },
          "ambiente": {
            "type": "string"
          },
          "calculadoras": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemPortalPdpj"
            }
          },
          "utilidades": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemPortalPdpj"
            }
          },
          "servicos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemPortalPdpj"
            }
          },
          "documentacoes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemPortalPdpj"
            }
          }
        },
        "required": [
          "nomeServico",
          "descricao",
          "iconePequenoUrl",
          "iconeGrandeUrl",
          "iconePequenoDarkUrl",
          "iconeGrandeDarkUrl",
          "swaggerUrl",
          "frontendUrl",
          "documentacaoUsuarioUrl",
          "documentacaoTecnicaUrl",
          "ambiente",
          "calculadoras",
          "utilidades",
          "servicos",
          "documentacoes"
        ],
        "additionalProperties": false
      },
      "ItemPortalPdpj": {
        "$ref": "#/components/schemas/ItemCatalogo"
      },
      "ItemCatalogo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "titulo": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "tipo": {
            "$ref": "#/components/schemas/TipoItemCatalogo"
          },
          "destaque": {
            "type": "boolean"
          },
          "logoChave": {
            "type": "string"
          },
          "corPrincipal": {
            "type": "string"
          },
          "corEscura": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "titulo",
          "descricao",
          "url",
          "tipo",
          "destaque"
        ],
        "additionalProperties": false
      },
      "TipoItemCatalogo": {
        "type": "string",
        "enum": [
          "calculadora",
          "documentacao",
          "servico",
          "utilidade"
        ],
        "description": "O catálogo da plataforma: o que existe, como se chama e onde fica.\n\nMorava em `apps/pdpj/shared/portal/constantes.ts` porque o portal era a única tela que listava módulos. A gaveta de navegação passou a existir em toda calculadora e a listar a mesma coisa — e duas listas divergem na primeira vez que um módulo for acrescentado, renomeado ou desativado. **Uma fonte só.**\n\nMora aqui, e não numa camada de app, porque é conhecimento de domínio puro: nomes, destinos e categorias das ferramentas do Judiciário. Não há transporte, não há Vue e não há decisão de acesso — quem responde \"esta pessoa pode abrir\" é o serviço de acessos, uma camada acima, sobre a lista que sai daqui.\n\nO que ficou em `apps/pdpj` é o que é mesmo do portal: o nome do serviço, os caminhos dos ícones e os tipos das telas dele."
      },
      "HealthCheckResposta": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/HealthStatus"
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "HealthStatus": {
        "type": "string",
        "enum": [
          "UP",
          "DOWN",
          "UNKNOWN",
          "STARTING",
          "RUNNING",
          "STOPPING",
          "STOPPED",
          "TERMINATED",
          "MAINTENANCE",
          "NOT_RESPONDING"
        ]
      },
      "CalculoTempoApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração do tempo de contribuição.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento administrativo.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da DER (Ex. DII, óbito), para fins de análise da qualidade de segurado, carência e aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "periodosPcd": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoPcdApi"
            }
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          },
          "processo": {
            "$ref": "#/components/schemas/ProcessoApi",
            "description": "Identificação do processo para o bloco de identificação do demonstrativo em PDF (`?demonstrativo=true`). Não afeta o cálculo."
          }
        },
        "required": [
          "dataApuracao",
          "dadosSegurado",
          "opcoesContagem",
          "periodosContribuicao"
        ],
        "additionalProperties": false
      },
      "DadosSeguradoApi": {
        "type": "object",
        "properties": {
          "nascimento": {
            "type": "string",
            "examples": [
              "1960-01-01"
            ],
            "description": "Data de nascimento do segurado.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "sexo": {
            "$ref": "#/components/schemas/Sexo",
            "examples": [
              "F"
            ],
            "description": "Sexo"
          },
          "tipo": {
            "$ref": "#/components/schemas/TipoSegurado",
            "examples": [
              "COMUM"
            ],
            "description": "Tipo de segurado."
          }
        },
        "required": [
          "nascimento",
          "sexo"
        ],
        "additionalProperties": false
      },
      "OpcoesContagemApi": {
        "type": "object",
        "properties": {
          "especie": {
            "$ref": "#/components/schemas/EspecieBeneficio",
            "examples": [
              42
            ],
            "description": "Espécie do benefício, pelo código do INSS. Obrigatória: a API não presume espécie alguma. Aceita todas as espécies do dicionário (aposentadorias 41, 42, 46 e 57; incapacidade 31, 32, 91 e 92; auxílio-acidente 36, 94 e 95; pensões 21 e 93; auxílio-reclusão 25; salário-maternidade 80; amparos 87 e 88), e cada uma segue as próprias regras de RMI — no auxílio-acidente, coeficiente de 50% e piso proporcional, sem fator previdenciário."
          },
          "marcoCarencia": {
            "$ref": "#/components/schemas/MarcoCarencia",
            "examples": [
              "IMPLEMENTO_IDADE"
            ],
            "description": "Marco temporal para definição do requisito carência."
          },
          "incorporar120Contribuicoes": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve Incorporar ao patrimônio do segurado o direito à prorrogação decorrente de 120 contribuições (Tema 255 TNU)."
          },
          "requisitoB41Pcd": {
            "$ref": "#/components/schemas/RequisitoB41Pcd",
            "examples": [
              "INICIO_CONTRIBUICAO_COM_DEFICIENCIA"
            ],
            "description": "Forma de aplicação do requisito PCD para b41."
          },
          "carenciaAposEc103": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Carência deve ser exigida para benefícios programados após a EC 103."
          },
          "isencaoCarenciaB31ouB32": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Auxílio por Incapacidade Temporária (B31) ou Aposentadoria por Incapacidade Permanente (B32) com isenção de carência."
          },
          "exigirIdadeMinimaB46Ec103": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Se marcado como verdadeiro, não será exigida idade para a regra do art. 19, §1º, I, da EC 103 (Aposentadoria Especial)."
          },
          "aplicarFatorAposEc103": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Fator previdenciário deve ser aplicado após a EC 103."
          },
          "analisarCompetenciasAbaixoDoMinimoAposEc103": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Se marcado como verdadeiro, as competências abaixo do mínimo após EC 103 não são computadas. Pressupõem que seja fornecida a lista de salários."
          },
          "inicioExclusaoAbaixoMinimoEc103": {
            "type": "string",
            "examples": [
              "2019-12"
            ],
            "description": "Competência inicial da análise para exclusão das competências inferiores ao mínimo após a EC 103 (competência mínima: 2019-12).",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "efeitosExclusaoAbaixoMinimoEc103": {
            "$ref": "#/components/schemas/EfeitosExclusao",
            "examples": [
              "TEMPO_CARENCIA_QUALIDADE_SEGURADO"
            ],
            "description": "Aplicação para exclusão das competências inferiores ao mínimo após a EC 103 para qualquer forma de filiação."
          },
          "analisarRecolhimentosAbaixoDoMinimo": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Se verdadeiro, recolhimentos de CI/Facultativo inferiores ao salário mínimo não são computados."
          },
          "inicioAnaliseRecolhimentosAbaixoDoMinimo": {
            "type": "string",
            "examples": [
              "1994-04"
            ],
            "description": "Competência inicial da análise de recolhimentos inferiores ao mínimo para CI/Facultativo (competência mínima: 1994-04).",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "efeitosExclusaoRecolhimentosAbaixoDoMinimo": {
            "$ref": "#/components/schemas/EfeitosExclusao",
            "examples": [
              "TEMPO_CARENCIA_QUALIDADE_SEGURADO"
            ],
            "description": "Aplicação para exclusão dos recolhimentos inferiores ao mínimo (CI/Facultativo)."
          },
          "analisarRecolhimentosEmAtraso": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Se verdadeiro, recolhimentos em atraso não são computados."
          },
          "inicioAnaliseRecolhimentosEmAtraso": {
            "type": "string",
            "examples": [
              "1994-04"
            ],
            "description": "Competência inicial da análise de recolhimentos em atraso (competência mínima: 1994-04).",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "efeitosExclusaoRecolhimentosEmAtraso": {
            "$ref": "#/components/schemas/EfeitosExclusao",
            "examples": [
              "APENAS_CARENCIA"
            ],
            "description": "Aplicação para exclusão dos recolhimentos em atraso."
          },
          "excluirRecolhidoAposFatoGerador": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Se verdadeiro, recolhimentos de competências anteriores efetuados após o fato gerador não são computados."
          },
          "inicioExclusaoRecolhidoAposFatoGerador": {
            "type": "string",
            "examples": [
              "1994-04"
            ],
            "description": "Competência inicial da análise para exclusão das competências com recolhimentos em atraso efetuados após o fato gerador.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "efeitosExclusaoRecolhidoAposFatoGerador": {
            "$ref": "#/components/schemas/EfeitosExclusao",
            "examples": [
              "TEMPO_CARENCIA_QUALIDADE_SEGURADO"
            ],
            "description": "Aplicação para exclusão das competências com recolhimentos em atraso efetuados após o fato gerador."
          }
        },
        "required": [
          "especie"
        ],
        "additionalProperties": false
      },
      "MarcoCarencia": {
        "type": "string",
        "enum": [
          "IMPLEMENTO_IDADE",
          "DER"
        ]
      },
      "RequisitoB41Pcd": {
        "type": "string",
        "enum": [
          "INICIO_CONTRIBUICAO_COM_DEFICIENCIA",
          "INICIO_DEFICIENCIA"
        ]
      },
      "EfeitosExclusao": {
        "type": "string",
        "enum": [
          "APENAS_TEMPO",
          "APENAS_CARENCIA",
          "TEMPO_CARENCIA",
          "TEMPO_CARENCIA_QUALIDADE_SEGURADO"
        ]
      },
      "PeriodoPcdApi": {
        "type": "object",
        "properties": {
          "dataInicial": {
            "type": "string",
            "examples": [
              "1980-02-03"
            ],
            "description": "Data inicial do período de deficiência.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dataFinal": {
            "type": "string",
            "examples": [
              "1990-05-10"
            ],
            "description": "Data final do período de deficiência.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "grauDeficiencia": {
            "$ref": "#/components/schemas/GrauDeficiencia",
            "examples": [
              "MODERADO"
            ],
            "description": "Grau de deficiência no período."
          },
          "excluido": {
            "type": "boolean",
            "description": "Define se o período deve ser excluído.",
            "examples": [
              false
            ]
          }
        },
        "required": [
          "dataInicial",
          "dataFinal",
          "grauDeficiencia"
        ],
        "additionalProperties": false
      },
      "ProcessoApi": {
        "type": "object",
        "properties": {
          "nomeCalculo": {
            "type": "string",
            "examples": [
              "Aposentadoria - João da Silva"
            ],
            "description": "Nome do cálculo; vira o nome-base do arquivo PDF."
          },
          "numero": {
            "type": "string",
            "examples": [
              "0000000-00.0000.0.00.0000"
            ],
            "description": "Número do processo exibido na identificação do demonstrativo."
          },
          "autor": {
            "type": "string",
            "examples": [
              "João da Silva"
            ],
            "description": "Nome da parte autora exibido na identificação do demonstrativo."
          }
        },
        "additionalProperties": false,
        "description": "Identificação do processo/cálculo usada SOMENTE no bloco de identificação do demonstrativo em PDF (`?demonstrativo=true`) — não afeta o cálculo."
      },
      "CalculoTempoPrevjudApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração do tempo de contribuição.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento administrativo.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da DER (Ex. DII, óbito), para fins de análise da qualidade de segurado, carência e aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "dadosPrevjud": {
            "$ref": "#/components/schemas/DadosPrevjud",
            "description": "Dados estruturados de PrevJud, no mesmo formato devolvido por `/rgps/api/v1/calculos-tempo/prevjud/ler`."
          },
          "opcoesFiltroPrevjud": {
            "$ref": "#/components/schemas/OpcoesFiltroPrevjud",
            "description": "Opções de importação do PrevJud equivalentes às usadas pela interface web."
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "periodosPcd": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoPcdApi"
            }
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dataApuracao",
          "dadosPrevjud",
          "dadosSegurado",
          "opcoesContagem"
        ],
        "additionalProperties": false
      },
      "ResultadoCalculoTempoApi": {
        "type": "object",
        "properties": {
          "dadosPeriodos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosPeriodoAnalisadoApi"
            }
          },
          "totais": {
            "$ref": "#/components/schemas/TotaisPeriodos"
          },
          "demonstrativo": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "properties": {
                    "rotulo": {
                      "type": "string"
                    },
                    "simples": {
                      "type": "number"
                    },
                    "convertido": {
                      "type": "number"
                    },
                    "idade": {
                      "type": "number"
                    },
                    "carencia": {
                      "type": "number"
                    },
                    "carenciaRural": {
                      "type": "number"
                    }
                  },
                  "additionalProperties": false
                }
              ]
            }
          },
          "beneficios": {
            "$ref": "#/components/schemas/ResultadoAnaliseBeneficiosApi"
          }
        },
        "required": [
          "dadosPeriodos",
          "totais",
          "demonstrativo",
          "beneficios"
        ],
        "additionalProperties": false
      },
      "DadosPeriodoAnalisadoApi": {
        "type": "object",
        "properties": {
          "dataInicial": {
            "type": "string"
          },
          "dataFinal": {
            "type": "string"
          },
          "descricao": {
            "type": "string"
          },
          "formaContagem": {
            "$ref": "#/components/schemas/FormaContagem"
          },
          "grauDeficiencia": {
            "$ref": "#/components/schemas/GrauDeficiencia"
          },
          "excluido": {
            "type": "boolean"
          },
          "observacao": {
            "type": "string"
          },
          "computavelDesde": {
            "type": "string"
          },
          "fatorConversao": {
            "type": "number"
          },
          "tempoSimples": {
            "type": "number"
          },
          "tempoConvertido": {
            "type": "number"
          },
          "carencia": {
            "type": "number"
          },
          "carenciaRural": {
            "type": "number"
          },
          "idade": {
            "type": "number"
          },
          "notas": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dataInicial",
          "dataFinal",
          "descricao",
          "formaContagem",
          "grauDeficiencia",
          "excluido",
          "observacao",
          "fatorConversao",
          "tempoSimples",
          "tempoConvertido",
          "carencia",
          "carenciaRural",
          "idade",
          "notas"
        ],
        "additionalProperties": false
      },
      "TotaisPeriodos": {
        "type": "object",
        "properties": {
          "rotulo": {
            "type": "string"
          },
          "simples": {
            "type": "number"
          },
          "convertido": {
            "type": "number"
          },
          "idade": {
            "type": "number"
          },
          "carencia": {
            "type": "number"
          },
          "carenciaRural": {
            "type": "number"
          }
        },
        "required": [
          "rotulo",
          "simples",
          "convertido",
          "idade",
          "carencia",
          "carenciaRural"
        ],
        "additionalProperties": false
      },
      "ResultadoAnaliseBeneficiosApi": {
        "type": "object",
        "properties": {
          "cumpridos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficioAnalisadoApi"
            }
          },
          "naoCumpridos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficioAnalisadoApi"
            }
          },
          "possivelReafirmacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficioAnalisadoApi"
            }
          },
          "regrasProgressivas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rotulo": {
                  "type": "string"
                },
                "cumpridos": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BeneficioAnalisadoApi"
                  }
                },
                "possivelReafirmacao": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BeneficioAnalisadoApi"
                  }
                }
              },
              "required": [
                "rotulo",
                "cumpridos",
                "possivelReafirmacao"
              ],
              "additionalProperties": false
            }
          },
          "nasAlteracoes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rotulo": {
                  "type": "string"
                },
                "resultado": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BeneficioAnalisadoApi"
                  }
                }
              },
              "required": [
                "rotulo",
                "resultado"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "cumpridos",
          "naoCumpridos",
          "possivelReafirmacao",
          "regrasProgressivas",
          "nasAlteracoes"
        ],
        "additionalProperties": false
      },
      "BeneficioAnalisadoApi": {
        "type": "object",
        "properties": {
          "especie": {
            "$ref": "#/components/schemas/EspecieBeneficio"
          },
          "descricao": {
            "type": "string"
          },
          "chaveFundamento": {
            "$ref": "#/components/schemas/Fundamento",
            "examples": [
              "EC_103_ART_20"
            ],
            "description": "Chave do fundamento legal, a mesma aceita em `fundamento` do cálculo de RMI por fundamento."
          },
          "fundamento": {
            "type": "string",
            "examples": [
              "EC 103, art. 20"
            ],
            "description": "Citação legal do fundamento, legível."
          },
          "inicioVigencia": {
            "type": "string"
          },
          "terminoVigencia": {
            "type": "string"
          },
          "dadosApuracao": {
            "$ref": "#/components/schemas/DadosApuracaoApi"
          },
          "alerta": {
            "type": "string"
          }
        },
        "required": [
          "especie",
          "descricao",
          "chaveFundamento",
          "fundamento",
          "inicioVigencia",
          "dadosApuracao"
        ],
        "additionalProperties": false
      },
      "Fundamento": {
        "type": "string",
        "enum": [
          "LEI_8213_ART_48_CAPUT",
          "LEI_8213_ART_48_PAR_3",
          "LEI_8213_ART_48_PAR_1",
          "LEI_8213_ART_42",
          "LEI_8213_ARTS_42_E_19_SS",
          "LEI_8213_ART_52",
          "LEI_8213_ART_56",
          "LEI_8213_ART_57",
          "LEI_8213_ART_59",
          "LEI_8213_ARTS_59_E_19_SS",
          "LEI_8213_ART_71",
          "LEI_8213_ART_74",
          "LEI_8213_ART_74_E_19_SS",
          "LEI_8213_ART_80",
          "LEI_8213_ART_86",
          "EC_20_ART_9",
          "EC_20_ART_1_CF_ART_201_PAR_7_I",
          "LC_142_ART_3_I_A_III",
          "LC_142_ART_3_IV",
          "EC_103_ART_15",
          "EC_103_ART_16",
          "EC_103_ART_17",
          "EC_103_ART_18",
          "EC_103_ART_19",
          "EC_103_ART_19_PAR_1_I",
          "EC_103_ART_19_PAR_1_II",
          "EC_103_ART_20",
          "EC_103_ART_21",
          "USUARIO"
        ]
      },
      "DadosApuracaoApi": {
        "type": "object",
        "properties": {
          "temDireito": {
            "type": "boolean"
          },
          "naApuracao": {
            "$ref": "#/components/schemas/DadosImplementacaoApi"
          },
          "naImplementacao": {
            "$ref": "#/components/schemas/DadosImplementacaoApi"
          }
        },
        "required": [
          "temDireito",
          "naApuracao"
        ],
        "additionalProperties": false
      },
      "DadosImplementacaoApi": {
        "type": "object",
        "properties": {
          "data": {
            "type": "string"
          },
          "valoresApurados": {
            "type": "object",
            "properties": {
              "carencia": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "idade": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "pedagio": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "pontos": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "tempo": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "tempoDeficiencia": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "deficiencia": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "imediatidade": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              },
              "qualidadeSegurado": {
                "$ref": "#/components/schemas/ResultadoRequisitoApi"
              }
            },
            "additionalProperties": false
          },
          "coeficiente": {
            "$ref": "#/components/schemas/DadosCoeficiente"
          },
          "fatorPrevidenciario": {
            "$ref": "#/components/schemas/DadosFatorPrevidenciario"
          }
        },
        "required": [
          "data",
          "valoresApurados"
        ],
        "additionalProperties": false
      },
      "ResultadoRequisitoApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "rotulo": {
            "type": "string"
          },
          "resultado": {
            "type": "object",
            "properties": {
              "requisito": {
                "type": "number"
              },
              "apurado": {
                "type": "number"
              },
              "cumprido": {
                "type": "boolean"
              },
              "implementadoEm": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                ]
              },
              "paraPontos": {
                "type": "number"
              },
              "nota": {
                "type": "string"
              },
              "inconsistencia": {
                "type": "boolean"
              },
              "porExtenso": {
                "type": "string"
              }
            },
            "required": [
              "requisito",
              "apurado",
              "cumprido",
              "inconsistencia",
              "porExtenso"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "dataApuracao",
          "nome",
          "rotulo",
          "resultado"
        ],
        "additionalProperties": false
      },
      "DadosCoeficiente": {
        "type": "object",
        "properties": {
          "valor": {
            "type": "number"
          },
          "parametro": {
            "$ref": "#/components/schemas/DefinicaoCoeficiente"
          },
          "nota": {
            "type": "string"
          }
        },
        "required": [
          "valor",
          "parametro"
        ],
        "additionalProperties": false
      },
      "DefinicaoCoeficiente": {
        "type": "string",
        "enum": [
          "100%",
          "APTC (Lei 8.213)",
          "APIDA (Lei 8.213)",
          "EC 20 (Art. 9º)",
          "EC 103 (Progressivo)",
          "EC 103 (Especial)",
          "Beneficio Não Programado",
          "Dados do Usuário"
        ]
      },
      "DadosFatorPrevidenciario": {
        "type": "object",
        "properties": {
          "valor": {
            "type": "number"
          },
          "aplicar": {
            "type": "boolean"
          },
          "idade": {
            "type": "number"
          },
          "expectativaSobrevida": {
            "type": "number"
          },
          "pontos": {
            "type": "number"
          },
          "aplicarSempre": {
            "type": "boolean"
          }
        },
        "required": [
          "valor",
          "aplicar",
          "idade",
          "expectativaSobrevida"
        ],
        "additionalProperties": false
      },
      "ResultadoLeituraCartaApi": {
        "type": "object",
        "properties": {
          "dadosSegurado": {
            "type": "object",
            "properties": {
              "nome": {
                "type": "string"
              },
              "nit": {
                "type": "string"
              },
              "aps": {
                "type": "string"
              }
            },
            "required": [
              "nome"
            ],
            "additionalProperties": false
          },
          "dadosBeneficio": {
            "type": "object",
            "properties": {
              "der": {
                "type": "string",
                "examples": [
                  "2021-05-01"
                ],
                "description": "Data de entrada do requerimento administrativo.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "dib": {
                "type": "string",
                "examples": [
                  "2021-05-01"
                ],
                "description": "Data de início do benefício.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "especie": {
                "type": "number"
              },
              "nb": {
                "type": "string"
              }
            },
            "required": [
              "der",
              "dib",
              "especie",
              "nb"
            ],
            "additionalProperties": false
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dadosSegurado",
          "dadosBeneficio",
          "salarios"
        ],
        "additionalProperties": false
      },
      "ResultadoLeituraPapApi": {
        "type": "object",
        "properties": {
          "totalPaginas": {
            "type": "number",
            "description": "Total de páginas do PDF enviado."
          },
          "cnis": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ordem": {
                  "type": "number",
                  "description": "Posição global de aparição no PDF entre os documentos devolvidos (1-based)."
                },
                "paginaInicial": {
                  "type": "number"
                },
                "paginaFinal": {
                  "type": "number"
                },
                "paginas": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "description": "Números das páginas que compõem o documento."
                },
                "avisos": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "dados": {
                  "$ref": "#/components/schemas/ResultadoLeituraCnisApi"
                }
              },
              "required": [
                "ordem",
                "paginaInicial",
                "paginaFinal",
                "paginas",
                "avisos",
                "dados"
              ],
              "additionalProperties": false
            },
            "description": "Extratos CNIS identificados com certeza, na ordem em que aparecem no PDF."
          },
          "rdctc": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ordem": {
                  "type": "number",
                  "description": "Posição global de aparição no PDF entre os documentos devolvidos (1-based)."
                },
                "paginaInicial": {
                  "type": "number"
                },
                "paginaFinal": {
                  "type": "number"
                },
                "paginas": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "description": "Números das páginas que compõem o documento."
                },
                "avisos": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "dados": {
                  "$ref": "#/components/schemas/ResultadoLeituraRdctcApi"
                }
              },
              "required": [
                "ordem",
                "paginaInicial",
                "paginaFinal",
                "paginas",
                "avisos",
                "dados"
              ],
              "additionalProperties": false
            },
            "description": "Documentos RDCTC identificados com certeza, na ordem em que aparecem no PDF."
          },
          "cartasConcessao": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ordem": {
                  "type": "number",
                  "description": "Posição global de aparição no PDF entre os documentos devolvidos (1-based)."
                },
                "paginaInicial": {
                  "type": "number"
                },
                "paginaFinal": {
                  "type": "number"
                },
                "paginas": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "description": "Números das páginas que compõem o documento."
                },
                "avisos": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "dados": {
                  "$ref": "#/components/schemas/ResultadoLeituraCartaApi"
                }
              },
              "required": [
                "ordem",
                "paginaInicial",
                "paginaFinal",
                "paginas",
                "avisos",
                "dados"
              ],
              "additionalProperties": false
            },
            "description": "Cartas de Concessão identificadas com certeza, na ordem em que aparecem no PDF."
          },
          "paginasIgnoradas": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Páginas do PDF que não integram nenhum dos documentos devolvidos."
          },
          "avisos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "totalPaginas",
          "cnis",
          "rdctc",
          "cartasConcessao",
          "paginasIgnoradas",
          "avisos"
        ],
        "additionalProperties": false
      },
      "CalculoAtrasadosApi": {
        "type": "object",
        "properties": {
          "dadosProcesso": {
            "$ref": "#/components/schemas/DadosProcessoApi"
          },
          "opcoesCalculo": {
            "$ref": "#/components/schemas/OpcoesCalculoLiquidacaoApi"
          },
          "beneficiosDevidos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosBeneficioApi"
            }
          },
          "beneficiosPagos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosBeneficioApi"
            }
          },
          "periodosBeneficioVantajoso": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoBeneficioVantajosoApi"
            }
          },
          "descontos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DescontosApi"
            }
          },
          "acrescimos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AcrescimoApi"
            }
          },
          "outroDebitos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DebitosEmGeralApi"
            }
          },
          "honorarios": {
            "$ref": "#/components/schemas/HonorariosApi"
          },
          "multa": {
            "$ref": "#/components/schemas/MultaApi"
          }
        },
        "required": [
          "dadosProcesso",
          "opcoesCalculo",
          "beneficiosDevidos",
          "beneficiosPagos",
          "periodosBeneficioVantajoso",
          "descontos",
          "acrescimos",
          "outroDebitos",
          "honorarios",
          "multa"
        ],
        "additionalProperties": false
      },
      "DadosProcessoApi": {
        "type": "object",
        "properties": {
          "numero": {
            "type": "string",
            "examples": [
              "1234567-88.1900.0.00.0000"
            ],
            "description": "Número do processo.",
            "pattern": "^\\d{7}-\\d{2}\\.\\d{4}\\.\\d\\.\\d{2}\\.\\d{4}$"
          },
          "protocolo": {
            "type": "string",
            "examples": [
              "2018-02-10"
            ],
            "description": "Data do protocolo/ajuizamento.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "citacao": {
            "type": "string",
            "examples": [
              "2020-05-20"
            ],
            "description": "Data da citação.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "transito": {
            "type": "string",
            "examples": [
              "2024-02-17"
            ],
            "description": "Data do trânsito em julgado.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "valorCausa": {
            "type": "number",
            "examples": [
              10000
            ],
            "description": "Valor da causa."
          }
        },
        "required": [
          "numero",
          "protocolo",
          "citacao"
        ],
        "additionalProperties": false
      },
      "OpcoesCalculoLiquidacaoApi": {
        "type": "object",
        "properties": {
          "dataAtualizacao": {
            "type": "string",
            "examples": [
              "2025-02"
            ],
            "description": "Data de atualização dos cálculos.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "consectariosPrincipal": {
            "$ref": "#/components/schemas/ConsectariosApi",
            "description": "Critérios de correção monetária e juros aplicáveis ao débito principal (benefícios)."
          },
          "consectariosAcessorios": {
            "$ref": "#/components/schemas/ConsectariosApi",
            "description": "Critérios de correção monetária e juros aplicáveis aos débitos acessórios."
          },
          "inicioDiferencas": {
            "type": "string",
            "examples": [
              "2020-01-01"
            ],
            "description": "Data de início da apuração das diferenças.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "terminoDiferencas": {
            "type": "string",
            "examples": [
              "2025-02-04"
            ],
            "description": "Data de término da apuração das diferenças.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "aplicarPrescricao": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve ser aplicada a prescrição quinquenal."
          },
          "criterioDeducaoAlcada": {
            "$ref": "#/components/schemas/CriterioDeducaoAlcada",
            "examples": [
              "VENCIDAS_MAIS_12_VINCENDAS"
            ],
            "description": "Critério de dedução de alçada a ser utilizado."
          },
          "deduzirExcedenteAlcada": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve ser deduzido o excedente de alçada."
          },
          "percentualAcordo": {
            "type": "number",
            "examples": [
              0.9
            ],
            "description": "Indica o percentual de acordo a ser deduzido, se for o caso."
          }
        },
        "required": [
          "dataAtualizacao",
          "consectariosPrincipal",
          "consectariosAcessorios",
          "criterioDeducaoAlcada",
          "deduzirExcedenteAlcada"
        ],
        "additionalProperties": false
      },
      "ConsectariosApi": {
        "type": "object",
        "properties": {
          "encadeamentoCorrecao": {
            "$ref": "#/components/schemas/TipoEncadeamentoCorrecaoApi",
            "examples": [
              "RES_784"
            ],
            "description": "Encadeamento a ser adotado para os indexadores."
          },
          "encadeamentoCorrecaoConfigurado": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoIndexadorFlexivelApi"
            },
            "description": "Períodos do encadeamento de correção, quando `encadeamentoCorrecao` é CONFIGURADO_MANUALMENTE.\nLista vazia ou ausente significa nenhuma configuração."
          },
          "encadeamentoJuros": {
            "$ref": "#/components/schemas/TipoEncadeamentoJurosApi",
            "examples": [
              "MANUAL_EM_VIGOR_PREVIDENCIARIO"
            ],
            "description": "Encadeamento a ser adotado para as taxas de juros."
          },
          "encadeamentoJurosConfigurado": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoTaxaJurosFlexivelApi"
            },
            "description": "Períodos do encadeamento de juros, quando `encadeamentoJuros` é CONFIGURADO_MANUALMENTE.\nLista vazia ou ausente significa nenhuma configuração."
          },
          "opcaoInicioSelicEc113": {
            "$ref": "#/components/schemas/InicioSelicEc113",
            "examples": [
              "MANUAL_EM_VIGOR_PREVIDENCIARIO"
            ],
            "description": "Data de início para a SELIC EC 113, ou sua não aplicação."
          },
          "opcaoTerminoSelicEc113": {
            "$ref": "#/components/schemas/TerminoSelicEc113",
            "examples": [
              "SETEMBRO_2025"
            ],
            "description": "Data de término da SELIC EC 113, ou sua não aplicação."
          },
          "encadeamentoCorrecaoAposSelic": {
            "$ref": "#/components/schemas/TipoEncadeamentoCorrecaoApi",
            "examples": [
              "MANUAL_EM_VIGOR_PREVIDENCIARIO"
            ],
            "description": "Encadeamento a ser adotado para os indexadores após o término da SELIC EC 113, quando aplicável."
          },
          "encadeamentoCorrecaoConfiguradoAposSelic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoIndexadorFlexivelApi"
            },
            "description": "Períodos do encadeamento de correção após a SELIC, quando configurado manualmente."
          },
          "encadeamentoJurosAposSelic": {
            "$ref": "#/components/schemas/TipoEncadeamentoJurosApi",
            "examples": [
              "MANUAL_EM_VIGOR_PREVIDENCIARIO"
            ],
            "description": "Encadeamento a ser adotado para as taxas de juros após o término da SELIC EC 113, quando aplicável."
          },
          "encadeamentoJurosConfiguradoAposSelic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoTaxaJurosFlexivelApi"
            },
            "description": "Períodos do encadeamento de juros após a SELIC, quando configurado manualmente."
          }
        },
        "required": [
          "encadeamentoCorrecao",
          "encadeamentoJuros",
          "opcaoInicioSelicEc113",
          "opcaoTerminoSelicEc113"
        ],
        "additionalProperties": false
      },
      "TipoEncadeamentoCorrecaoApi": {
        "type": "string",
        "enum": [
          "MANUAL_EM_VIGOR_PREVIDENCIARIO",
          "RES_134_PREVIDENCIARIO",
          "MANUAL_EM_VIGOR_CONDENATORIAS_FAZENDA",
          "CONFIGURADO_MANUALMENTE"
        ]
      },
      "PeriodoIndexadorFlexivelApi": {
        "type": "object",
        "properties": {
          "inicio": {
            "type": "string",
            "examples": [
              "2025-09-01"
            ],
            "description": "Data a partir da qual o indexador passa a valer.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "indexador": {
            "type": "string",
            "examples": [
              "INPC"
            ],
            "description": "Indexador ou encadeamento adotado a partir de `inicio`."
          },
          "fundamento": {
            "type": "string",
            "description": "Fundamento do critério adotado no período."
          },
          "desprezarNegativo": {
            "type": "boolean",
            "description": "Desprezar variação negativa do indexador no período."
          }
        },
        "required": [
          "inicio",
          "indexador"
        ],
        "additionalProperties": false
      },
      "TipoEncadeamentoJurosApi": {
        "type": "string",
        "enum": [
          "SEM_JUROS",
          "MANUAL_EM_VIGOR_PREVIDENCIARIO",
          "MANUAL_EM_VIGOR_CONDENATORIAS_FAZENDA",
          "FIXO_UM",
          "FIXO_MEIO",
          "MEIO_E_MANUAL_EM_VIGOR_PREVIDENCIARIO",
          "CONFIGURADO_MANUALMENTE"
        ]
      },
      "PeriodoTaxaJurosFlexivelApi": {
        "type": "object",
        "properties": {
          "inicio": {
            "type": "string",
            "examples": [
              "2025-09-01"
            ],
            "description": "Data a partir da qual a taxa passa a valer.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "taxa": {
            "type": "string",
            "examples": [
              "TAXA_LEGAL"
            ],
            "description": "Taxa de juros ou encadeamento adotado a partir de `inicio`."
          },
          "fundamento": {
            "type": "string",
            "description": "Fundamento do critério adotado no período."
          }
        },
        "required": [
          "inicio",
          "taxa"
        ],
        "additionalProperties": false
      },
      "InicioSelicEc113": {
        "type": "string",
        "enum": [
          "DEZEMBRO_2021",
          "CITACAO",
          "NAO_APLICAR"
        ]
      },
      "TerminoSelicEc113": {
        "type": "string",
        "enum": [
          "SETEMBRO_2025",
          "OUTUBRO_2025",
          "DATA_ATUALIZACAO",
          "NAO_APLICAR"
        ]
      },
      "CriterioDeducaoAlcada": {
        "type": "string",
        "enum": [
          "VENCIDAS_MAIS_12_VINCENDAS",
          "APENAS_VENCIDAS",
          "VENCIDAS_MAIS_VINCENDAS_APURADAS_ATE_12"
        ]
      },
      "DadosBeneficioApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identificador do benefício. Necessário para preservar vínculos entre benefícios originários e derivados."
          },
          "finalidade": {
            "$ref": "#/components/schemas/FinalidadeBeneficio",
            "description": "Finalidade do benefício. Usada principalmente em vínculos entre benefícios."
          },
          "especie": {
            "$ref": "#/components/schemas/EspecieBeneficio",
            "examples": [
              "42"
            ],
            "description": "Espécie do benefício."
          },
          "nb": {
            "type": "string",
            "examples": [
              "123456789"
            ],
            "description": "Número do benefício."
          },
          "dib": {
            "type": "string",
            "examples": [
              "2020-10-05"
            ],
            "description": "Data de início do benefício.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dcb": {
            "type": "string",
            "examples": [
              "2022-03-10"
            ],
            "description": "Data de cessação do benefício.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dadosRmi": {
            "type": "object",
            "properties": {
              "baseReajuste": {
                "$ref": "#/components/schemas/TipoBaseReajuste",
                "examples": [
                  "BENEFICIO_INDEPENDENTE"
                ],
                "description": "Base de reajuste do benefício."
              },
              "valor": {
                "type": "number",
                "examples": [
                  2300
                ],
                "description": "Valor da RMI."
              },
              "sb": {
                "type": "number",
                "examples": [
                  10
                ],
                "description": "Valor do salário de benefício. Só se aplica se a base de reajuste for \"SB_ORIGINARIO\"."
              },
              "coeficiente": {
                "type": "number",
                "examples": [
                  0.91
                ],
                "description": "Coeficiente de cálculo. Só se aplica se a base de reajuste for \"SB_ORIGINARIO\"."
              },
              "irt": {
                "type": "number",
                "examples": [
                  1.3
                ],
                "description": "Índice de reposição do teto."
              }
            },
            "required": [
              "baseReajuste",
              "valor"
            ],
            "additionalProperties": false
          },
          "dadosReajuste": {
            "type": "object",
            "properties": {
              "inicioAdicional25PorCento": {
                "type": "string",
                "examples": [
                  ""
                ],
                "description": "Data de início do adicional de 25%.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "computarAPartirDe": {
                "type": "string",
                "examples": [
                  "2020-10-05"
                ],
                "description": "Data de início dos efeitos financeiros do benefício.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "utilizarComputarAPartirDeParaAbono": {
                "type": "boolean",
                "examples": [
                  false
                ],
                "description": "Considerar início dos efeitos financeiros para cálculo do abono."
              },
              "percentualPiso": {
                "type": "number",
                "examples": [
                  0.5
                ],
                "description": "Percentual do piso a ser aplicado. Para os benefícios que podem ter valor inferior ao mínimo."
              },
              "limitarBaseReajuste": {
                "type": "boolean",
                "examples": [
                  true
                ],
                "description": "Indica se a base de reajuste deve ser limitada ao teto."
              },
              "equivalenciaSalarial": {
                "type": "number",
                "examples": [
                  1.26
                ],
                "description": "Indica o valor da equivalência salarial."
              },
              "aplicarOs121": {
                "type": "boolean",
                "examples": [
                  true
                ],
                "description": "Indica se deve ser aplicada a OS 121."
              },
              "aplicarReajuste147EmSet91": {
                "type": "boolean",
                "examples": [
                  true
                ],
                "description": "Indica se deve ser aplicado o reajuste de 147% em setembro de 1991."
              },
              "referenciaPrimeiroReajuste": {
                "type": "string",
                "examples": [
                  "2020-03-10"
                ],
                "description": "Data de referência para o primeiro reajuste (DIB Anterior).",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "anteciparAbono": {
                "type": "boolean",
                "examples": [
                  true
                ],
                "description": "Indica se deve ser apurado o abono antecipado."
              },
              "criterioApuracaoAbono": {
                "$ref": "#/components/schemas/CriterioApuracaoAbono",
                "description": "Indica se deve ser excluído primeiro e/ou último abono, ou manter como calculado pelo sistema."
              }
            },
            "additionalProperties": false
          },
          "acumulacaoEc103": {
            "type": "boolean",
            "description": "Indica se deve ser aplicada a regra da cumulação da EC 103."
          },
          "reconstituirDescontoAdmAcumulacao": {
            "type": "boolean",
            "description": "Disponível apenas para Benefícios Pagos. Opção para reconstituir desconto por acumulação (art. 24, § 2º, EC 103) já efetivado administrativamente, e compensá-lo com o novo valor calculado para esse desconto. Esta opção se aplica aos casos de revisão de um dos benefícios acumuláveis na forma do art. 24, § 2º, EC 103."
          },
          "limitarDescontos": {
            "type": "boolean",
            "description": "Indica se os descontos devem ser limitados para que o resultado fique positivo. Apenas para benefícios pagos."
          },
          "computarSomenteComSalario": {
            "type": "boolean",
            "description": "Indica se o benefício deve ser computado apenas para fins salariais."
          },
          "observacao": {
            "type": "string",
            "description": "Observações internas do benefício."
          },
          "excluido": {
            "type": "boolean",
            "description": "Indica se o benefício está excluído do cálculo."
          },
          "dependentes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosDependentesApi"
            },
            "description": "Indica a evolução do quadro de dependentes. Só se aplica aos benefícios destinados aos dependentes do segurado."
          },
          "dadosDerivado": {
            "$ref": "#/components/schemas/DadosBeneficioApi",
            "description": "Benefício derivado vinculado a este benefício."
          },
          "dadosOriginario": {
            "$ref": "#/components/schemas/DadosBeneficioApi",
            "description": "Benefício originário vinculado a este benefício."
          }
        },
        "required": [
          "especie",
          "dib",
          "dadosRmi",
          "dadosReajuste"
        ],
        "additionalProperties": false
      },
      "DadosDependentesApi": {
        "type": "object",
        "properties": {
          "total": {
            "type": "number",
            "examples": [
              4
            ],
            "description": "Total de dependentes."
          },
          "aPartirDe": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data da alteração no número de dependentes.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "algumInvalido": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Indica se há pelo menos um dependente inválido."
          }
        },
        "required": [
          "total",
          "aPartirDe",
          "algumInvalido"
        ],
        "additionalProperties": false
      },
      "PeriodoBeneficioVantajosoApi": {
        "type": "object",
        "properties": {
          "dataInicial": {
            "type": "string",
            "examples": [
              "2022-01-01"
            ],
            "description": "Data inicial do período do benefício mais vantajoso.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dataFinal": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data final do período do benefício mais vantajoso.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "observacao": {
            "type": "string",
            "examples": [
              "Benefício mais vantajoso RPPS"
            ],
            "description": "Observações sobre o período."
          },
          "excluido": {
            "type": "boolean",
            "description": "Define se o período deve ser excluído.",
            "examples": [
              false
            ]
          },
          "proporcaoPrimeiroAbono": {
            "type": "number",
            "examples": [
              0.33
            ],
            "description": "Proporção primeiro abono do período."
          },
          "proporcaoUltimoAbono": {
            "type": "number",
            "examples": [
              1
            ],
            "description": "Proporção último abono do período."
          }
        },
        "required": [
          "dataInicial",
          "dataFinal"
        ],
        "additionalProperties": false
      },
      "DescontosApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "examples": [
              "2023-01"
            ],
            "description": "Competência do desconto.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "hiscreRenda": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do desconto sobre a renda no histórico de créditos."
          },
          "limitarHiscreRenda": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve limitar o desconto do Hiscre (renda) ao valor devido (Tema 1207 STJ)."
          },
          "hiscreAbono": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do desconto sobre o abono no histórico de créditos."
          },
          "hiscreModificadorRenda": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor modificador do desconto sobre a renda no histórico de créditos."
          },
          "hiscreModificadorAbono": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor modificador do desconto sobre o abono no histórico de créditos."
          },
          "limitarHiscreAbono": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve limitar o desconto do Hiscre (abono) ao valor devido (Tema 1207 STJ)."
          },
          "renda": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do desconto sobre a renda."
          },
          "limitarRenda": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve limitar o desconto da renda ao valor devido (Tema 1207 STJ)."
          },
          "abono": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do desconto sobre o abono."
          },
          "limitarAbono": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Indica se deve limitar o desconto do abono ao valor devido (Tema 1207 STJ)."
          },
          "jurosDeMora": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do desconto sobre os juros de mora."
          },
          "selic": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do desconto sobre a selic."
          }
        },
        "required": [
          "competencia",
          "hiscreRenda",
          "limitarHiscreRenda",
          "hiscreAbono",
          "limitarHiscreAbono",
          "renda",
          "limitarRenda",
          "abono",
          "limitarAbono",
          "jurosDeMora",
          "selic"
        ],
        "additionalProperties": false
      },
      "AcrescimoApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "examples": [
              "2023-01"
            ],
            "description": "Competência do acréscimo.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "renda": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do acréscimo sobre a renda."
          },
          "abono": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do acréscimo sobre o abono."
          }
        },
        "required": [
          "competencia",
          "renda",
          "abono"
        ],
        "additionalProperties": false
      },
      "DebitosEmGeralApi": {
        "type": "object",
        "properties": {
          "data": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data do débito.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "valor": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor do débito."
          },
          "descricao": {
            "type": "string",
            "examples": [
              "Débito X"
            ],
            "description": "Descrição do débito."
          },
          "inicioJuros": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data de início dos juros (critério: Condenatórias em Geral).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "baseHonorariosMulta": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Opção para inclusão do débito na base de cálculo de honorários e multa apurado sobre a condenação."
          }
        },
        "required": [
          "data",
          "valor",
          "descricao"
        ],
        "additionalProperties": false
      },
      "HonorariosApi": {
        "type": "object",
        "properties": {
          "baseIncidencia": {
            "$ref": "#/components/schemas/TipoBaseHonorarios",
            "examples": [
              "VALOR_DA_CONDENACAO"
            ],
            "description": "Base de incidência dos honorários."
          },
          "valorArbitrado": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor arbitrado dos honorários. Só se aplica se a base for \"VALOR_ARBITRADO\"."
          },
          "dataArbitramento": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data do arbitramento dos honorários. Só se aplica se a base for \"VALOR_ARBITRADO\".",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "percentual": {
            "type": "number",
            "examples": [
              0.1
            ],
            "description": "Percentual dos honorários. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\"."
          },
          "termoFinal": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Termo final da incidência dos honorários. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\".",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "limite": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Limite dos honorários. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\"."
          },
          "descontarBeneficio": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Indica se devem ser descontados benefício pagos do cálculo dos honorários."
          },
          "aplicarFaixasArt85Cpc": {
            "type": "boolean",
            "examples": [
              false
            ],
            "description": "Indica se devem ser aplicadas as faixas do art. 85 do CPC. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\"."
          },
          "dataSentenca": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data da sentença para cálculo dos honorários. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\".",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "faixa1": {
            "type": "number",
            "examples": [
              0.1
            ],
            "description": "Número equivalente ao percentual de honorários para a primeira faixa do art. 85 CPC/15. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\" e se aplicarFaixasArt85Cpc=true."
          },
          "faixa2": {
            "type": "number",
            "examples": [
              0.8
            ],
            "description": "Número equivalente ao percentual de honorários para a segunda faixa do art. 85 CPC/15. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\" e se aplicarFaixasArt85Cpc=true."
          },
          "faixa3": {
            "type": "number",
            "examples": [
              0.5
            ],
            "description": "Número equivalente ao percentual de honorários para a terceira faixa do art. 85 CPC/15.. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\" e se aplicarFaixasArt85Cpc=true."
          },
          "faixa4": {
            "type": "number",
            "examples": [
              0.3
            ],
            "description": "Número equivalente ao percentual de honorários para a quarta faixa do art. 85 CPC/15.. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\" e se aplicarFaixasArt85Cpc=true."
          },
          "faixa5": {
            "type": "number",
            "examples": [
              0.1
            ],
            "description": "Número equivalente ao percentual de honorários para a quinta faixa do art. 85 CPC/15.. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\" e se aplicarFaixasArt85Cpc=true."
          }
        },
        "required": [
          "baseIncidencia",
          "descontarBeneficio",
          "aplicarFaixasArt85Cpc"
        ],
        "additionalProperties": false
      },
      "TipoBaseHonorarios": {
        "type": "string",
        "enum": [
          "NAO_APURAR",
          "VALOR_DA_CONDENACAO",
          "VALOR_DA_CAUSA",
          "VALOR_ARBITRADO"
        ]
      },
      "MultaApi": {
        "type": "object",
        "properties": {
          "baseIncidencia": {
            "$ref": "#/components/schemas/TipoBaseMulta",
            "examples": [
              "VALOR_DA_CONDENACAO"
            ],
            "description": "Base de incidência da multa."
          },
          "valorArbitrado": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Valor arbitrado da multa. Só se aplica se a base for \"VALOR_ARBITRADO\"."
          },
          "dataArbitramento": {
            "type": "string",
            "examples": [
              "2023-01-01"
            ],
            "description": "Data do arbitramento da multa. Só se aplica se a base for \"VALOR_ARBITRADO\".",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "percentual": {
            "type": "number",
            "examples": [
              0.1
            ],
            "description": "Percentual da multa. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\"."
          },
          "limite": {
            "type": "number",
            "examples": [
              1000
            ],
            "description": "Limite da multa. Só se aplica se a base for \"VALOR_DA_CAUSA\" ou \"VALOR_DA_CONDENACAO\"."
          }
        },
        "required": [
          "baseIncidencia"
        ],
        "additionalProperties": false
      },
      "TipoBaseMulta": {
        "type": "string",
        "enum": [
          "NAO_APURAR",
          "VALOR_DA_CONDENACAO",
          "VALOR_DA_CAUSA",
          "VALOR_ARBITRADO"
        ]
      },
      "ResultadoCalculoAtrasadosApi": {
        "type": "object",
        "properties": {
          "dataAtualizacao": {
            "type": "string",
            "format": "date-time"
          },
          "totalDevido": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "atrasados": {
            "$ref": "#/components/schemas/ResultadoAtrasadosApi"
          },
          "honorarios": {
            "$ref": "#/components/schemas/ResultadoHonorariosApi"
          },
          "multa": {
            "$ref": "#/components/schemas/ResultadoMultaApi"
          },
          "outrosDebitos": {
            "$ref": "#/components/schemas/ResultadoCondenatoriaGeralApi"
          },
          "inicioDiferencas": {
            "type": "string",
            "format": "date-time"
          },
          "terminoDiferencas": {
            "type": "string",
            "format": "date-time"
          },
          "marcoPrescricional": {
            "type": "string",
            "format": "date-time"
          },
          "beneficiosDevidos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultadoBeneficioApi"
            }
          },
          "beneficiosPagos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultadoBeneficioApi"
            }
          },
          "periodosBeneficioVantajoso": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoBeneficioVantajosoResultadoApi"
            }
          },
          "acrescimos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosAcrescimoResultadoApi"
            }
          },
          "outrosDescontosSemLimitacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosDescontoApi"
            }
          },
          "outrosDescontosComLimitacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosDescontoApi"
            }
          },
          "dadosAlcada": {
            "$ref": "#/components/schemas/DadosAlcadaApi"
          },
          "motivoAlcadaNaoApurada": {
            "type": "string",
            "description": "Presente quando o motor não pôde apurar o valor da causa; `dadosAlcada` vem ausente com ele."
          },
          "alerta": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dataAtualizacao",
          "totalDevido",
          "atrasados",
          "inicioDiferencas",
          "terminoDiferencas",
          "beneficiosDevidos",
          "beneficiosPagos",
          "periodosBeneficioVantajoso",
          "acrescimos",
          "outrosDescontosSemLimitacao",
          "outrosDescontosComLimitacao"
        ],
        "additionalProperties": false,
        "description": "Contrato de saída do cálculo de atrasados.\n\nDeclarado por conta própria, e não como apelido de `ResultadoCalculoAtrasados`: enquanto era apelido, qualquer refatoração interna do domínio virava mudança silenciosa da API pública, sem versão e sem aviso."
      },
      "ValorDevidoApi": {
        "type": "object",
        "properties": {
          "principal": {
            "type": "number"
          },
          "jurosMora": {
            "type": "number"
          },
          "selic": {
            "type": "number"
          },
          "somaJuros": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "required": [
          "principal",
          "jurosMora",
          "selic",
          "somaJuros",
          "total"
        ],
        "additionalProperties": false
      },
      "ResultadoAtrasadosApi": {
        "type": "object",
        "properties": {
          "valorDevido": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "atrasadosSemDeducoes": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "atrasadosAposDeducaoAlcada": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "atrasadosAposAcordo": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "tabelaAtualizacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaAtualizacaoApi"
            }
          },
          "competenciasSemReducaoValorNominal": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndices": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasJuros": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "tabelaDiferencas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaDiferencasApi"
            }
          },
          "totaisTabelaDiferencas": {
            "$ref": "#/components/schemas/TotaisTabelaDiferencasApi"
          },
          "dadosRra": {
            "$ref": "#/components/schemas/DadosRraApi"
          }
        },
        "required": [
          "valorDevido",
          "atrasadosSemDeducoes",
          "tabelaAtualizacao",
          "competenciasSemReducaoValorNominal",
          "notasIndices",
          "notasMoedas",
          "notasJuros",
          "notasSelicEc113",
          "tabelaDiferencas",
          "totaisTabelaDiferencas"
        ],
        "additionalProperties": false
      },
      "LinhaAtualizacaoApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "principal": {
            "type": "number"
          },
          "indice": {
            "type": "number"
          },
          "principalAtualizado": {
            "type": "number"
          },
          "percentualJurosMora": {
            "type": "number"
          },
          "percentualJurosMoraAteSelic": {
            "type": "number"
          },
          "valorJurosMora": {
            "type": "number"
          },
          "percentualSelic": {
            "type": "number"
          },
          "valorSelic": {
            "type": "number"
          },
          "valorDevido": {
            "type": "number"
          },
          "indiceReduziriaValorNominal": {
            "type": "boolean"
          },
          "nota": {
            "type": [
              "string",
              "number"
            ]
          }
        },
        "required": [
          "competencia",
          "principal",
          "indice",
          "principalAtualizado",
          "percentualJurosMora",
          "percentualJurosMoraAteSelic",
          "valorJurosMora",
          "percentualSelic",
          "valorSelic",
          "valorDevido"
        ],
        "additionalProperties": false
      },
      "NotasCriteriosApi": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "criterio": {
              "type": "string"
            },
            "fundamento": {
              "type": "string"
            }
          },
          "required": [
            "criterio"
          ],
          "additionalProperties": false
        }
      },
      "LinhaDiferencasApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "beneficioDevido": {
            "type": "number"
          },
          "acrescimo": {
            "type": "number"
          },
          "descontoAcumulacaoEc103": {
            "type": "number"
          },
          "descontoAdmAcumulacaoEc103": {
            "type": "number"
          },
          "beneficioPagoLimitado": {
            "type": "number"
          },
          "outroDescontoLimitado": {
            "type": "number"
          },
          "diferencaLimitada": {
            "type": "number"
          },
          "beneficioPagoNaoLimitado": {
            "type": "number"
          },
          "outroDescontoNaoLimitado": {
            "type": "number"
          },
          "diferencaTotal": {
            "type": "number"
          }
        },
        "required": [
          "competencia",
          "beneficioDevido",
          "acrescimo",
          "descontoAcumulacaoEc103",
          "descontoAdmAcumulacaoEc103",
          "beneficioPagoLimitado",
          "outroDescontoLimitado",
          "diferencaLimitada",
          "beneficioPagoNaoLimitado",
          "outroDescontoNaoLimitado",
          "diferencaTotal"
        ],
        "additionalProperties": false
      },
      "TotaisTabelaDiferencasApi": {
        "type": "object",
        "properties": {
          "beneficioDevido": {
            "type": "number"
          },
          "acrescimo": {
            "type": "number"
          },
          "descontoAcumulacaoEc103": {
            "type": "number"
          },
          "descontoAdmAcumulacaoEc103": {
            "type": "number"
          },
          "beneficioPagoLimitado": {
            "type": "number"
          },
          "outroDescontoLimitado": {
            "type": "number"
          },
          "diferencaLimitada": {
            "type": "number"
          },
          "beneficioPagoNaoLimitado": {
            "type": "number"
          },
          "outroDescontoNaoLimitado": {
            "type": "number"
          },
          "diferencaTotal": {
            "type": "number"
          }
        },
        "required": [
          "beneficioDevido",
          "acrescimo",
          "descontoAcumulacaoEc103",
          "descontoAdmAcumulacaoEc103",
          "beneficioPagoLimitado",
          "outroDescontoLimitado",
          "diferencaLimitada",
          "beneficioPagoNaoLimitado",
          "outroDescontoNaoLimitado",
          "diferencaTotal"
        ],
        "additionalProperties": false
      },
      "DadosRraApi": {
        "type": "object",
        "properties": {
          "mesesAnteriores": {
            "type": "number"
          },
          "totalAnteriores": {
            "type": "number"
          },
          "mesesCorrente": {
            "type": "number"
          },
          "totalCorrente": {
            "type": "number"
          }
        },
        "required": [
          "mesesAnteriores",
          "totalAnteriores",
          "mesesCorrente",
          "totalCorrente"
        ],
        "additionalProperties": false
      },
      "ResultadoHonorariosApi": {
        "type": "object",
        "properties": {
          "faixas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FaixaHonorariosApi"
            }
          },
          "totalFaixas": {
            "type": "number"
          },
          "base": {
            "type": "number"
          },
          "baseOutrosDebitos": {
            "$ref": "#/components/schemas/ResultadoCondenatoriaGeralApi"
          },
          "baseCondenacaoPrincipal": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "percentual": {
            "type": "number"
          },
          "limite": {
            "type": "number"
          },
          "salarioMinimo": {
            "type": "number"
          },
          "valorDevidoNaoLimitado": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "valorDevido": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "tabelaAtualizacaoBase": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaAtualizacaoApi"
            }
          },
          "totaisTabelaAtualizacaoBase": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "totaisTabelaAtualizacaoBaseCondenacao": {
            "$ref": "#/components/schemas/ValorDevidoApi",
            "description": "Emitido hoje pela apuração sobre o valor da condenação, embora `ResultadoHonorarios` não o declare. Declarado aqui para que o contrato continue o mesmo — foi justamente esse tipo de campo não declarado que tornava a resposta imprevisível."
          },
          "competenciasSemReducaoValorNominalBase": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndicesAtualizacaoBase": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedasAtualizacaoBase": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasJurosAtualizacaoBase": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113AtualizacaoBase": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "atualizacaoResultadoFaixas": {
            "$ref": "#/components/schemas/LinhaAtualizacaoApi"
          },
          "competenciasSemReducaoValorNominalFaixas": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndicesResultadoFaixas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedasResultadoFaixas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasJurosResultadoFaixas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113ResultadoFaixas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "baseSemDeducoes": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "baseAposDeducaoAlcada": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "baseAposAcordo": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "tabelaDiferencas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaDiferencasApi"
            }
          },
          "totaisTabelaDiferencas": {
            "$ref": "#/components/schemas/TotaisTabelaDiferencasApi"
          }
        },
        "required": [
          "base",
          "valorDevidoNaoLimitado",
          "valorDevido"
        ],
        "additionalProperties": false
      },
      "FaixaHonorariosApi": {
        "type": "object",
        "properties": {
          "descricao": {
            "type": "string"
          },
          "limiteInferior": {
            "type": "number"
          },
          "limiteSuperior": {
            "type": "number"
          },
          "base": {
            "type": "number"
          },
          "percentual": {
            "type": "number"
          },
          "valorDevido": {
            "type": "number"
          }
        },
        "required": [
          "descricao",
          "limiteInferior",
          "limiteSuperior",
          "base",
          "percentual",
          "valorDevido"
        ],
        "additionalProperties": false
      },
      "ResultadoCondenatoriaGeralApi": {
        "type": "object",
        "properties": {
          "valorDevido": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "tabelaAtualizacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaAtualizacaoApi"
            }
          },
          "competenciasSemReducaoValorNominal": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndices": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasJuros": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          }
        },
        "required": [
          "valorDevido",
          "tabelaAtualizacao",
          "competenciasSemReducaoValorNominal",
          "notasIndices",
          "notasMoedas",
          "notasJuros",
          "notasSelicEc113"
        ],
        "additionalProperties": false
      },
      "ResultadoMultaApi": {
        "type": "object",
        "properties": {
          "base": {
            "type": "number"
          },
          "percentual": {
            "type": "number"
          },
          "limite": {
            "type": "number"
          },
          "valorDevidoNaoLimitado": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "valorDevido": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "tabelaAtualizacao": {
            "$ref": "#/components/schemas/LinhaAtualizacaoApi"
          },
          "competenciasSemReducaoValorNominal": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndices": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "baseOutrosDebitos": {
            "$ref": "#/components/schemas/ResultadoCondenatoriaGeralApi"
          }
        },
        "required": [
          "base",
          "valorDevidoNaoLimitado",
          "valorDevido"
        ],
        "additionalProperties": false
      },
      "ResultadoBeneficioApi": {
        "type": "object",
        "properties": {
          "beneficio": {
            "$ref": "#/components/schemas/BeneficioApuradoApi"
          },
          "evolucao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaEvolucaoBeneficioApi"
            }
          },
          "tabelaAcumulacaoEc103": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaAcumulacaoEc103Api"
            }
          },
          "tabelaAcumulacaoAdmEc103": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaAcumulacaoEc103Api"
            }
          }
        },
        "required": [
          "beneficio",
          "evolucao"
        ],
        "additionalProperties": false
      },
      "BeneficioApuradoApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "dib": {
            "type": "string",
            "format": "date-time"
          },
          "rmi": {
            "type": "number"
          },
          "inicioEvolucao": {
            "type": "string",
            "format": "date-time"
          },
          "terminoEvolucao": {
            "type": "string",
            "format": "date-time"
          },
          "inicioEfeitosFinanceiros": {
            "type": "string",
            "format": "date-time"
          },
          "valorParaEvolucao": {
            "type": "number"
          },
          "equivalenciaSalarial": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "dib",
          "rmi",
          "inicioEvolucao",
          "terminoEvolucao",
          "inicioEfeitosFinanceiros",
          "valorParaEvolucao"
        ],
        "additionalProperties": false,
        "description": "O benefício apurado, sem ecoar a entrada.\n\nO resultado devolvia o `BeneficioProps` inteiro que o cliente havia enviado, acrescido dos campos apurados — inclusive a cadeia entre originário e derivado. Quem chama já tem a entrada; o que não tem são estes campos. A correlação com o benefício enviado é feita pelo `id`."
      },
      "LinhaEvolucaoBeneficioApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "data": {
            "type": "string",
            "format": "date-time"
          },
          "dataTermino": {
            "type": "string",
            "format": "date-time"
          },
          "valorAnterior": {
            "type": "number"
          },
          "indice": {
            "type": "number"
          },
          "aplicouIndiceReposicao": {
            "type": "boolean"
          },
          "baseReajuste": {
            "type": "number"
          },
          "valorAtualIntegral": {
            "type": "number"
          },
          "coeficiente": {
            "type": "number"
          },
          "valorComCoeficiente": {
            "type": "number"
          },
          "rateio": {
            "type": "number"
          },
          "valorComRateio": {
            "type": "number"
          },
          "proporcaoRenda": {
            "type": "number"
          },
          "valorComProporcao": {
            "type": "number"
          },
          "adicional25PorCentoIntegral": {
            "type": "number"
          },
          "adicional25PorCento": {
            "type": "number"
          },
          "valorFinal": {
            "type": "number"
          },
          "rendaComAdicional": {
            "type": "number"
          },
          "rendaParaAcumulacao": {
            "type": "number"
          },
          "computouAbono": {
            "type": "boolean"
          },
          "abono": {
            "type": "number"
          },
          "proporcaoAbono": {
            "type": "number"
          },
          "adiantamentoAbono": {
            "type": "boolean"
          },
          "piso": {
            "type": "number"
          },
          "teto": {
            "type": "number"
          }
        },
        "required": [
          "competencia",
          "data",
          "valorAnterior",
          "baseReajuste",
          "valorAtualIntegral",
          "coeficiente",
          "valorComCoeficiente",
          "rateio",
          "valorComRateio",
          "proporcaoRenda",
          "valorComProporcao",
          "adicional25PorCentoIntegral",
          "adicional25PorCento",
          "valorFinal",
          "rendaComAdicional",
          "rendaParaAcumulacao",
          "computouAbono",
          "piso",
          "teto"
        ],
        "additionalProperties": false
      },
      "LinhaAcumulacaoEc103Api": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "beneficioAnalisado": {
            "type": "number"
          },
          "beneficioMaisVantajoso": {
            "type": "number"
          },
          "piso": {
            "type": "number"
          },
          "faixa60": {
            "type": "number"
          },
          "faixa40": {
            "type": "number"
          },
          "faixa20": {
            "type": "number"
          },
          "faixa10": {
            "type": "number"
          },
          "menosVantajosoDevido": {
            "type": "number"
          },
          "deducao": {
            "type": "number"
          },
          "deducaoAbono": {
            "type": "number"
          }
        },
        "required": [
          "competencia",
          "beneficioAnalisado",
          "beneficioMaisVantajoso",
          "piso",
          "faixa60",
          "faixa40",
          "faixa20",
          "faixa10",
          "menosVantajosoDevido",
          "deducao"
        ],
        "additionalProperties": false
      },
      "PeriodoBeneficioVantajosoResultadoApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "dataInicial": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "dataFinal": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string"
              }
            ]
          },
          "observacao": {
            "type": "string"
          },
          "excluido": {
            "type": "boolean"
          },
          "proporcaoPrimeiroAbono": {
            "type": "number"
          },
          "proporcaoUltimoAbono": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "DadosAcrescimoResultadoApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "renda": {
            "type": "number"
          },
          "abono": {
            "type": "number"
          },
          "principal": {
            "type": "number"
          },
          "observacao": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "competencia",
          "renda",
          "abono",
          "principal",
          "observacao"
        ],
        "additionalProperties": false
      },
      "DadosDescontoApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "competencia": {
            "type": "string",
            "format": "date-time"
          },
          "hiscreRenda": {
            "type": "number"
          },
          "hiscreRendaModificado": {
            "type": "boolean"
          },
          "hiscreAbono": {
            "type": "number"
          },
          "hiscreAbonoModificado": {
            "type": "boolean"
          },
          "renda": {
            "type": "number"
          },
          "abono": {
            "type": "number"
          },
          "principal": {
            "type": "number"
          },
          "jurosDeMora": {
            "type": "number"
          },
          "selic": {
            "type": "number"
          },
          "observacao": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "competencia",
          "hiscreRenda",
          "hiscreRendaModificado",
          "hiscreAbono",
          "hiscreAbonoModificado",
          "renda",
          "abono",
          "principal",
          "jurosDeMora",
          "selic",
          "observacao"
        ],
        "additionalProperties": false
      },
      "DadosAlcadaApi": {
        "type": "object",
        "properties": {
          "valorAlcada": {
            "type": "number"
          },
          "vencidas": {
            "$ref": "#/components/schemas/VencidasAlcadaApi"
          },
          "vincendas": {
            "$ref": "#/components/schemas/VincendasAlcadaApi"
          },
          "deducao": {
            "$ref": "#/components/schemas/DeducaoAlcadaApi"
          }
        },
        "required": [
          "valorAlcada",
          "vencidas",
          "vincendas",
          "deducao"
        ],
        "additionalProperties": false
      },
      "VencidasAlcadaApi": {
        "type": "object",
        "properties": {
          "valorVencidas": {
            "$ref": "#/components/schemas/ValorDevidoApi"
          },
          "tabelaAtualizacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaAtualizacaoApi"
            }
          },
          "competenciasSemReducaoValorNominal": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndices": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "baseVincendas": {
            "type": "number"
          },
          "tabelaDiferencas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaDiferencasApi"
            }
          },
          "totaisTabelaDiferencas": {
            "$ref": "#/components/schemas/TotaisTabelaDiferencasApi"
          },
          "beneficiosDevidos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultadoBeneficioApi"
            }
          },
          "acrescimos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosAcrescimoResultadoApi"
            }
          },
          "beneficiosPagos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultadoBeneficioApi"
            }
          },
          "periodosBeneficioVantajoso": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoBeneficioVantajosoResultadoApi"
            }
          },
          "outrosDescontosSemLimitacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosDescontoApi"
            }
          },
          "outrosDescontosComLimitacao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosDescontoApi"
            }
          },
          "tabelaBaseVincendas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaDiferencasApi"
            }
          }
        },
        "required": [
          "valorVencidas",
          "tabelaAtualizacao",
          "competenciasSemReducaoValorNominal",
          "notasIndices",
          "notasMoedas",
          "notasSelicEc113",
          "baseVincendas",
          "tabelaDiferencas",
          "totaisTabelaDiferencas",
          "beneficiosDevidos",
          "acrescimos",
          "beneficiosPagos",
          "periodosBeneficioVantajoso",
          "outrosDescontosSemLimitacao",
          "outrosDescontosComLimitacao",
          "tabelaBaseVincendas"
        ],
        "additionalProperties": false
      },
      "VincendasAlcadaApi": {
        "type": "object",
        "properties": {
          "baseVincendas": {
            "type": "number"
          },
          "proporcaoPrimeira": {
            "type": "number"
          },
          "valorPrimeira": {
            "type": "number"
          },
          "quantidadeDemais": {
            "type": "number"
          },
          "valorDemais": {
            "type": "number"
          },
          "valorVincendas": {
            "type": "number"
          },
          "competenciaFinalAlcada": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "baseVincendas",
          "proporcaoPrimeira",
          "valorPrimeira",
          "quantidadeDemais",
          "valorDemais",
          "valorVincendas",
          "competenciaFinalAlcada"
        ],
        "additionalProperties": false
      },
      "DeducaoAlcadaApi": {
        "type": "object",
        "properties": {
          "limite": {
            "type": "number"
          },
          "fatorDeducaoAlcada": {
            "type": "number"
          },
          "deducaoSemAtualizacao": {
            "type": "number"
          },
          "deducaoComAtualizacao": {
            "$ref": "#/components/schemas/LinhaAtualizacaoApi"
          },
          "competenciasSemReducaoValorNominal": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notasIndices": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasMoedas": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasJuros": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          },
          "notasSelicEc113": {
            "$ref": "#/components/schemas/NotasCriteriosApi"
          }
        },
        "required": [
          "limite"
        ],
        "additionalProperties": false
      },
      "ValorCausaApi": {
        "type": "object",
        "properties": {
          "situacao": {
            "type": "string",
            "enum": [
              "abaixo",
              "igual",
              "acima",
              "indisponivel"
            ],
            "description": "`abaixo`, `igual` ou `acima` comparam o valor da causa com o limite. `indisponivel` significa que não houve o que comparar — veja `motivoNaoApurada` para distinguir os casos."
          },
          "valor": {
            "type": "number",
            "description": "O valor da causa apurado. Ausente quando `situacao` é `indisponivel`."
          },
          "limite": {
            "type": "number",
            "description": "Sessenta salários mínimos na data do protocolo. Ausente quando `situacao` é `indisponivel`."
          },
          "excedente": {
            "type": "number",
            "description": "Quanto o valor da causa passa do limite; zero quando não passa."
          },
          "motivoNaoApurada": {
            "type": "string",
            "description": "Presente quando o motor não pôde apurar o valor da causa — hoje, quando os benefícios devidos só começam depois do protocolo. Sem ele, `indisponivel` significa ausência do limite de alçada."
          }
        },
        "required": [
          "situacao"
        ],
        "additionalProperties": false,
        "description": "Contrato de saída da apuração do valor da causa: parcelas vencidas até o ajuizamento, atualizadas, mais doze vincendas (CPC, art. 292, §§ 1º e 2º), comparado ao limite de alçada dos Juizados Especiais Federais — sessenta salários mínimos na data do protocolo.\n\nDeclarado por conta própria, e não como apelido de `ResumoAlcadaInformativa`, pela mesma razão que `ResultadoCalculoAtrasadosApi`: enquanto fosse apelido, refatoração interna do domínio viraria mudança silenciosa da API pública."
      },
      "CalculoValorCausaApi": {
        "type": "object",
        "properties": {
          "opcoesCalculo": {
            "$ref": "#/components/schemas/OpcoesCalculoLiquidacaoApi"
          },
          "beneficiosDevidos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosBeneficioApi"
            }
          },
          "beneficiosPagos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DadosBeneficioApi"
            }
          },
          "periodosBeneficioVantajoso": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoBeneficioVantajosoApi"
            }
          },
          "descontos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DescontosApi"
            }
          },
          "acrescimos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AcrescimoApi"
            }
          },
          "outroDebitos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DebitosEmGeralApi"
            }
          },
          "honorarios": {
            "$ref": "#/components/schemas/HonorariosApi"
          },
          "multa": {
            "$ref": "#/components/schemas/MultaApi"
          },
          "dadosProcesso": {
            "type": "object",
            "properties": {
              "numero": {
                "type": "string",
                "examples": [
                  "1234567-88.1900.0.00.0000"
                ],
                "description": "Número do processo.",
                "pattern": "^\\d{7}-\\d{2}\\.\\d{4}\\.\\d\\.\\d{2}\\.\\d{4}$"
              },
              "protocolo": {
                "type": "string",
                "examples": [
                  "2018-02-10"
                ],
                "description": "Data do protocolo/ajuizamento.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "transito": {
                "type": "string",
                "examples": [
                  "2024-02-17"
                ],
                "description": "Data do trânsito em julgado.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "valorCausa": {
                "type": "number",
                "examples": [
                  10000
                ],
                "description": "Valor da causa."
              }
            },
            "required": [
              "numero",
              "protocolo"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "acrescimos",
          "beneficiosDevidos",
          "beneficiosPagos",
          "dadosProcesso",
          "descontos",
          "honorarios",
          "multa",
          "opcoesCalculo",
          "outroDebitos",
          "periodosBeneficioVantajoso"
        ],
        "additionalProperties": false,
        "description": "Dados da apuração do valor da causa: os de um cálculo de atrasados, sem a citação. O\nvalor da causa é apurado na data do protocolo, e a citação, sempre posterior, não é parâmetro dele;\nse vier, é ignorada."
      },
      "ResultadoLeituraPrevjudApi": {
        "$ref": "#/components/schemas/DadosPrevjud"
      },
      "GrupoResultadoCalculoTempoApi": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "tipo": {
              "$ref": "#/components/schemas/TipoSegurado",
              "examples": [
                "COMUM"
              ],
              "description": "Tipo de segurado."
            },
            "especie": {
              "$ref": "#/components/schemas/EspecieBeneficio"
            },
            "resultado": {
              "$ref": "#/components/schemas/ResultadoCalculoTempoApi"
            }
          },
          "required": [
            "tipo",
            "especie",
            "resultado"
          ],
          "additionalProperties": false
        }
      },
      "DemonstrativoPdfApi": {
        "type": "object",
        "properties": {
          "conteudoBase64": {
            "type": "string",
            "description": "Conteúdo do PDF codificado em base64."
          },
          "nomeArquivo": {
            "type": "string",
            "examples": [
              "Aposentadoria - João da Silva (Demonstrativo DER).pdf"
            ],
            "description": "Nome de arquivo sugerido, com a extensão `.pdf`."
          },
          "paginas": {
            "type": "number",
            "examples": [
              3
            ],
            "description": "Quantidade de páginas do PDF."
          },
          "tamanhoBytes": {
            "type": "number",
            "examples": [
              102400
            ],
            "description": "Tamanho do PDF decodificado, em bytes."
          }
        },
        "required": [
          "conteudoBase64",
          "nomeArquivo",
          "paginas",
          "tamanhoBytes"
        ],
        "additionalProperties": false,
        "description": "Demonstrativo de tempo em PDF devolvido no ENVELOPE das rotas de cálculo de tempo quando `?demonstrativo=true` (PG37/R9a.4). O PDF sempre embute o permalink do cálculo no card de reprodução; a flag irmã `permalink` decide apenas se a URL também sai como dado separado no envelope."
      },
      "CalculoRmiApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração (DIB).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da data de apuração (Ex. DII, óbito), para fins aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "marcoTemporal": {
            "$ref": "#/components/schemas/MarcoTemporalRmi",
            "examples": [
              "NA_DIB"
            ],
            "description": "Marco temporal do cálculo RMI. Padrão: NA_DIB."
          },
          "aplicarIrsmFev94": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Aplica IRSM Fev/94."
          },
          "criterioSalarioMaternidade": {
            "$ref": "#/components/schemas/CriterioSalarioMaternidade",
            "examples": [
              "MEDIA_SIMPLES_DOZE_ULTIMOS"
            ],
            "description": "Critério de apuração do salário-maternidade. Padrão: UM_DOZE_AVOS."
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "periodosPcd": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoPcdApi"
            }
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dataApuracao",
          "dadosSegurado",
          "opcoesContagem",
          "periodosContribuicao"
        ],
        "additionalProperties": false
      },
      "MarcoTemporalRmi": {
        "$ref": "#/components/schemas/TipoCalculoRmi"
      },
      "TipoCalculoRmi": {
        "type": "string",
        "enum": [
          "NA_DIB",
          "DIREITO_ADQUIRIDO_ANTES_EC_20",
          "DIREITO_ADQUIRIDO_ANTES_EC_103",
          "NA_MUDANCA_DAS_REGRAS_PROGRESSIVAS",
          "NA_LEI_9876",
          "NA_REGRA_DE_PONTOS_PARA_FATOR",
          "NO_RESTABELECIMENTO_DO_DIVISOR_MINIMO",
          "NA_MUDANCA_DAS_REGRAS_PROGRESSIVAS_SEM_DIVISOR_MINIMO"
        ]
      },
      "CriterioSalarioMaternidade": {
        "type": "string",
        "enum": [
          "UM_DOZE_AVOS",
          "MEDIA_SIMPLES_DOZE_ULTIMOS"
        ]
      },
      "CalculoRmiPrevjudApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração (DIB).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da DER (Ex. DII, óbito), para fins aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "marcoTemporal": {
            "$ref": "#/components/schemas/MarcoTemporalRmi",
            "examples": [
              "NA_DIB"
            ],
            "description": "Marco temporal do cálculo RMI. Padrão: NA_DIB."
          },
          "aplicarIrsmFev94": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Aplica IRSM Fev/94."
          },
          "criterioSalarioMaternidade": {
            "$ref": "#/components/schemas/CriterioSalarioMaternidade",
            "examples": [
              "MEDIA_SIMPLES_DOZE_ULTIMOS"
            ],
            "description": "Critério de apuração do salário-maternidade. Padrão: UM_DOZE_AVOS."
          },
          "dadosPrevjud": {
            "$ref": "#/components/schemas/DadosPrevjud",
            "description": "Dados estruturados de PrevJud, no mesmo formato devolvido por `/rgps/api/v1/calculos-tempo/prevjud/ler`."
          },
          "opcoesFiltroPrevjud": {
            "$ref": "#/components/schemas/OpcoesFiltroPrevjud",
            "description": "Opções de importação do PrevJud equivalentes às usadas pela interface web."
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "periodosPcd": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoPcdApi"
            }
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dataApuracao",
          "dadosPrevjud",
          "dadosSegurado",
          "opcoesContagem"
        ],
        "additionalProperties": false
      },
      "CalculoRmiDesvinculadaApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração (DIB).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da DER (Ex. DII, óbito), para fins aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "aplicarIrsmFev94": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Aplica IRSM Fev/94."
          },
          "criterioSalarioMaternidade": {
            "$ref": "#/components/schemas/CriterioSalarioMaternidade",
            "examples": [
              "MEDIA_SIMPLES_DOZE_ULTIMOS"
            ],
            "description": "Critério de apuração do salário-maternidade. Padrão: UM_DOZE_AVOS."
          },
          "coeficiente": {
            "type": "number",
            "examples": [
              1
            ],
            "description": "Coeficiente informado (RMI desvinculada)."
          },
          "tempoAnos": {
            "type": "number",
            "examples": [
              36
            ],
            "description": "Anos de tempo informado (RMI desvinculada)."
          },
          "tempoMeses": {
            "type": "number",
            "examples": [
              10
            ],
            "description": "Meses de tempo informado (RMI desvinculada)."
          },
          "tempoDias": {
            "type": "number",
            "examples": [
              5
            ],
            "description": "Dias de tempo informado (RMI desvinculada)."
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dataApuracao",
          "coeficiente",
          "tempoAnos",
          "tempoMeses",
          "tempoDias",
          "dadosSegurado",
          "opcoesContagem"
        ],
        "additionalProperties": false
      },
      "CalculoRmiDesvinculadaPrevjudApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração (DIB).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da DER (Ex. DII, óbito), para fins aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "aplicarIrsmFev94": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Aplica IRSM Fev/94."
          },
          "criterioSalarioMaternidade": {
            "$ref": "#/components/schemas/CriterioSalarioMaternidade",
            "examples": [
              "MEDIA_SIMPLES_DOZE_ULTIMOS"
            ],
            "description": "Critério de apuração do salário-maternidade. Padrão: UM_DOZE_AVOS."
          },
          "coeficiente": {
            "type": "number",
            "examples": [
              1
            ],
            "description": "Coeficiente informado (RMI desvinculada)."
          },
          "tempoAnos": {
            "type": "number",
            "examples": [
              36
            ],
            "description": "Anos de tempo informado (RMI desvinculada)."
          },
          "tempoMeses": {
            "type": "number",
            "examples": [
              10
            ],
            "description": "Meses de tempo informado (RMI desvinculada)."
          },
          "tempoDias": {
            "type": "number",
            "examples": [
              5
            ],
            "description": "Dias de tempo informado (RMI desvinculada)."
          },
          "dadosPrevjud": {
            "$ref": "#/components/schemas/DadosPrevjud",
            "description": "Dados estruturados de PrevJud, no mesmo formato devolvido por `/rgps/api/v1/calculos-tempo/prevjud/ler`."
          },
          "opcoesFiltroPrevjud": {
            "$ref": "#/components/schemas/OpcoesFiltroPrevjud",
            "description": "Opções de importação do PrevJud equivalentes às usadas pela interface web."
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          }
        },
        "required": [
          "dataApuracao",
          "coeficiente",
          "tempoAnos",
          "tempoMeses",
          "tempoDias",
          "dadosPrevjud",
          "dadosSegurado",
          "opcoesContagem"
        ],
        "additionalProperties": false
      },
      "CalculoRmiPorFundamentoApi": {
        "type": "object",
        "properties": {
          "dataApuracao": {
            "type": "string",
            "examples": [
              "2021-01-01"
            ],
            "description": "Data de apuração (DIB).",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "der": {
            "type": "string",
            "examples": [
              "2021-05-01"
            ],
            "description": "Data de entrada do requerimento.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "fatoGerador": {
            "type": "string",
            "examples": [
              "01/01/2020"
            ],
            "description": "Data do fato gerador, se diferente da data de apuração (Ex. DII, óbito), para fins aplicação das regras de RMI então vigentes.",
            "pattern": "^\\d{2}/\\d{2}/\\d{4}$"
          },
          "marcoTemporal": {
            "$ref": "#/components/schemas/MarcoTemporalRmi",
            "examples": [
              "NA_DIB"
            ],
            "description": "Marco temporal do cálculo RMI. Padrão: NA_DIB."
          },
          "aplicarIrsmFev94": {
            "type": "boolean",
            "examples": [
              true
            ],
            "description": "Aplica IRSM Fev/94."
          },
          "criterioSalarioMaternidade": {
            "$ref": "#/components/schemas/CriterioSalarioMaternidade",
            "examples": [
              "MEDIA_SIMPLES_DOZE_ULTIMOS"
            ],
            "description": "Critério de apuração do salário-maternidade. Padrão: UM_DOZE_AVOS."
          },
          "dadosSegurado": {
            "$ref": "#/components/schemas/DadosSeguradoApi"
          },
          "opcoesContagem": {
            "$ref": "#/components/schemas/OpcoesContagemApi"
          },
          "periodosContribuicao": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoContribuicaoApi"
            }
          },
          "periodosPcd": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PeriodoPcdApi"
            }
          },
          "salarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalarioApi"
            }
          },
          "fundamento": {
            "$ref": "#/components/schemas/FundamentoApi"
          }
        },
        "required": [
          "dadosSegurado",
          "dataApuracao",
          "fundamento",
          "opcoesContagem",
          "periodosContribuicao"
        ],
        "additionalProperties": false
      },
      "FundamentoApi": {
        "$ref": "#/components/schemas/Fundamento",
        "description": "Nome do schema no OpenAPI; desde que o valor de `Fundamento` é o próprio nome, é o mesmo tipo."
      },
      "FundamentoOpcaoApi": {
        "type": "object",
        "properties": {
          "valor": {
            "$ref": "#/components/schemas/Fundamento",
            "description": "Chave aceita em `fundamento` do cálculo de RMI por fundamento."
          },
          "rotulo": {
            "type": "string",
            "description": "Citação legal, legível."
          }
        },
        "required": [
          "valor",
          "rotulo"
        ],
        "additionalProperties": false
      },
      "MarcoTemporalOpcaoApi": {
        "type": "object",
        "properties": {
          "valor": {
            "$ref": "#/components/schemas/MarcoTemporalRmi",
            "description": "Chave aceita em `marcoTemporal` nos endpoints de cálculo de RMI."
          },
          "rotulo": {
            "type": "string",
            "description": "Descrição legível do marco."
          }
        },
        "required": [
          "valor",
          "rotulo"
        ],
        "additionalProperties": false
      },
      "ResultadoCalculoRmiApi": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ResultadoBlocoCalculoRmiComConclusaoApi"
        }
      },
      "ResultadoBlocoCalculoRmiComConclusaoApi": {
        "type": "object",
        "properties": {
          "marcoTemporal": {
            "$ref": "#/components/schemas/MarcoTemporalRmi",
            "examples": [
              "NA_DIB"
            ],
            "description": "Marco temporal do cálculo RMI. Padrão: NA_DIB."
          },
          "maiorRmi": {
            "type": "number",
            "description": "Valor da maior RMI apurada entre os benefícios analisados."
          },
          "moeda": {
            "$ref": "#/components/schemas/DadosMoeda",
            "description": "Moeda utilizada no cálculo da RMI."
          },
          "linhasDescartes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultadoAposDescarteApi"
            },
            "description": "Resultados parciais apurados durante o cálculo da RMI."
          },
          "beneficiosMaisVantajosos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficioAnalisadoComRmiApi"
            },
            "description": "Benefícios mais vantajosos após o cálculo da RMI."
          },
          "conclusao": {
            "$ref": "#/components/schemas/ConclusaoCalculoRmiApi",
            "description": "Estado de conclusão deste bloco de cálculo."
          }
        },
        "required": [
          "beneficiosMaisVantajosos",
          "conclusao",
          "linhasDescartes",
          "maiorRmi",
          "moeda"
        ],
        "additionalProperties": false
      },
      "DadosMoeda": {
        "type": "object",
        "properties": {
          "inicio": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "simbolo": {
            "type": "string"
          }
        },
        "required": [
          "inicio",
          "nome",
          "simbolo"
        ],
        "additionalProperties": false
      },
      "ResultadoAposDescarteApi": {
        "type": "object",
        "properties": {
          "descartesAnteriores": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "examples": [
              "2021-01"
            ],
            "description": "Lista de competências descartadas anteriormente.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "competenciaDescartada": {
            "type": "string",
            "examples": [
              "2021-01"
            ],
            "description": "Competência descartada.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "salarioDescartado": {
            "type": "number",
            "description": "Salário descartado."
          },
          "beneficios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficioAnalisadoComRmiApi"
            },
            "description": "Lista de benefícios analisados após o descarte."
          },
          "diferencas": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "tempo": {
                  "type": "number"
                },
                "carencia": {
                  "type": "number"
                }
              },
              "additionalProperties": false
            },
            "description": "Diferenças de tempo e carência em relação ao cálculo anterior ao descarte, agrupadas por benefício."
          },
          "maiorRmi": {
            "type": "number",
            "description": "Maior RMI entre os benefícios analisados."
          },
          "moeda": {
            "$ref": "#/components/schemas/DadosMoeda",
            "description": "Moeda utilizada no cálculo do RMI."
          }
        },
        "required": [
          "descartesAnteriores",
          "beneficios",
          "diferencas",
          "maiorRmi",
          "moeda"
        ],
        "additionalProperties": false
      },
      "BeneficioAnalisadoComRmiApi": {
        "type": "object",
        "properties": {
          "especie": {
            "$ref": "#/components/schemas/EspecieBeneficio"
          },
          "descricao": {
            "type": "string"
          },
          "chaveFundamento": {
            "$ref": "#/components/schemas/Fundamento",
            "examples": [
              "EC_103_ART_20"
            ],
            "description": "Chave do fundamento legal, a mesma aceita em `fundamento` do cálculo de RMI por fundamento."
          },
          "fundamento": {
            "type": "string",
            "examples": [
              "EC 103, art. 20"
            ],
            "description": "Citação legal do fundamento, legível."
          },
          "inicioVigencia": {
            "type": "string"
          },
          "terminoVigencia": {
            "type": "string"
          },
          "dadosApuracao": {
            "$ref": "#/components/schemas/DadosApuracaoApi"
          },
          "alerta": {
            "type": "string"
          },
          "dadosRmi": {
            "$ref": "#/components/schemas/DadosRmiApi"
          },
          "descartes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaDescarteApi"
            }
          }
        },
        "required": [
          "chaveFundamento",
          "dadosApuracao",
          "dadosRmi",
          "descricao",
          "especie",
          "fundamento",
          "inicioVigencia"
        ],
        "additionalProperties": false
      },
      "DadosRmiApi": {
        "type": "object",
        "properties": {
          "competenciaInicial": {
            "type": "string",
            "examples": [
              "2021-01"
            ],
            "description": "Competência inicial do PBC.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "competenciaFinal": {
            "type": "string",
            "examples": [
              "2021-12"
            ],
            "description": "Competência final do PBC.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "soma": {
            "type": "number",
            "description": "Soma dos salários considerados no cálculo da RMI."
          },
          "divisor": {
            "type": "number",
            "description": "Divisor utilizado no cálculo da RMI."
          },
          "divisorMinimo": {
            "type": "number",
            "description": "Divisor mínimo utilizado no cálculo da RMI."
          },
          "totalCompetenciasConsideradas": {
            "type": "number",
            "description": "Total de competências consideradas no cálculo da RMI."
          },
          "media": {
            "type": "number",
            "description": "Média dos salários considerados no cálculo da RMI."
          },
          "mediaUltimos12": {
            "type": "number",
            "description": "Média dos últimos 12 salários considerados no cálculo da RMI."
          },
          "fatorPrevidenciario": {
            "type": "number",
            "description": "Fator previdenciário utilizado no cálculo da RMI."
          },
          "aplicouFator": {
            "type": "boolean",
            "description": "Indica se o fator previdenciário foi aplicado no cálculo da RMI."
          },
          "pontos": {
            "type": "number",
            "description": "Pontos utilizados no cálculo da RMI."
          },
          "indiceReposicao": {
            "type": "number",
            "description": "Índice de reposição utilizado no cálculo da RMI."
          },
          "salarioBeneficio": {
            "type": "number",
            "description": "Salário benefício utilizado no cálculo da RMI."
          },
          "piso": {
            "type": "number",
            "description": "Piso vigente na data de apuração da RMI."
          },
          "teto": {
            "type": "number",
            "description": "Teto vigente na data de apuração da RMI."
          },
          "pbc": {
            "$ref": "#/components/schemas/PbcApi",
            "description": "PBC processado utilizado no cálculo da RMI."
          },
          "coeficiente": {
            "type": "number",
            "description": "Coeficiente utilizado no cálculo do RMI."
          },
          "percentualPiso": {
            "type": "number",
            "description": "Percentual de redução do piso utilizado para evolução da RMI (Auxílio-acidente)."
          },
          "rmi": {
            "type": "number",
            "description": "RMI calculada."
          },
          "moeda": {
            "$ref": "#/components/schemas/DadosMoeda",
            "description": "Moeda utilizada no cálculo do RMI."
          },
          "rmiReajustada": {
            "type": "number",
            "description": "RMI reajustada."
          },
          "dadosReajuste": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaReajusteBeneficioApi"
            },
            "description": "Dados do reajuste do benefício."
          },
          "notasIndices": {
            "$ref": "#/components/schemas/Anotacoes",
            "description": "Notas dos critérios de índices utilizados no cálculo do RMI."
          },
          "notasMoedas": {
            "$ref": "#/components/schemas/Anotacoes",
            "description": "Notas sobre as moedas utilizadas no cálculo do RMI."
          }
        },
        "required": [
          "competenciaInicial",
          "competenciaFinal",
          "soma",
          "divisor",
          "totalCompetenciasConsideradas",
          "media",
          "indiceReposicao",
          "salarioBeneficio",
          "piso",
          "teto",
          "coeficiente",
          "rmi",
          "moeda",
          "rmiReajustada",
          "dadosReajuste",
          "notasIndices",
          "notasMoedas"
        ],
        "additionalProperties": false
      },
      "PbcApi": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/DadosSalarioPbcApi",
          "pattern": "^\\d{4}-\\d{2}$"
        }
      },
      "DadosSalarioPbcApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "examples": [
              "2021-01"
            ],
            "description": "Competência do salário.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "origem": {
            "$ref": "#/components/schemas/Origem",
            "description": "Origem do salário, indicando se é um salário informado pelo usuário ou um salário processado a partir de dados oficiais."
          },
          "piso": {
            "type": "number",
            "description": "Piso vigente na competência."
          },
          "teto": {
            "type": "number",
            "description": "Teto vigente na competência."
          },
          "abaixoDoMinimo": {
            "type": "boolean",
            "description": "Indica se o salário está abaixo do mínimo."
          },
          "acimaDoTeto": {
            "type": "boolean",
            "description": "Indica se o salário está acima do teto."
          },
          "acumulado": {
            "type": "number",
            "description": "Índice de atualização do salário."
          },
          "valor": {
            "type": "number",
            "description": "Valor atualizado do salário."
          },
          "dataRecolhimento": {
            "type": "string",
            "examples": [
              "2021-02-15"
            ],
            "description": "Data de recolhimento do salário.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "valido": {
            "type": "boolean",
            "description": "Indica se o salário é válido."
          },
          "excluido": {
            "type": "boolean",
            "description": "Indica se o salário foi excluído."
          },
          "consolidadoAnoCivil": {
            "type": "boolean",
            "description": "Indica o valor consolidado no ano civil para a competência."
          },
          "observacao": {
            "type": "string",
            "description": "Observações sobre o salário."
          },
          "indicadores": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicadores relacionados ao salário."
          }
        },
        "required": [
          "competencia",
          "origem",
          "piso",
          "teto",
          "abaixoDoMinimo",
          "acimaDoTeto",
          "acumulado",
          "valor",
          "valido",
          "excluido",
          "consolidadoAnoCivil"
        ],
        "additionalProperties": false
      },
      "LinhaReajusteBeneficioApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "examples": [
              "2021-01"
            ],
            "description": "Competência do reajuste.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "valorAnterior": {
            "type": "number",
            "description": "Valor do benefício antes do reajuste."
          },
          "indice": {
            "type": "number",
            "description": "Índice de reajuste aplicado na competência."
          },
          "aplicouIndiceReposicao": {
            "type": "boolean",
            "description": "Indica se o índice de reposição foi aplicado."
          },
          "piso": {
            "type": "number",
            "description": "Piso do benefício após reajuste."
          },
          "teto": {
            "type": "number",
            "description": "Teto do benefício após reajuste."
          },
          "valorFinal": {
            "type": "number",
            "description": "Valor final do benefício após reajuste."
          }
        },
        "required": [
          "competencia",
          "valorAnterior",
          "piso",
          "teto",
          "valorFinal"
        ],
        "additionalProperties": false
      },
      "Anotacoes": {
        "$ref": "#/components/schemas/NotasCriterios"
      },
      "NotasCriterios": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "criterio": {
              "type": "string"
            },
            "fundamento": {
              "type": "string"
            }
          },
          "required": [
            "criterio"
          ],
          "additionalProperties": false
        }
      },
      "LinhaDescarteApi": {
        "type": "object",
        "properties": {
          "competencia": {
            "type": "string",
            "examples": [
              "2021-01"
            ],
            "description": "Competência descartada.",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "tempo": {
            "type": "number",
            "description": "Tempo descartado em dias."
          },
          "carencia": {
            "type": "number",
            "description": "Carência descartada em meses."
          },
          "salario": {
            "type": "number",
            "description": "Salário descartado."
          },
          "rmi": {
            "type": "number",
            "description": "RMI após descarte."
          }
        },
        "additionalProperties": false
      },
      "ConclusaoCalculoRmiApi": {
        "type": "object",
        "properties": {
          "completo": {
            "type": "boolean",
            "description": "Indica se todas as iterações necessárias foram executadas."
          },
          "motivoInterrupcao": {
            "$ref": "#/components/schemas/MotivoInterrupcaoCalculoRmiApi",
            "description": "Motivo pelo qual o resultado ficou parcial. Ausente quando completo é true."
          },
          "limitesAtingidos": {
            "$ref": "#/components/schemas/LimitesAtingidosCalculoRmiApi",
            "description": "Limites que interromperam o cálculo. Ausente quando completo é true."
          }
        },
        "required": [
          "completo"
        ],
        "additionalProperties": false
      },
      "MotivoInterrupcaoCalculoRmiApi": {
        "type": "string",
        "const": "LIMITE_ITERACOES"
      },
      "LimitesAtingidosCalculoRmiApi": {
        "type": "object",
        "properties": {
          "numeroMaximoIteracoes": {
            "type": "number",
            "description": "Quantidade máxima de iterações de descarte permitida no cálculo."
          }
        },
        "required": [
          "numeroMaximoIteracoes"
        ],
        "additionalProperties": false
      },
      "ResultadoCalculoRmiDesvinculadaApi": {
        "$ref": "#/components/schemas/BeneficioAnalisadoComRmiApi"
      },
      "EventoStreamCalculoRmiApi": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "inicio",
              "bloco_iniciado",
              "fundamento_calculado",
              "bloco_finalizado",
              "fim",
              "erro"
            ]
          },
          "timestamp": {
            "type": "string"
          },
          "progress": {
            "type": "object",
            "properties": {
              "indiceBloco": {
                "type": "number"
              },
              "totalBlocosEstimado": {
                "type": "number"
              },
              "fundamentosProcessados": {
                "type": "number"
              },
              "fundamentosTotaisEstimados": {
                "type": "number"
              },
              "marcoTemporal": {
                "type": "string"
              },
              "fundamentoApi": {
                "type": "string"
              }
            },
            "required": [
              "indiceBloco",
              "totalBlocosEstimado",
              "fundamentosProcessados",
              "fundamentosTotaisEstimados"
            ],
            "additionalProperties": false
          },
          "payload": {
            "type": "object",
            "additionalProperties": {}
          },
          "conclusao": {
            "$ref": "#/components/schemas/ConclusaoCalculoRmiApi"
          }
        },
        "required": [
          "type",
          "timestamp",
          "progress"
        ],
        "additionalProperties": false
      },
      "JobRmiStatusApi": {
        "type": "string",
        "enum": [
          "pendente",
          "processando",
          "concluido",
          "erro",
          "cancelado"
        ]
      },
      "ProgressoJobRmiApi": {
        "type": "object",
        "properties": {
          "indiceBloco": {
            "type": "number"
          },
          "totalBlocosEstimado": {
            "type": "number"
          },
          "fundamentosProcessados": {
            "type": "number"
          },
          "fundamentosTotaisEstimados": {
            "type": "number"
          },
          "marcoTemporal": {
            "type": "string"
          },
          "fundamentoApi": {
            "type": "string"
          }
        },
        "required": [
          "indiceBloco",
          "totalBlocosEstimado",
          "fundamentosProcessados",
          "fundamentosTotaisEstimados"
        ],
        "additionalProperties": false
      },
      "ErroJobRmiApi": {
        "type": "object",
        "properties": {
          "mensagem": {
            "type": "string"
          }
        },
        "required": [
          "mensagem"
        ],
        "additionalProperties": false
      },
      "RespostaCriacaoJobRmiApi": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/JobRmiStatusApi"
          }
        },
        "required": [
          "jobId",
          "status"
        ],
        "additionalProperties": false
      },
      "RespostaJobRmiApi": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/JobRmiStatusApi"
          },
          "criadoEm": {
            "type": "string"
          },
          "iniciadoEm": {
            "type": "string"
          },
          "finalizadoEm": {
            "type": "string"
          },
          "progresso": {
            "$ref": "#/components/schemas/ProgressoJobRmiApi"
          },
          "erro": {
            "$ref": "#/components/schemas/ErroJobRmiApi"
          },
          "resultado": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultadoBlocoCalculoRmiComConclusaoApi"
            }
          },
          "conclusao": {
            "$ref": "#/components/schemas/ConclusaoCalculoRmiApi"
          }
        },
        "required": [
          "id",
          "status",
          "criadoEm",
          "progresso"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    }
  }
}
