Outages
Módulo para receber os requests com operações de CRUD que armazenam as indisponibilidades programadas.
Visão Geral
Ao cadastrar um outage, você registra que uma API Regulatória do Open Insurance Brasil não estará disponível durante determinado período.
Os outages podem ser consultados de 3 formas:
- no Status API (GET /discovery/v1/status) como SCHEDULED_OUTAGE (durante o seu momento de vigência da indisponibilidade, que é definido pela data início e data fim);
- no Metrics API (GET /admin/v1/metrics) através dos dados fornecidos no objeto
scheduledOutage
; - na consulta de Outages (GET /outages/ui/{id} ou GET /outages/ui).
Outages são indisponibilidades programadas e devem ser comunicadas com antecedência ao ecossistema de Open Insurance. Interrupções não programadas que já aconteceram devem ser registradas através do módulo de Downtimes.
Diagrama de Sequência

Funcionalidades
O CRUD de Outages possui cinco funcionalidades:
- Listagem de outages filtrados por parâmetros startDate e endDate;
- Listagem de outage filtrado por ID;
- Registro de outages;
- Alteração de um outage.
- Exclusão de um outage.
Endpoints
O objeto (Schema) que será transferido entre as requisições possui a seguinte estrutura:
{ "name": "Maintenance", "explanation": "Maintenance test for another documentation", "beginsAt": "2022-10-25T12:00:00Z", "endsAt": "2022-10-30T13:00:00Z", "partial": true, "endpoints": [ "https://api.banco.com.br/sb/open-insurance/discovery/v1/outages" ] }
GET /outages/UI
Listagem de outages paginada e filtrada pelos parâmetros startDate
(data inicial) e endDate
(data final).
Exemplo de cURL:
curl --location --request GET 'http://api.banco.com.br/outages/ui/?startDate=2022-10-24T12:00:00Z&endDate=2022-10-26T12:00:00Z' \
- Status Code: 206 (Partial Content)
- Status Code: 400 (Bad request)
- A solicitação possui erros
- Status Code: 404 (Not Found)
- Não foram encontrados resultados
- Status Code: 500 (Internal Server Error)
- Houve um erro interno do servidor
GET /outages/ui/{id}
Busca de outage por ID.
Exemplo de cURL:
curl --location --request GET 'http://api.banco.com.br/outages/ui/62a33f3a69b68b3c5c97febf' \
- Status Code: 200 (OK)
- Status Code: 400 (Bad request)
- A solicitação possui erros
- Status Code: 404 (Not Found)
- Não foram encontrados resultados
- Status Code: 500 (Internal Server Error)
- Houve um erro interno do servidor
POST /outages/ui
Registra um outage.
Exemplo de cURL:
curl --location --request POST 'http://api.banco.com.br/outages/ui/' \ --header 'customerId: op' \ --header 'environmentId: sandbox' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Maintenance", "explanation": "Maintenance test for another documentation", "beginsAt": "2022-10-25T12:00:00Z", "endsAt": "2022-10-30T13:00:00Z", "partial": true, "endpoints": [ "https://api.banco.com.br/open-insurance/discovery/v1/outages" ] } '
- Status Code: 201 (Created)
- Status Code: 400 (Bad Request)
- A solicitação possui erros
- Status Code: 500 (Internal Server Error)
- Houve um erro interno do servidor
PUT /outages/ui/{id}
Atualiza um outage por identificador.
Exemplo de cURL:
curl --location --request PUT 'http://api.banco.com.br/outages/ui/62a33f3a69b68b3c5c97febf' \ --data-raw '{ "name": "Maintenance", "explanation": "Maintenance test for another documentation", "beginsAt": "2022-10-25T12:00:00Z", "endsAt": "2022-10-30T13:00:00Z", "partial": true, "endpoints": [ "https://api.banco.com.br/sb/open-insurance/discovery/v1/outages" ] } '
- Status Code: 200 (OK)
- Status Code: 400 (Bad Request)
- A solicitação possui erros
- Status Code: 404 (Not Found)
- Não foram encontrados resultados
- Status Code: 500 (Internal Server Error)
- Houve um erro interno do servidor
DELETE /outages/ui/{id}
Exclui um outage por identificador.
Exemplo de cURL:
curl --location --request DELETE 'http://api.banco.com.br/outages/ui/6356ee398495f572ceea3405' \
- Status Code: 204 (Deleted)
- Status Code: 400 (Bad Request)
- A solicitação possui erros
- Status Code: 404 (Not Found)
- Não foram encontrados resultados
- Status Code: 500 (Internal Server Error)
- Houve um erro interno do servidor
Cenários - Fluxo de dados
POST
- Realizando o POST para registrar um novo outage para uma API específica:
Body:

Response:

GET
- Realizando o GET para retornar um outage por ID:
- Realizando o GET para retornar a lista por filtro:


Filtros disponíveis:
⚬ startDate: data de começo da busca;
⚬ endDate: data final da busca;
⚬ _page: página de resultado da busca, começando em 0;
⚬ _pageSize: tamanho de resultados por página, de 1 à 50;
⚬ name: filtro pelo nome do outage;
⚬ endpoints: filtro por endpoint;
⚬ _sort: ordenação em ordem crescente pelo campo informado;
⚬ _desc: ordenação em ordem decrescente pelo campo informado;
PUT
- Realizando o POST para alterar um outage:
Body:

Response:

DELETE
- Realizando o DELETE para excluir um outage:

Now is your time to rock!
Atualizado em 09/01/2023