openapi: 3.0.3
info:
title: Management control interface
description: Service management interface
version: 0.0.1
paths:
/started:
get:
summary: Application startup state.
description: |-
Returns information if the application is already started or not.
responses:
'200':
description: Application is in an operating state
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/Ok"
- $ref: "#/components/schemas/TearingDown"
'400':
description: Application is in a starting state
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/Starting"
/ready:
get:
summary: Application readiness state.
description: |-
Tells if the k8s can route the traffic to this application. K8s periodically checks this
endpoint in order to understand if it can route traffic there.
responses:
'200':
description: Application is in an operating state
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/Running"
'400':
description: Application is in a starting state
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/Starting"
- $ref: "#/components/schemas/NotRunning"
- $ref: "#/components/schemas/TearingDown"
/health:
get:
summary: Application liveness state.
description: |-
Tells if the application is alive, if not k8s can restart this instance.
responses:
'200':
description: Application is in an operating state
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/Running"
'400':
description: Application is in a starting state
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/Starting"
- $ref: "#/components/schemas/Unhealthy"
/stop:
get:
summary: Request application teardown.
description: |-
Tells if to gracefully teardown, after being called the ready endpoint starts returning 400,
and no new traffic is accepted. All current requestes are processed.
If users' appliction does not exit withing allowed timeout it's killed forcefully.
responses:
'200':
description: Application has accepted the teardown request
content:
text/plain:
schema:
oneOf:
- $ref: "#/components/schemas/TearingDown"
/_metrics:
get:
summary: Output metrics in prometheus format
description: |-
Output all the metrics provided by the application
responses:
'200':
description: Metrics for the application
content:
text/plain:
schema:
type: string
components:
schemas:
Ok:
type: string
enum: ["ok"]
description: Application is working
Running:
type: string
enum: ["running"]
description: Application is running
NotRunning:
type: string
enum: ["not running"]
description: Application is not running
TearingDown:
enum: ["tearing down"]
description: Application is tearing down
Starting:
enum: ["starting"]
description: Application is starting
Unhealthy:
enum: ["unhealthy"]
description: Application is unhealthy