Cargas por patriarca
Os endpoints abaixo são usados quando a autorização de sistema permite editar todo um patriarca (por exemplo, todo o Governo do ES).
Rota base da API v3:
/v3/cargas/patriarcas
Headers comuns a todos os endpoints:
- Authorization: Bearer {access_token}
- Content-Type: application/json (para requisições com corpo)
Parâmetro de query comum aos endpoints de envio de carga (POST):
| Nome | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
dryRun | boolean | Não | false | Quando true, a carga é executada em modo de simulação: as validações e o cálculo de alterações são realizados, mas nada é persistido. O resultado pode ser consultado pelo relatório da carga. |
POST /v3/cargas/patriarcas/{patriarcaId}/organograma
Envia a estrutura completa de órgãos e unidades de um patriarca.
POST /v3/cargas/patriarcas/{patriarcaId}/organograma?dryRun=false
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
patriarcaId | GUID | Sim | Identificador do patriarca onde a carga será aplicada. |
Corpo (JSON)
O corpo da requisição deve seguir o modelo CargaOrganogramaEntrada, com:
- PatriarcaId (deve ser igual ao
patriarcaIdda rota) - Orgaos[] (cada um com suas Unidades[])
Resposta
- 201 Created com um Guid no corpo que identifica o pedido de carga.
- Em caso de erro de validação ou autorização, retorna erro 4xx com mensagem explicando o problema.
O Guid retornado pode ser usado para consultar o status:
- GET /v3/cargas/{cargaId}
POST /v3/cargas/patriarcas/{patriarcaId}/orgaos/{orgaoId}/organograma
Envia a estrutura de unidades de um órgão específico dentro de um patriarca autorizado, sem afetar os demais órgãos.
POST /v3/cargas/patriarcas/{patriarcaId}/orgaos/{orgaoId}/organograma?dryRun=false
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
patriarcaId | GUID | Sim | Identificador do patriarca onde a carga será aplicada. |
orgaoId | GUID | Sim | Identificador do órgão cuja subárvore está sendo enviada. |
Corpo (JSON)
O corpo segue o modelo CargaOrgaoAvulsoOrganogramaEntrada, com:
- RaizId
- Orgao (um
OrgaoEntradacom suas Unidades[])
Resposta
- 201 Created com um Guid identificando o pedido de carga.
- Erros de validação/autorização retornam 4xx.
POST /v3/cargas/patriarcas/{patriarcaId}/lotacoes
Envia a carga completa de lotações de um órgão específico dentro de um patriarca.
POST /v3/cargas/patriarcas/{patriarcaId}/lotacoes?dryRun=false
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
patriarcaId | GUID | Sim | Identificador do patriarca da autorização da carga. |
Corpo (JSON)
O corpo da requisição deve ser um objeto seguindo o modelo
CargaLotacaoEntrada
, contendo:
- PatriarcaId
- ChaveExternaOrgao
- OcupacaoServidor[], LotacoesServidor[], Gestores[]
- OcupacaoComissao[], Comissoes[], LotacoesComissao[]
A carga é sempre completa para aquele órgão.
Resposta
- 201 Created com um Guid identificando o pedido de carga.
- Erros de validação/autorização retornam 4xx.
O Guid retornado pode ser usado para consultar o status:
- GET /v3/cargas/{cargaId}
POST /v3/cargas/patriarcas/{patriarcaId}/lotacoes/pacote
Envia lotações de vários órgãos de uma vez, dentro de um mesmo patriarca.
POST /v3/cargas/patriarcas/{patriarcaId}/lotacoes/pacote?dryRun=false
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
patriarcaId | GUID | Sim | Identificador do patriarca da autorização da carga. |
Corpo (JSON)
O corpo é um array de objetos CargaLotacaoEntrada:
[
{
"PatriarcaId": "GUID-DO-PATRIARCA",
"ChaveExternaOrgao": "ORG-SESA",
"OcupacaoServidor": [ ... ],
"LotacoesServidor": [ ... ],
"Gestores": [ ... ],
"OcupacaoComissao": [ ... ],
"Comissoes": [ ... ],
"LotacoesComissao": [ ... ]
},
{
"PatriarcaId": "GUID-DO-PATRIARCA",
"ChaveExternaOrgao": "ORG-SEJUS",
"OcupacaoServidor": [ ... ],
"LotacoesServidor": [ ... ],
"Gestores": [ ... ],
"OcupacaoComissao": [ ... ],
"Comissoes": [ ... ],
"LotacoesComissao": [ ... ]
}
]
Regras importantes:
- Todos os itens do array devem referenciar o mesmo patriarca.
- Não pode haver órgãos repetidos (ChaveExternaOrgao) na mesma carga.
- Para cada órgão, o conteúdo é interpretado como carga completa.
Resposta
- 201 Created com um Guid identificando o pedido de carga (pacote único).
- Erros de validação/autorização retornam 4xx.
Quando há muitos órgãos dentro de um patriarca, este endpoint reduz o tempo total de atualização, evitando várias cargas sequenciais órgão a órgão.
POST /v3/cargas/patriarcas/{patriarcaId}/pacote-completo
Envia, em uma única chamada, o organograma completo do patriarca e as lotações de todos os seus órgãos.
POST /v3/cargas/patriarcas/{patriarcaId}/pacote-completo?dryRun=false
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
patriarcaId | GUID | Sim | Identificador do patriarca da autorização da carga. |
Corpo (JSON)
O corpo segue o modelo CargaCompletaPatriarca:
{
"Organograma": {
"PatriarcaId": "GUID-DO-PATRIARCA",
"Orgaos": [ ... ]
},
"Lotacoes": [
{
"PatriarcaId": "GUID-DO-PATRIARCA",
"ChaveExternaOrgao": "ORG-SESA",
...
}
]
}
Organograma: um objetoCargaOrganogramaEntrada.Lotacoes: um array deCargaLotacaoEntrada(um item por órgão, sem repetirChaveExternaOrgao).
Resposta
- 201 Created com um Guid identificando o pedido de carga (pacote único).
- Erros de validação/autorização retornam 4xx.
GET /v3/cargas/patriarcas/{patriarcaId}
Retorna a situação dos últimos pedidos de carga para um patriarca.
GET /v3/cargas/patriarcas/{patriarcaId}?limit=10
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
patriarcaId | GUID | Sim | Identificador do patriarca cuja fila será consultada. |
Parâmetros de query
| Nome | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
limit | inteiro | Não | 10 | Número de itens retornados na consulta. Entre 1 e 10. |
Resposta
- 200 OK com uma lista de objetos de status (
CargaViewModel) das cargas mais recentes daquele patriarca. Veja o formato em Consulta de status e relatório. - Erros de validação/autorização retornam 4xx.
Este endpoint é útil para monitorar as últimas cargas realizadas sem precisar guardar os Guid de cada pedido.
Para consultar uma carga específica, use:
- GET /v3/cargas/{cargaId}