545 lines
12 KiB
YAML
545 lines
12 KiB
YAML
---
|
|
|
|
swagger: '2.0'
|
|
|
|
info:
|
|
version: 0.0.1
|
|
title: Alertmanager API
|
|
description: API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
consumes:
|
|
- "application/json"
|
|
produces:
|
|
- "application/json"
|
|
|
|
basePath: "/api/v2/"
|
|
|
|
paths:
|
|
/status:
|
|
get:
|
|
tags:
|
|
- general
|
|
operationId: getStatus
|
|
description: Get current status of an Alertmanager instance and its cluster
|
|
responses:
|
|
'200':
|
|
description: Get status response
|
|
schema:
|
|
$ref: '#/definitions/alertmanagerStatus'
|
|
/receivers:
|
|
get:
|
|
tags:
|
|
- receiver
|
|
operationId: getReceivers
|
|
description: Get list of all receivers (name of notification integrations)
|
|
responses:
|
|
'200':
|
|
description: Get receivers response
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/receiver'
|
|
/silences:
|
|
get:
|
|
tags:
|
|
- silence
|
|
operationId: getSilences
|
|
description: Get a list of silences
|
|
responses:
|
|
'200':
|
|
description: Get silences response
|
|
schema:
|
|
$ref: '#/definitions/gettableSilences'
|
|
'500':
|
|
$ref: '#/responses/InternalServerError'
|
|
parameters:
|
|
- name: filter
|
|
in: query
|
|
description: A list of matchers to filter silences by
|
|
required: false
|
|
type: array
|
|
collectionFormat: multi
|
|
items:
|
|
type: string
|
|
post:
|
|
tags:
|
|
- silence
|
|
operationId: postSilences
|
|
description: Post a new silence or update an existing one
|
|
parameters:
|
|
- in: body
|
|
name: silence
|
|
description: The silence to create
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/postableSilence'
|
|
responses:
|
|
'200':
|
|
description: Create / update silence response
|
|
schema:
|
|
type: object
|
|
properties:
|
|
silenceID:
|
|
type: string
|
|
'400':
|
|
$ref: '#/responses/BadRequest'
|
|
'404':
|
|
description: A silence with the specified ID was not found
|
|
schema:
|
|
type: string
|
|
/silence/{silenceID}:
|
|
parameters:
|
|
- in: path
|
|
name: silenceID
|
|
type: string
|
|
format: uuid
|
|
required: true
|
|
description: ID of the silence to get
|
|
get:
|
|
tags:
|
|
- silence
|
|
operationId: getSilence
|
|
description: Get a silence by its ID
|
|
responses:
|
|
'200':
|
|
description: Get silence response
|
|
schema:
|
|
$ref: '#/definitions/gettableSilence'
|
|
'404':
|
|
description: A silence with the specified ID was not found
|
|
'500':
|
|
$ref: '#/responses/InternalServerError'
|
|
delete:
|
|
tags:
|
|
- silence
|
|
operationId: deleteSilence
|
|
description: Delete a silence by its ID
|
|
parameters:
|
|
- in: path
|
|
name: silenceID
|
|
type: string
|
|
format: uuid
|
|
required: true
|
|
description: ID of the silence to get
|
|
responses:
|
|
'200':
|
|
description: Delete silence response
|
|
'500':
|
|
$ref: '#/responses/InternalServerError'
|
|
/alerts:
|
|
get:
|
|
tags:
|
|
- alert
|
|
operationId: getAlerts
|
|
description: Get a list of alerts
|
|
parameters:
|
|
- in: query
|
|
name: active
|
|
type: boolean
|
|
description: Show active alerts
|
|
default: true
|
|
- in: query
|
|
name: silenced
|
|
type: boolean
|
|
description: Show silenced alerts
|
|
default: true
|
|
- in: query
|
|
name: inhibited
|
|
type: boolean
|
|
description: Show inhibited alerts
|
|
default: true
|
|
- in: query
|
|
name: unprocessed
|
|
type: boolean
|
|
description: Show unprocessed alerts
|
|
default: true
|
|
- name: filter
|
|
in: query
|
|
description: A list of matchers to filter alerts by
|
|
required: false
|
|
type: array
|
|
collectionFormat: multi
|
|
items:
|
|
type: string
|
|
- name: receiver
|
|
in: query
|
|
description: A regex matching receivers to filter alerts by
|
|
required: false
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get alerts response
|
|
schema:
|
|
'$ref': '#/definitions/gettableAlerts'
|
|
'400':
|
|
$ref: '#/responses/BadRequest'
|
|
'500':
|
|
$ref: '#/responses/InternalServerError'
|
|
post:
|
|
tags:
|
|
- alert
|
|
operationId: postAlerts
|
|
description: Create new Alerts
|
|
parameters:
|
|
- in: body
|
|
name: alerts
|
|
description: The alerts to create
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/postableAlerts'
|
|
responses:
|
|
'200':
|
|
description: Create alerts response
|
|
'500':
|
|
$ref: '#/responses/InternalServerError'
|
|
'400':
|
|
$ref: '#/responses/BadRequest'
|
|
/alerts/groups:
|
|
get:
|
|
tags:
|
|
- alertgroup
|
|
operationId: getAlertGroups
|
|
description: Get a list of alert groups
|
|
parameters:
|
|
- in: query
|
|
name: active
|
|
type: boolean
|
|
description: Show active alerts
|
|
default: true
|
|
- in: query
|
|
name: silenced
|
|
type: boolean
|
|
description: Show silenced alerts
|
|
default: true
|
|
- in: query
|
|
name: inhibited
|
|
type: boolean
|
|
description: Show inhibited alerts
|
|
default: true
|
|
- name: filter
|
|
in: query
|
|
description: A list of matchers to filter alerts by
|
|
required: false
|
|
type: array
|
|
collectionFormat: multi
|
|
items:
|
|
type: string
|
|
- name: receiver
|
|
in: query
|
|
description: A regex matching receivers to filter alerts by
|
|
required: false
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get alert groups response
|
|
schema:
|
|
'$ref': '#/definitions/alertGroups'
|
|
'400':
|
|
$ref: '#/responses/BadRequest'
|
|
'500':
|
|
$ref: '#/responses/InternalServerError'
|
|
|
|
responses:
|
|
BadRequest:
|
|
description: Bad request
|
|
schema:
|
|
type: string
|
|
InternalServerError:
|
|
description: Internal server error
|
|
schema:
|
|
type: string
|
|
|
|
|
|
definitions:
|
|
alertmanagerStatus:
|
|
type: object
|
|
properties:
|
|
cluster:
|
|
$ref: '#/definitions/clusterStatus'
|
|
versionInfo:
|
|
$ref: '#/definitions/versionInfo'
|
|
config:
|
|
$ref: '#/definitions/alertmanagerConfig'
|
|
uptime:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- cluster
|
|
- versionInfo
|
|
- config
|
|
- uptime
|
|
clusterStatus:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum: ["ready", "settling", "disabled"]
|
|
peers:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/peerStatus'
|
|
required:
|
|
- status
|
|
alertmanagerConfig:
|
|
type: object
|
|
properties:
|
|
original:
|
|
type: string
|
|
required:
|
|
- original
|
|
versionInfo:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
revision:
|
|
type: string
|
|
branch:
|
|
type: string
|
|
buildUser:
|
|
type: string
|
|
buildDate:
|
|
type: string
|
|
goVersion:
|
|
type: string
|
|
required:
|
|
- version
|
|
- revision
|
|
- branch
|
|
- buildUser
|
|
- buildDate
|
|
- goVersion
|
|
peerStatus:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
address:
|
|
type: string
|
|
required:
|
|
- name
|
|
- address
|
|
silence:
|
|
type: object
|
|
properties:
|
|
matchers:
|
|
$ref: '#/definitions/matchers'
|
|
startsAt:
|
|
type: string
|
|
format: date-time
|
|
endsAt:
|
|
type: string
|
|
format: date-time
|
|
createdBy:
|
|
type: string
|
|
comment:
|
|
type: string
|
|
required:
|
|
- matchers
|
|
- startsAt
|
|
- endsAt
|
|
- createdBy
|
|
- comment
|
|
gettableSilence:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
status:
|
|
$ref: '#/definitions/silenceStatus'
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- id
|
|
- status
|
|
- updatedAt
|
|
- $ref: '#/definitions/silence'
|
|
postableSilence:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
- $ref: '#/definitions/silence'
|
|
silenceStatus:
|
|
type: object
|
|
properties:
|
|
state:
|
|
type: string
|
|
enum: ["expired", "active", "pending"]
|
|
required:
|
|
- state
|
|
gettableSilences:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/gettableSilence'
|
|
matchers:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/matcher'
|
|
minItems: 1
|
|
matcher:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
isRegex:
|
|
type: boolean
|
|
isEqual:
|
|
type: boolean
|
|
default: true
|
|
required:
|
|
- name
|
|
- value
|
|
- isRegex
|
|
alert:
|
|
type: object
|
|
properties:
|
|
labels:
|
|
$ref: '#/definitions/labelSet'
|
|
generatorURL:
|
|
type: string
|
|
format: uri
|
|
required:
|
|
- labels
|
|
gettableAlerts:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/gettableAlert'
|
|
gettableAlert:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
annotations:
|
|
$ref: '#/definitions/labelSet'
|
|
receivers:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/receiver'
|
|
fingerprint:
|
|
type: string
|
|
startsAt:
|
|
type: string
|
|
format: date-time
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
endsAt:
|
|
type: string
|
|
format: date-time
|
|
status:
|
|
$ref: '#/definitions/alertStatus'
|
|
required:
|
|
- receivers
|
|
- fingerprint
|
|
- startsAt
|
|
- updatedAt
|
|
- endsAt
|
|
- annotations
|
|
- status
|
|
- $ref: '#/definitions/alert'
|
|
postableAlerts:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/postableAlert'
|
|
postableAlert:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
startsAt:
|
|
type: string
|
|
format: date-time
|
|
endsAt:
|
|
type: string
|
|
format: date-time
|
|
annotations:
|
|
$ref: '#/definitions/labelSet'
|
|
- $ref: '#/definitions/alert'
|
|
alertGroups:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/alertGroup'
|
|
alertGroup:
|
|
type: object
|
|
properties:
|
|
labels:
|
|
$ref: '#/definitions/labelSet'
|
|
receiver:
|
|
$ref: '#/definitions/receiver'
|
|
alerts:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/gettableAlert'
|
|
required:
|
|
- labels
|
|
- receiver
|
|
- alerts
|
|
alertStatus:
|
|
type: object
|
|
properties:
|
|
state:
|
|
type: string
|
|
enum: ['unprocessed', 'active', 'suppressed']
|
|
silencedBy:
|
|
type: array
|
|
items:
|
|
type: string
|
|
inhibitedBy:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- state
|
|
- silencedBy
|
|
- inhibitedBy
|
|
receiver:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
active:
|
|
type: boolean
|
|
integrations:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/integration'
|
|
integration:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
sendResolve:
|
|
type: boolean
|
|
lastNotify:
|
|
type: string
|
|
lastNotifyDuration:
|
|
type: string
|
|
lastError:
|
|
type: string
|
|
required:
|
|
- name
|
|
labelSet:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
|
|
|
|
tags:
|
|
- name: general
|
|
description: General Alertmanager operations
|
|
- name: receiver
|
|
description: Everything related to Alertmanager receivers
|
|
- name: silence
|
|
description: Everything related to Alertmanager silences
|
|
- name: alert
|
|
description: Everything related to Alertmanager alerts
|