// Code generated by go-swagger; DO NOT EDIT.

// Copyright Prometheus Team
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

package restapi

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"encoding/json"
)

var (
	// SwaggerJSON embedded version of the swagger document used at generation time
	SwaggerJSON json.RawMessage
	// FlatSwaggerJSON embedded flattened version of the swagger document used at generation time
	FlatSwaggerJSON json.RawMessage
)

func init() {
	SwaggerJSON = json.RawMessage([]byte(`{
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "swagger": "2.0",
  "info": {
    "description": "API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)",
    "title": "Alertmanager API",
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "0.0.1"
  },
  "basePath": "/api/v2/",
  "paths": {
    "/alerts": {
      "get": {
        "description": "Get a list of alerts",
        "tags": [
          "alert"
        ],
        "operationId": "getAlerts",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Include active alerts in results. If false, excludes active alerts and returns only suppressed (silenced or inhibited) alerts.",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include silenced alerts in results. If false, excludes silenced alerts. Note that true (default) shows both silenced and non-silenced alerts.",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include inhibited alerts in results. If false, excludes inhibited alerts. Note that true (default) shows both inhibited and non-inhibited alerts.",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include unprocessed alerts in results. If false, excludes unprocessed alerts. Note that true (default) shows both processed and unprocessed alerts.",
            "name": "unprocessed",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "description": "A matcher expression to filter alerts. For example ` + "`" + `alertname=\"MyAlert\"` + "`" + `. It can be repeated to apply multiple matchers.",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Get alerts response",
            "schema": {
              "$ref": "#/definitions/gettableAlerts"
            }
          },
          "400": {
            "$ref": "#/responses/BadRequest"
          },
          "500": {
            "$ref": "#/responses/InternalServerError"
          }
        }
      },
      "post": {
        "description": "Create new Alerts",
        "tags": [
          "alert"
        ],
        "operationId": "postAlerts",
        "parameters": [
          {
            "description": "The alerts to create",
            "name": "alerts",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/postableAlerts"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Create alerts response"
          },
          "400": {
            "$ref": "#/responses/BadRequest"
          },
          "500": {
            "$ref": "#/responses/InternalServerError"
          }
        }
      }
    },
    "/alerts/groups": {
      "get": {
        "description": "Get a list of alert groups",
        "tags": [
          "alertgroup"
        ],
        "operationId": "getAlertGroups",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Include active alerts within the returned groups. If false, excludes active alerts from groups and only shows suppressed (silenced or inhibited) alerts.",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include silenced alerts within the returned groups. If false, excludes silenced alerts from groups. Note that true (default) shows both silenced and non-silenced alerts.",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include inhibited alerts within the returned groups. If false, excludes inhibited alerts from groups. Note that true (default) shows both inhibited and non-inhibited alerts.",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include muted (silenced or inhibited) alert groups in results. If false, excludes entire groups where all alerts are muted.",
            "name": "muted",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "description": "A matcher expression to filter alert groups. For example ` + "`" + `alertname=\"MyAlert\"` + "`" + `. It can be repeated to apply multiple matchers.",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Get alert groups response",
            "schema": {
              "$ref": "#/definitions/alertGroups"
            }
          },
          "400": {
            "$ref": "#/responses/BadRequest"
          },
          "500": {
            "$ref": "#/responses/InternalServerError"
          }
        }
      }
    },
    "/receivers": {
      "get": {
        "description": "Get list of all receivers (name of notification integrations)",
        "tags": [
          "receiver"
        ],
        "operationId": "getReceivers",
        "responses": {
          "200": {
            "description": "Get receivers response",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/receiver"
              }
            }
          }
        }
      }
    },
    "/silence/{silenceID}": {
      "get": {
        "description": "Get a silence by its ID",
        "tags": [
          "silence"
        ],
        "operationId": "getSilence",
        "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": {
        "description": "Delete a silence by its ID",
        "tags": [
          "silence"
        ],
        "operationId": "deleteSilence",
        "parameters": [
          {
            "type": "string",
            "format": "uuid",
            "description": "ID of the silence to get",
            "name": "silenceID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Delete silence response"
          },
          "404": {
            "description": "A silence with the specified ID was not found"
          },
          "500": {
            "$ref": "#/responses/InternalServerError"
          }
        }
      },
      "parameters": [
        {
          "type": "string",
          "format": "uuid",
          "description": "ID of the silence to get",
          "name": "silenceID",
          "in": "path",
          "required": true
        }
      ]
    },
    "/silences": {
      "get": {
        "description": "Get a list of silences",
        "tags": [
          "silence"
        ],
        "operationId": "getSilences",
        "parameters": [
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "description": "A matcher expression to filter silences. For example ` + "`" + `alertname=\"MyAlert\"` + "`" + `. It can be repeated to apply multiple matchers.",
            "name": "filter",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Get silences response",
            "schema": {
              "$ref": "#/definitions/gettableSilences"
            }
          },
          "400": {
            "$ref": "#/responses/BadRequest"
          },
          "500": {
            "$ref": "#/responses/InternalServerError"
          }
        }
      },
      "post": {
        "description": "Post a new silence or update an existing one",
        "tags": [
          "silence"
        ],
        "operationId": "postSilences",
        "parameters": [
          {
            "description": "The silence to create",
            "name": "silence",
            "in": "body",
            "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"
            }
          }
        }
      }
    },
    "/status": {
      "get": {
        "description": "Get current status of an Alertmanager instance and its cluster",
        "tags": [
          "general"
        ],
        "operationId": "getStatus",
        "responses": {
          "200": {
            "description": "Get status response",
            "schema": {
              "$ref": "#/definitions/alertmanagerStatus"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "alert": {
      "type": "object",
      "required": [
        "labels"
      ],
      "properties": {
        "generatorURL": {
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        }
      }
    },
    "alertGroup": {
      "type": "object",
      "required": [
        "labels",
        "receiver",
        "alerts"
      ],
      "properties": {
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/gettableAlert"
          }
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        },
        "receiver": {
          "$ref": "#/definitions/receiver"
        }
      }
    },
    "alertGroups": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/alertGroup"
      }
    },
    "alertStatus": {
      "type": "object",
      "required": [
        "state",
        "silencedBy",
        "inhibitedBy",
        "mutedBy"
      ],
      "properties": {
        "inhibitedBy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "mutedBy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "silencedBy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "state": {
          "type": "string",
          "enum": [
            "unprocessed",
            "active",
            "suppressed"
          ]
        }
      }
    },
    "alertmanagerConfig": {
      "type": "object",
      "required": [
        "original"
      ],
      "properties": {
        "original": {
          "type": "string"
        }
      }
    },
    "alertmanagerStatus": {
      "type": "object",
      "required": [
        "cluster",
        "versionInfo",
        "config",
        "uptime"
      ],
      "properties": {
        "cluster": {
          "$ref": "#/definitions/clusterStatus"
        },
        "config": {
          "$ref": "#/definitions/alertmanagerConfig"
        },
        "uptime": {
          "type": "string",
          "format": "date-time"
        },
        "versionInfo": {
          "$ref": "#/definitions/versionInfo"
        }
      }
    },
    "clusterStatus": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "peers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/peerStatus"
          }
        },
        "status": {
          "type": "string",
          "enum": [
            "ready",
            "settling",
            "disabled"
          ]
        }
      }
    },
    "gettableAlert": {
      "allOf": [
        {
          "type": "object",
          "required": [
            "receivers",
            "fingerprint",
            "startsAt",
            "updatedAt",
            "endsAt",
            "annotations",
            "status"
          ],
          "properties": {
            "annotations": {
              "$ref": "#/definitions/labelSet"
            },
            "endsAt": {
              "type": "string",
              "format": "date-time"
            },
            "fingerprint": {
              "type": "string"
            },
            "receivers": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/receiver"
              }
            },
            "startsAt": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "$ref": "#/definitions/alertStatus"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        {
          "$ref": "#/definitions/alert"
        }
      ]
    },
    "gettableAlerts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/gettableAlert"
      }
    },
    "gettableSilence": {
      "allOf": [
        {
          "type": "object",
          "required": [
            "id",
            "status",
            "updatedAt"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "status": {
              "$ref": "#/definitions/silenceStatus"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        {
          "$ref": "#/definitions/silence"
        }
      ]
    },
    "gettableSilences": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/gettableSilence"
      }
    },
    "labelSet": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "matcher": {
      "type": "object",
      "required": [
        "name",
        "value",
        "isRegex"
      ],
      "properties": {
        "isEqual": {
          "type": "boolean",
          "default": true
        },
        "isRegex": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "matchers": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/definitions/matcher"
      }
    },
    "peerStatus": {
      "type": "object",
      "required": [
        "name",
        "address"
      ],
      "properties": {
        "address": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "postableAlert": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "annotations": {
              "$ref": "#/definitions/labelSet"
            },
            "endsAt": {
              "type": "string",
              "format": "date-time"
            },
            "startsAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        {
          "$ref": "#/definitions/alert"
        }
      ]
    },
    "postableAlerts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/postableAlert"
      }
    },
    "postableSilence": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            }
          }
        },
        {
          "$ref": "#/definitions/silence"
        }
      ]
    },
    "receiver": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "silence": {
      "type": "object",
      "required": [
        "matchers",
        "startsAt",
        "endsAt",
        "createdBy",
        "comment"
      ],
      "properties": {
        "comment": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "endsAt": {
          "type": "string",
          "format": "date-time"
        },
        "matchers": {
          "$ref": "#/definitions/matchers"
        },
        "startsAt": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "silenceStatus": {
      "type": "object",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "expired",
            "active",
            "pending"
          ]
        }
      }
    },
    "versionInfo": {
      "type": "object",
      "required": [
        "version",
        "revision",
        "branch",
        "buildUser",
        "buildDate",
        "goVersion"
      ],
      "properties": {
        "branch": {
          "type": "string"
        },
        "buildDate": {
          "type": "string"
        },
        "buildUser": {
          "type": "string"
        },
        "goVersion": {
          "type": "string"
        },
        "revision": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    }
  },
  "responses": {
    "BadRequest": {
      "description": "Bad request",
      "schema": {
        "type": "string"
      }
    },
    "InternalServerError": {
      "description": "Internal server error",
      "schema": {
        "type": "string"
      }
    }
  },
  "tags": [
    {
      "description": "General Alertmanager operations",
      "name": "general"
    },
    {
      "description": "Everything related to Alertmanager receivers",
      "name": "receiver"
    },
    {
      "description": "Everything related to Alertmanager silences",
      "name": "silence"
    },
    {
      "description": "Everything related to Alertmanager alerts",
      "name": "alert"
    }
  ]
}`))
	FlatSwaggerJSON = json.RawMessage([]byte(`{
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "swagger": "2.0",
  "info": {
    "description": "API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)",
    "title": "Alertmanager API",
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "0.0.1"
  },
  "basePath": "/api/v2/",
  "paths": {
    "/alerts": {
      "get": {
        "description": "Get a list of alerts",
        "tags": [
          "alert"
        ],
        "operationId": "getAlerts",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Include active alerts in results. If false, excludes active alerts and returns only suppressed (silenced or inhibited) alerts.",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include silenced alerts in results. If false, excludes silenced alerts. Note that true (default) shows both silenced and non-silenced alerts.",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include inhibited alerts in results. If false, excludes inhibited alerts. Note that true (default) shows both inhibited and non-inhibited alerts.",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include unprocessed alerts in results. If false, excludes unprocessed alerts. Note that true (default) shows both processed and unprocessed alerts.",
            "name": "unprocessed",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "description": "A matcher expression to filter alerts. For example ` + "`" + `alertname=\"MyAlert\"` + "`" + `. It can be repeated to apply multiple matchers.",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Get alerts response",
            "schema": {
              "$ref": "#/definitions/gettableAlerts"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "post": {
        "description": "Create new Alerts",
        "tags": [
          "alert"
        ],
        "operationId": "postAlerts",
        "parameters": [
          {
            "description": "The alerts to create",
            "name": "alerts",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/postableAlerts"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Create alerts response"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/alerts/groups": {
      "get": {
        "description": "Get a list of alert groups",
        "tags": [
          "alertgroup"
        ],
        "operationId": "getAlertGroups",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Include active alerts within the returned groups. If false, excludes active alerts from groups and only shows suppressed (silenced or inhibited) alerts.",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include silenced alerts within the returned groups. If false, excludes silenced alerts from groups. Note that true (default) shows both silenced and non-silenced alerts.",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include inhibited alerts within the returned groups. If false, excludes inhibited alerts from groups. Note that true (default) shows both inhibited and non-inhibited alerts.",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Include muted (silenced or inhibited) alert groups in results. If false, excludes entire groups where all alerts are muted.",
            "name": "muted",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "description": "A matcher expression to filter alert groups. For example ` + "`" + `alertname=\"MyAlert\"` + "`" + `. It can be repeated to apply multiple matchers.",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Get alert groups response",
            "schema": {
              "$ref": "#/definitions/alertGroups"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/receivers": {
      "get": {
        "description": "Get list of all receivers (name of notification integrations)",
        "tags": [
          "receiver"
        ],
        "operationId": "getReceivers",
        "responses": {
          "200": {
            "description": "Get receivers response",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/receiver"
              }
            }
          }
        }
      }
    },
    "/silence/{silenceID}": {
      "get": {
        "description": "Get a silence by its ID",
        "tags": [
          "silence"
        ],
        "operationId": "getSilence",
        "responses": {
          "200": {
            "description": "Get silence response",
            "schema": {
              "$ref": "#/definitions/gettableSilence"
            }
          },
          "404": {
            "description": "A silence with the specified ID was not found"
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "delete": {
        "description": "Delete a silence by its ID",
        "tags": [
          "silence"
        ],
        "operationId": "deleteSilence",
        "parameters": [
          {
            "type": "string",
            "format": "uuid",
            "description": "ID of the silence to get",
            "name": "silenceID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Delete silence response"
          },
          "404": {
            "description": "A silence with the specified ID was not found"
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "parameters": [
        {
          "type": "string",
          "format": "uuid",
          "description": "ID of the silence to get",
          "name": "silenceID",
          "in": "path",
          "required": true
        }
      ]
    },
    "/silences": {
      "get": {
        "description": "Get a list of silences",
        "tags": [
          "silence"
        ],
        "operationId": "getSilences",
        "parameters": [
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi",
            "description": "A matcher expression to filter silences. For example ` + "`" + `alertname=\"MyAlert\"` + "`" + `. It can be repeated to apply multiple matchers.",
            "name": "filter",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Get silences response",
            "schema": {
              "$ref": "#/definitions/gettableSilences"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "type": "string"
            }
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "post": {
        "description": "Post a new silence or update an existing one",
        "tags": [
          "silence"
        ],
        "operationId": "postSilences",
        "parameters": [
          {
            "description": "The silence to create",
            "name": "silence",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/postableSilence"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Create / update silence response",
            "schema": {
              "type": "object",
              "properties": {
                "silenceID": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "A silence with the specified ID was not found",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/status": {
      "get": {
        "description": "Get current status of an Alertmanager instance and its cluster",
        "tags": [
          "general"
        ],
        "operationId": "getStatus",
        "responses": {
          "200": {
            "description": "Get status response",
            "schema": {
              "$ref": "#/definitions/alertmanagerStatus"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "alert": {
      "type": "object",
      "required": [
        "labels"
      ],
      "properties": {
        "generatorURL": {
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        }
      }
    },
    "alertGroup": {
      "type": "object",
      "required": [
        "labels",
        "receiver",
        "alerts"
      ],
      "properties": {
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/gettableAlert"
          }
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        },
        "receiver": {
          "$ref": "#/definitions/receiver"
        }
      }
    },
    "alertGroups": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/alertGroup"
      }
    },
    "alertStatus": {
      "type": "object",
      "required": [
        "state",
        "silencedBy",
        "inhibitedBy",
        "mutedBy"
      ],
      "properties": {
        "inhibitedBy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "mutedBy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "silencedBy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "state": {
          "type": "string",
          "enum": [
            "unprocessed",
            "active",
            "suppressed"
          ]
        }
      }
    },
    "alertmanagerConfig": {
      "type": "object",
      "required": [
        "original"
      ],
      "properties": {
        "original": {
          "type": "string"
        }
      }
    },
    "alertmanagerStatus": {
      "type": "object",
      "required": [
        "cluster",
        "versionInfo",
        "config",
        "uptime"
      ],
      "properties": {
        "cluster": {
          "$ref": "#/definitions/clusterStatus"
        },
        "config": {
          "$ref": "#/definitions/alertmanagerConfig"
        },
        "uptime": {
          "type": "string",
          "format": "date-time"
        },
        "versionInfo": {
          "$ref": "#/definitions/versionInfo"
        }
      }
    },
    "clusterStatus": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "peers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/peerStatus"
          }
        },
        "status": {
          "type": "string",
          "enum": [
            "ready",
            "settling",
            "disabled"
          ]
        }
      }
    },
    "gettableAlert": {
      "allOf": [
        {
          "type": "object",
          "required": [
            "receivers",
            "fingerprint",
            "startsAt",
            "updatedAt",
            "endsAt",
            "annotations",
            "status"
          ],
          "properties": {
            "annotations": {
              "$ref": "#/definitions/labelSet"
            },
            "endsAt": {
              "type": "string",
              "format": "date-time"
            },
            "fingerprint": {
              "type": "string"
            },
            "receivers": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/receiver"
              }
            },
            "startsAt": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "$ref": "#/definitions/alertStatus"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        {
          "$ref": "#/definitions/alert"
        }
      ]
    },
    "gettableAlerts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/gettableAlert"
      }
    },
    "gettableSilence": {
      "allOf": [
        {
          "type": "object",
          "required": [
            "id",
            "status",
            "updatedAt"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "status": {
              "$ref": "#/definitions/silenceStatus"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        {
          "$ref": "#/definitions/silence"
        }
      ]
    },
    "gettableSilences": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/gettableSilence"
      }
    },
    "labelSet": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "matcher": {
      "type": "object",
      "required": [
        "name",
        "value",
        "isRegex"
      ],
      "properties": {
        "isEqual": {
          "type": "boolean",
          "default": true
        },
        "isRegex": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "matchers": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/definitions/matcher"
      }
    },
    "peerStatus": {
      "type": "object",
      "required": [
        "name",
        "address"
      ],
      "properties": {
        "address": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "postableAlert": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "annotations": {
              "$ref": "#/definitions/labelSet"
            },
            "endsAt": {
              "type": "string",
              "format": "date-time"
            },
            "startsAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        {
          "$ref": "#/definitions/alert"
        }
      ]
    },
    "postableAlerts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/postableAlert"
      }
    },
    "postableSilence": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            }
          }
        },
        {
          "$ref": "#/definitions/silence"
        }
      ]
    },
    "receiver": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "silence": {
      "type": "object",
      "required": [
        "matchers",
        "startsAt",
        "endsAt",
        "createdBy",
        "comment"
      ],
      "properties": {
        "comment": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "endsAt": {
          "type": "string",
          "format": "date-time"
        },
        "matchers": {
          "$ref": "#/definitions/matchers"
        },
        "startsAt": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "silenceStatus": {
      "type": "object",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "expired",
            "active",
            "pending"
          ]
        }
      }
    },
    "versionInfo": {
      "type": "object",
      "required": [
        "version",
        "revision",
        "branch",
        "buildUser",
        "buildDate",
        "goVersion"
      ],
      "properties": {
        "branch": {
          "type": "string"
        },
        "buildDate": {
          "type": "string"
        },
        "buildUser": {
          "type": "string"
        },
        "goVersion": {
          "type": "string"
        },
        "revision": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    }
  },
  "responses": {
    "BadRequest": {
      "description": "Bad request",
      "schema": {
        "type": "string"
      }
    },
    "InternalServerError": {
      "description": "Internal server error",
      "schema": {
        "type": "string"
      }
    }
  },
  "tags": [
    {
      "description": "General Alertmanager operations",
      "name": "general"
    },
    {
      "description": "Everything related to Alertmanager receivers",
      "name": "receiver"
    },
    {
      "description": "Everything related to Alertmanager silences",
      "name": "silence"
    },
    {
      "description": "Everything related to Alertmanager alerts",
      "name": "alert"
    }
  ]
}`))
}
