openapi: 3.0.0 info: title: APIs Admin do Open Finance Brasil description: As API's administrativas são recursos que podem ser consumidos apenas pelo diretório para avaliação e controle da qualidade dos serviços fornecidos pelas instituições financeiras version: 2.0.0 contact: url: 'https://servicedesk.openbankingbrasil.org.br/Login.jsp?navLanguage=pt-BR' servers: - url: 'http://api.banco.com.br/open-banking/admin/v2' tags: - name: "Metrics" paths: /metrics: get: tags: - Metrics summary: Obtém as métricas de disponibilidade das APIs description: "Obtém as métricas de disponibilidade das APIs" operationId: "getMetrics" parameters: - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" - in: query name: period schema: type: string enum: - CURRENT - ALL required: false description: | Período a ser consultado * `CURRENT` - Métricas do dia atual. * `ALL` - Métricas de todo o período disponível (últimos 7 dias). responses: '200': description: Dados das métricas content: application/json: schema: $ref: '#/components/schemas/ResponseMetricsList' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: $ref: '#/components/responses/Default' components: schemas: ResponseMetricsList: type: object required: - data - links properties: data: type: array items: $ref: '#/components/schemas/ResponseMetricsListData' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' ResponseMetricsListData: type: object required: - endpoint - requestTime - availability - invocations - averageResponse - averageTps - peakTps - errors - rejections properties: endpoint: type: string maxLength: 2000 pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#={}]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/={}]*)$' description: URL ou URI do endpoint requestTime: type: string maxLength: 20 description: Data e hora que as métricas foram requisitadas. format: date-time availability: $ref: '#/components/schemas/AvailabilityMetrics' invocations: $ref: '#/components/schemas/InvocationMetrics' averageResponse: $ref: '#/components/schemas/AverageMetrics' averageTps: $ref: '#/components/schemas/AverageTPSMetrics' peakTps: $ref: '#/components/schemas/PeakTPSMetrics' errors: $ref: '#/components/schemas/ErrorMetrics' rejections: $ref: '#/components/schemas/RejectionMetrics' AvailabilityMetrics: type: object required: - uptime - downtime properties: uptime: type: object required: - generalUptimeRate - uptimeRate properties: generalUptimeRate: type: string minLength: 8 maxLength: 8 pattern: '^\d{1}\.\d{6}$' description: Taxa de disponibilidade (considerando todos os serviços ativos ao mesmo tempo). uptimeRate: type: string minLength: 8 maxLength: 8 pattern: '^\d{1}\.\d{6}$' description: Taxa de disponibilidade do endpoint. downtime: type: object required: - generalDowntime - scheduledOutage - partialDowntime properties: generalDowntime: type: integer description: Quantidade de segundos de downtime (considerando qualquer api em downtime). scheduledOutage: type: integer description: Quantidade de segundos de indisponibilidade agendada. partialDowntime: type: integer description: Quantidade de segundos de indisponibilidade do endpoint. InvocationMetrics: type: object required: - currentDay - previousDays properties: currentDay: type: integer description: Número de chamadas no dia atual. previousDays: type: array maxItems: 7 description: Número de chamadas nos dias anteriores. O primeiro item do array é referente ao dia anterior ao corrente, e assim por diante. Devem ser retornados no máximo sete dias caso estejam disponíveis.​ items: type: integer AverageMetrics: type: object required: - currentDay - previousDays properties: currentDay: type: integer description: Tempo médio de resposta em milissegundos para chamadas no dia atual. previousDays: type: array maxItems: 7 description: Tempo médio de resposta em milissegundos para chamadas nos dias anteriores. O primeiro item do array é referente ao dia anterior ao corrente, e assim por diante. Devem ser retornados no máximo sete dias caso estejam disponíveis.​ items: type: integer AverageTPSMetrics: type: object required: - currentDay - previousDays properties: currentDay: type: integer description: Número médio de chamadas por segundo no dia. previousDays: type: array maxItems: 7 description: Número médio de chamadas por segundo nos dias anteriores. O primeiro item do array é referente ao dia anterior ao corrente, e assim por diante. Devem ser retornados no máximo sete dias caso estejam disponíveis.​ items: type: integer PeakTPSMetrics: type: object required: - currentDay - previousDays properties: currentDay: type: integer description: Pico de chamadas por segundo no dia. previousDays: type: array maxItems: 7 description: Pico de chamadas por segundo nos dias anteriores. O primeiro item do array é referente ao dia anterior ao corrente, e assim por diante. Devem ser retornados no máximo sete dias caso estejam disponíveis. items: type: integer ErrorMetrics: type: object required: - currentDay - previousDays properties: currentDay: type: integer description: Número de chamadas com erro no dia atual. previousDays: type: array maxItems: 7 description: Número de chamadas com erro nos dias anteriores. O primeiro item do array é referente ao dia anterior ao corrente, e assim por diante. Devem ser retornados no máximo sete dias caso estejam disponíveis. items: type: integer RejectionMetrics: type: object required: - currentDay - previousDays properties: currentDay: type: integer description: Número de chamadas rejeitadas no dia atual. previousDays: type: array maxItems: 7 description: Número de chamadas rejeitadas nos dias anteriores. O primeiro item do array é referente ao dia anterior ao corrente, e assim por diante. Devem ser retornados no máximo sete dias caso estejam disponíveis.​ items: type: integer Links: type: object properties: self: type: string description: URL da página atualmente requisitada maxLength: 2000 pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' example: 'https://api.banco.com.br/open-banking/admin/v1/resource' first: type: string description: URL da primeira página de registros maxLength: 2000 pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' example: 'https://api.banco.com.br/open-banking/admin/v1/resource' prev: type: string description: URL da página anterior de registros maxLength: 2000 pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' next: type: string description: URL da próxima página de registros maxLength: 2000 pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' last: type: string description: URL da última página de registros maxLength: 2000 pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' example: 'https://api.banco.com.br/open-banking/admin/v1/resource' Meta: type: object properties: totalRecords: type: integer description: Total de registros encontrados example: 1 totalPages: type: integer description: Total de páginas para os registros encontrados example: 1 required: - totalRecords - totalPages ResponseErrorMetaSingle: type: object required: - errors properties: errors: type: array minItems: 1 maxItems: 13 items: type: object required: - code - title - detail properties: code: description: Código de erro específico do endpoint type: string pattern: '[\w\W\s]*' maxLength: 255 title: description: Título legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 2048 meta: type: object description: Meta informações referente à API requisitada. required: - requestDateTime properties: requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string maxLength: 20 format: date-time example: '2021-05-21T08:30:00Z' ResponseError: type: object required: - errors properties: errors: type: array minItems: 1 maxItems: 13 items: type: object required: - code - title - detail properties: code: description: Código de erro específico do endpoint type: string pattern: '[\w\W\s]*' maxLength: 255 title: description: Título legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 2048 meta: type: object description: Meta informações referente à API requisitada. required: - totalRecords - totalPages properties: totalRecords: type: integer format: int32 description: Número total de registros no resultado example: 1 totalPages: type: integer format: int32 description: Número total de páginas no resultado example: 1 parameters: page: name: page in: query description: Número da página que está sendo requisitada (o valor da primeira página é 1). schema: type: integer format: int32​ default: 1 minimum: 1 maximum: 2147483647 pageSize: name: page-size in: query description: Quantidade total de registros por páginas. schema: type: integer format: int32​ default: 25 minimum: 1 maximum: 1000 responses: BadRequest: description: A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.​ content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' NotFound: description: O recurso solicitado não existe ou não foi implementado. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' MethodNotAllowed: description: O consumidor tentou acessar o recurso com um método não suportado. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' TooManyRequests: description: A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' InternalServerError: description: Ocorreu um erro no gateway da API ou no microsserviço. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' GatewayTimeout: description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' SiteIsOverloaded: description: O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseErrorMetaSingle' Default: description: '\-' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError'