Files
goldpinger/swagger.yml
2019-06-05 14:28:40 -04:00

179 lines
4.4 KiB
YAML

---
swagger: '2.0'
info:
version: 1.0.0
title: Goldpinger
definitions:
CallStats:
properties:
check:
type: integer
check_all:
type: integer
ping:
type: integer
DnsResult:
properties:
response-time-ms:
type: number
format: int64
error:
type: string
DnsResults:
type: object
additionalProperties:
$ref: '#/definitions/DnsResult'
PingResults:
type: object
properties:
boot_time:
format: date-time
type: string
received:
$ref: '#/definitions/CallStats'
PodResult:
type: object
properties:
OK:
type: boolean
default: false
HostIP:
type: string
format: ipv4
response:
$ref: '#/definitions/PingResults'
error:
type: string
status-code:
type: integer
format: int32
response-time-ms:
type: number
format: int64
description: wall clock time in milliseconds
CheckResults:
type: object
properties:
dnsResults:
$ref: '#/definitions/DnsResults'
podResults:
type: object
additionalProperties:
$ref: '#/definitions/PodResult'
CheckAllPodResult:
type: object
properties:
OK:
type: boolean
default: false
HostIP:
type: string
format: ipv4
response:
$ref: '#/definitions/CheckResults'
error:
type: string
status-code:
type: integer
format: int32
CheckAllResults:
type: object
properties:
OK:
type: boolean
default: false
hosts-healthy:
type: integer
format: int32
hosts-number:
type: integer
format: int32
hosts:
type: array
items:
type: object
properties:
hostIP:
type: string
format: ipv4
podIP:
type: string
format: ipv4
dnsResults:
type: object
additionalProperties:
$ref: '#/definitions/DnsResults'
responses:
type: object
additionalProperties:
$ref: '#/definitions/CheckAllPodResult'
HealthCheckResults:
type: object
properties:
OK:
type: boolean
default: false
generated-at:
type: string
format: date-time
duration-ns:
type: integer
format: int64
paths:
/ping:
get:
description: return query stats
produces:
- application/json
operationId: ping
responses:
200:
description: return success
schema:
$ref: '#/definitions/PingResults'
/check:
get:
description: Queries the API server for all other pods in this service,
and pings them via their pods IPs. Calls their /ping endpoint
produces:
- application/json
operationId: checkServicePods
responses:
200:
description: Success, return response
schema:
$ref: '#/definitions/CheckResults'
/check_all:
get:
description: Queries the API server for all other pods in this service,
and makes all of them query all of their neighbours,
using their pods IPs. Calls their /check endpoint.
produces:
- application/json
operationId: checkAllPods
responses:
200:
description: Success, return response
schema:
$ref: '#/definitions/CheckAllResults'
/healthz:
get:
description: The healthcheck endpoint provides detailed information about
the health of a web service. If each of the components required
by the service are healthy, then the service is considered healthy
and will return a 200 OK response. If any of the components needed
by the service are unhealthy, then a 503 Service Unavailable
response will be provided.
produces:
- application/json
operationId: healthz
responses:
200:
description: Health check report
schema:
$ref: '#/definitions/HealthCheckResults'
503:
description: Unhealthy service
schema:
$ref: '#/definitions/HealthCheckResults'