{
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "schemes": [
    "http",
    "https"
  ],
  "swagger": "2.0",
  "info": {
    "description": "Package definitions includes the types required for generating or consuming an OpenAPI\nspec for the Grafana Alerting API.",
    "title": "Grafana Alerting API.",
    "version": "1.1.0"
  },
  "basePath": "/api",
  "paths": {
    "/alertmanager/grafana/api/v2/alerts": {
      "get": {
        "description": "get alertmanager alerts",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetGrafanaAMAlerts",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Show active alerts",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show silenced alerts",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show inhibited alerts",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of matchers to filter alerts by",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "gettableAlerts",
            "schema": {
              "$ref": "#/definitions/gettableAlerts"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/api/v2/alerts/groups": {
      "get": {
        "description": "get alertmanager alerts",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetGrafanaAMAlertGroups",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Show active alerts",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show silenced alerts",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show inhibited alerts",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of matchers to filter alerts by",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "alertGroups",
            "schema": {
              "$ref": "#/definitions/alertGroups"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/api/v2/silence/{SilenceId}": {
      "get": {
        "description": "get silence",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetGrafanaSilence",
        "parameters": [
          {
            "type": "string",
            "name": "SilenceId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "gettableGrafanaSilence",
            "schema": {
              "$ref": "#/definitions/gettableGrafanaSilence"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "description": "delete silence",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteDeleteGrafanaSilence",
        "parameters": [
          {
            "type": "string",
            "name": "SilenceId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/api/v2/silences": {
      "get": {
        "description": "get silences",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetGrafanaSilences",
        "parameters": [
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "name": "filter",
            "in": "query"
          },
          {
            "type": "boolean",
            "description": "Return rule metadata with silence.",
            "name": "ruleMetadata",
            "in": "query"
          },
          {
            "type": "boolean",
            "description": "Return access control metadata with silence.",
            "name": "accesscontrol",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "gettableGrafanaSilences",
            "schema": {
              "$ref": "#/definitions/gettableGrafanaSilences"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "post": {
        "description": "create silence",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteCreateGrafanaSilence",
        "parameters": [
          {
            "name": "Silence",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/postableSilence"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "postSilencesOKBody",
            "schema": {
              "$ref": "#/definitions/postSilencesOKBody"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/api/v2/status": {
      "get": {
        "description": "get alertmanager status and configuration",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetGrafanaAMStatus",
        "responses": {
          "200": {
            "description": "GettableStatus",
            "schema": {
              "$ref": "#/definitions/GettableStatus"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/config/api/v1/alerts": {
      "get": {
        "description": "This API is designated to internal use only and can be removed or changed at any time without prior notice.",
        "tags": [
          "alertmanager"
        ],
        "summary": "gets an Alerting config",
        "operationId": "RouteGetGrafanaAlertingConfig",
        "deprecated": true,
        "responses": {
          "200": {
            "description": "GettableUserConfig",
            "schema": {
              "$ref": "#/definitions/GettableUserConfig"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "description": "This API is designated to internal use only and can be removed or changed at any time without prior notice.",
        "tags": [
          "alertmanager"
        ],
        "summary": "deletes the Alerting config for a tenant",
        "operationId": "RouteDeleteGrafanaAlertingConfig",
        "deprecated": true,
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/config/api/v1/receivers": {
      "get": {
        "description": "Get a list of all receivers",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetGrafanaReceivers",
        "responses": {
          "200": {
            "$ref": "#/responses/receiversResponse"
          }
        }
      }
    },
    "/alertmanager/grafana/config/api/v1/receivers/test": {
      "post": {
        "tags": [
          "alertmanager"
        ],
        "summary": "Test Grafana managed receivers without saving them.",
        "operationId": "RoutePostTestGrafanaReceivers",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/TestReceiversConfigBodyParams"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "207": {
            "description": "MultiStatus",
            "schema": {
              "$ref": "#/definitions/MultiStatus"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "403": {
            "description": "PermissionDenied",
            "schema": {
              "$ref": "#/definitions/PermissionDenied"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          },
          "408": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "409": {
            "description": "AlertManagerNotReady",
            "schema": {
              "$ref": "#/definitions/AlertManagerNotReady"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/config/api/v1/templates/test": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "alertmanager"
        ],
        "summary": "Test Grafana managed templates without saving them.",
        "operationId": "RoutePostTestGrafanaTemplates",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/TestTemplatesConfigBodyParams"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "TestTemplatesResults",
            "schema": {
              "$ref": "#/definitions/TestTemplatesResults"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "403": {
            "description": "PermissionDenied",
            "schema": {
              "$ref": "#/definitions/PermissionDenied"
            }
          },
          "409": {
            "description": "AlertManagerNotReady",
            "schema": {
              "$ref": "#/definitions/AlertManagerNotReady"
            }
          }
        }
      }
    },
    "/alertmanager/grafana/config/history": {
      "get": {
        "description": "This API is designated to internal use only and can be removed or changed at any time without prior notice.",
        "tags": [
          "alertmanager"
        ],
        "summary": "gets Alerting configurations that were successfully applied in the past",
        "operationId": "RouteGetGrafanaAlertingConfigHistory",
        "deprecated": true,
        "parameters": [
          {
            "type": "integer",
            "format": "int64",
            "description": "Limit response to n historic configurations.",
            "name": "limit",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/GettableHistoricUserConfigs"
          }
        }
      }
    },
    "/alertmanager/grafana/config/history/{id}/_activate": {
      "post": {
        "description": "This API is designated to internal use only and can be removed or changed at any time without prior notice.",
        "tags": [
          "alertmanager"
        ],
        "summary": "revert Alerting configuration to the historical configuration specified by the given id",
        "operationId": "RoutePostGrafanaAlertingConfigHistoryActivate",
        "deprecated": true,
        "parameters": [
          {
            "type": "integer",
            "format": "int64",
            "description": "Id should be the id of the GettableHistoricUserConfig",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/alertmanager/{DatasourceUID}/api/v2/alerts": {
      "get": {
        "description": "get alertmanager alerts",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetAMAlerts",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Show active alerts",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show silenced alerts",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show inhibited alerts",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of matchers to filter alerts by",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "gettableAlerts",
            "schema": {
              "$ref": "#/definitions/gettableAlerts"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "description": "create alertmanager alerts",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RoutePostAMAlerts",
        "parameters": [
          {
            "name": "PostableAlerts",
            "in": "body",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/postableAlert"
              }
            }
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/alertmanager/{DatasourceUID}/api/v2/alerts/groups": {
      "get": {
        "description": "get alertmanager alerts",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetAMAlertGroups",
        "parameters": [
          {
            "type": "boolean",
            "default": true,
            "description": "Show active alerts",
            "name": "active",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show silenced alerts",
            "name": "silenced",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": true,
            "description": "Show inhibited alerts",
            "name": "inhibited",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of matchers to filter alerts by",
            "name": "filter",
            "in": "query"
          },
          {
            "type": "string",
            "description": "A regex matching receivers to filter alerts by",
            "name": "receiver",
            "in": "query"
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "alertGroups",
            "schema": {
              "$ref": "#/definitions/alertGroups"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/alertmanager/{DatasourceUID}/api/v2/silence/{SilenceId}": {
      "get": {
        "description": "get silence",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetSilence",
        "parameters": [
          {
            "type": "string",
            "name": "SilenceId",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "gettableSilence",
            "schema": {
              "$ref": "#/definitions/gettableSilence"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "description": "delete silence",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteDeleteSilence",
        "parameters": [
          {
            "type": "string",
            "name": "SilenceId",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/alertmanager/{DatasourceUID}/api/v2/silences": {
      "get": {
        "description": "get silences",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetSilences",
        "parameters": [
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "name": "filter",
            "in": "query"
          },
          {
            "type": "boolean",
            "description": "Return rule metadata with silence.",
            "name": "ruleMetadata",
            "in": "query"
          },
          {
            "type": "boolean",
            "description": "Return access control metadata with silence.",
            "name": "accesscontrol",
            "in": "query"
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "gettableSilences",
            "schema": {
              "$ref": "#/definitions/gettableSilences"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "description": "create silence",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteCreateSilence",
        "parameters": [
          {
            "name": "Silence",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/postableSilence"
            }
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "description": "postSilencesOKBody",
            "schema": {
              "$ref": "#/definitions/postSilencesOKBody"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/alertmanager/{DatasourceUID}/api/v2/status": {
      "get": {
        "description": "get alertmanager status and configuration",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetAMStatus",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "GettableStatus",
            "schema": {
              "$ref": "#/definitions/GettableStatus"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/alertmanager/{DatasourceUID}/config/api/v1/alerts": {
      "get": {
        "description": "gets an Alerting config",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteGetAlertingConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "GettableUserConfig",
            "schema": {
              "$ref": "#/definitions/GettableUserConfig"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "description": "sets an Alerting config",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RoutePostAlertingConfig",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PostableUserConfig"
            }
          },
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "description": "deletes the Alerting config for a tenant",
        "tags": [
          "alertmanager"
        ],
        "operationId": "RouteDeleteAlertingConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/convert/api/prom/rules": {
      "get": {
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Gets all Grafana-managed alert rules that were imported from Prometheus-compatible sources, grouped by namespace.",
        "operationId": "RouteConvertPrometheusCortexGetRules",
        "responses": {
          "200": {
            "description": "PrometheusNamespace",
            "schema": {
              "$ref": "#/definitions/PrometheusNamespace"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json",
          "application/yaml"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Converts the submitted rule groups into Grafana-Managed Rules.",
        "operationId": "RouteConvertPrometheusCortexPostRuleGroups",
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/convert/api/prom/rules/{NamespaceTitle}": {
      "get": {
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Gets Grafana-managed alert rules that were imported from Prometheus-compatible sources for a specified namespace (folder).",
        "operationId": "RouteConvertPrometheusCortexGetNamespace",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "PrometheusNamespace",
            "schema": {
              "$ref": "#/definitions/PrometheusNamespace"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "description": "If the group already exists and was not imported from a Prometheus-compatible source initially,\nit will not be replaced and an error will be returned.",
        "consumes": [
          "application/yaml"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Converts a Prometheus rule group into a Grafana rule group and creates or updates it within the specified namespace.",
        "operationId": "RouteConvertPrometheusCortexPostRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-datasource-uid",
            "in": "header"
          },
          {
            "type": "boolean",
            "name": "x-grafana-alerting-recording-rules-paused",
            "in": "header"
          },
          {
            "type": "boolean",
            "name": "x-grafana-alerting-alert-rules-paused",
            "in": "header"
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-target-datasource-uid",
            "in": "header"
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-folder-uid",
            "in": "header"
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-notification-settings",
            "in": "header"
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PrometheusRuleGroup"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        },
        "x-raw-request": "true"
      },
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Deletes all rule groups that were imported from Prometheus-compatible sources within the specified namespace.",
        "operationId": "RouteConvertPrometheusCortexDeleteNamespace",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/convert/api/prom/rules/{NamespaceTitle}/{Group}": {
      "get": {
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Gets a single rule group in Prometheus-compatible format if it was imported from a Prometheus-compatible source.",
        "operationId": "RouteConvertPrometheusCortexGetRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "PrometheusRuleGroup",
            "schema": {
              "$ref": "#/definitions/PrometheusRuleGroup"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Deletes a specific rule group if it was imported from a Prometheus-compatible source.",
        "operationId": "RouteConvertPrometheusCortexDeleteRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/convert/api/v1/alerts": {
      "get": {
        "description": "Returns a specific imported Alertmanager configuration by its identifier.",
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus"
        ],
        "summary": "Get extra Alertmanager configuration from Grafana.",
        "operationId": "RouteConvertPrometheusGetAlertmanagerConfig",
        "parameters": [
          {
            "type": "string",
            "description": "Unique identifier for the Alertmanager configuration to retrieve.",
            "name": "x-grafana-alerting-config-identifier",
            "in": "header"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertmanagerUserConfig",
            "schema": {
              "$ref": "#/definitions/AlertmanagerUserConfig"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      },
      "post": {
        "description": "This endpoint allows importing Alertmanager configurations to Grafana. Each configuration is identified by\na unique identifier and can include merge matchers to select which alerts should be handled by\nthis specific configuration.",
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus"
        ],
        "summary": "Load extra Alertmanager configuration to Grafana and merge it with the existing configuration.",
        "operationId": "RouteConvertPrometheusPostAlertmanagerConfig",
        "parameters": [
          {
            "type": "string",
            "description": "Unique identifier for this Alertmanager configuration.\nThis identifier is used to distinguish between different imported configurations.",
            "name": "x-grafana-alerting-config-identifier",
            "in": "header"
          },
          {
            "type": "string",
            "example": "'environment=production,team=backend' will only apply this",
            "description": "Comma-separated list of label matchers in 'key=value' format.\nThese matchers determine which alerts this configuration should handle.",
            "name": "x-grafana-alerting-merge-matchers",
            "in": "header"
          },
          {
            "description": "Alertmanager configuration including routing rules, receivers, and template files",
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/AlertmanagerUserConfig"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        },
        "x-raw-request": "true"
      },
      "delete": {
        "description": "The main Grafana Alertmanager configuration remains unaffected.",
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus"
        ],
        "summary": "Delete extra Alertmanager configuration from Grafana by its identifier.",
        "operationId": "RouteConvertPrometheusDeleteAlertmanagerConfig",
        "parameters": [
          {
            "type": "string",
            "description": "Unique identifier for the Alertmanager configuration to delete.",
            "name": "x-grafana-alerting-config-identifier",
            "in": "header"
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/convert/prometheus/config/v1/rules": {
      "get": {
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Gets all Grafana-managed alert rules that were imported from Prometheus-compatible sources, grouped by namespace.",
        "operationId": "RouteConvertPrometheusGetRules",
        "responses": {
          "200": {
            "description": "PrometheusNamespace",
            "schema": {
              "$ref": "#/definitions/PrometheusNamespace"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json",
          "application/yaml"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Converts the submitted rule groups into Grafana-Managed Rules.",
        "operationId": "RouteConvertPrometheusPostRuleGroups",
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/convert/prometheus/config/v1/rules/{NamespaceTitle}": {
      "get": {
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Gets Grafana-managed alert rules that were imported from Prometheus-compatible sources for a specified namespace (folder).",
        "operationId": "RouteConvertPrometheusGetNamespace",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "PrometheusNamespace",
            "schema": {
              "$ref": "#/definitions/PrometheusNamespace"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "description": "If the group already exists and was not imported from a Prometheus-compatible source initially,\nit will not be replaced and an error will be returned.",
        "consumes": [
          "application/yaml"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Converts a Prometheus rule group into a Grafana rule group and creates or updates it within the specified namespace.",
        "operationId": "RouteConvertPrometheusPostRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-datasource-uid",
            "in": "header"
          },
          {
            "type": "boolean",
            "name": "x-grafana-alerting-recording-rules-paused",
            "in": "header"
          },
          {
            "type": "boolean",
            "name": "x-grafana-alerting-alert-rules-paused",
            "in": "header"
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-target-datasource-uid",
            "in": "header"
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-folder-uid",
            "in": "header"
          },
          {
            "type": "string",
            "name": "x-grafana-alerting-notification-settings",
            "in": "header"
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PrometheusRuleGroup"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        },
        "x-raw-request": "true"
      },
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Deletes all rule groups that were imported from Prometheus-compatible sources within the specified namespace.",
        "operationId": "RouteConvertPrometheusDeleteNamespace",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/convert/prometheus/config/v1/rules/{NamespaceTitle}/{Group}": {
      "get": {
        "produces": [
          "application/yaml"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Gets a single rule group in Prometheus-compatible format if it was imported from a Prometheus-compatible source.",
        "operationId": "RouteConvertPrometheusGetRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "PrometheusRuleGroup",
            "schema": {
              "$ref": "#/definitions/PrometheusRuleGroup"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "convert_prometheus",
          "stable"
        ],
        "summary": "Deletes a specific rule group if it was imported from a Prometheus-compatible source.",
        "operationId": "RouteConvertPrometheusDeleteRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "NamespaceTitle",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "ConvertPrometheusResponse",
            "schema": {
              "$ref": "#/definitions/ConvertPrometheusResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/prometheus/grafana/api/v1/alerts": {
      "get": {
        "description": "gets the current alerts",
        "tags": [
          "prometheus"
        ],
        "operationId": "RouteGetGrafanaAlertStatuses",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Include Grafana specific labels as part of the response.",
            "name": "includeInternalLabels",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertResponse",
            "schema": {
              "$ref": "#/definitions/AlertResponse"
            }
          }
        }
      }
    },
    "/prometheus/grafana/api/v1/rules": {
      "get": {
        "description": "gets the evaluation statuses of all rules",
        "tags": [
          "prometheus"
        ],
        "operationId": "RouteGetGrafanaRuleStatuses",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Include Grafana specific labels as part of the response.",
            "name": "includeInternalLabels",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter the list of rules to those that belong to the specified dashboard UID.",
            "name": "dashboard_uid",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "description": "Filter the list of rules to those that belong to the specified panel ID. Dashboard UID must be specified.",
            "name": "panel_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter the list of rules to those that belong to the specified folder UID.",
            "name": "folder_uid",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter the list of rules to those that belong to the specified rule group(s). Can be specified multiple times.",
            "name": "rule_group",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter the list of rules to those that reference the specified receiver/contact point.",
            "name": "receiver_name",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Search rules by title (case insensitive substring match).",
            "name": "search.rule_name",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Search rules by rule group name (case insensitive substring match).",
            "name": "search.rule_group",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter the list of rules to those whose titles exactly match the specified values. Can be specified multiple times.",
            "name": "rule_name",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter by rule type: \"alerting\" or \"recording\".",
            "name": "rule_type",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by alert state: \"normal\" (or \"inactive\"), \"pending\", \"alerting\" (or \"firing\"), \"nodata\", \"error\", \"recovering\".",
            "name": "state",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by rule health: \"ok\", \"error\", \"nodata\".",
            "name": "health",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "default": -1,
            "description": "Limit the number of alert instances per rule.",
            "name": "limit_alerts",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "default": -1,
            "description": "Limit the number of rules per group.",
            "name": "limit_rules",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "default": -1,
            "description": "Limit the number of rule groups returned.",
            "name": "group_limit",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "default": -1,
            "description": "Limit the total number of rules returned across all groups. Returns complete groups until the limit is met or exceeded.",
            "name": "rule_limit",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Continuation token for pagination. Use the value returned in the previous response's \"groupNextToken\" field.",
            "name": "group_next_token",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by label matchers encoded as JSON representations of Prometheus matchers (for example, {\"type\":0,\"name\":\"severity\",\"value\":\"critical\"}). Provide one matcher per query string value.",
            "name": "matcher",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "RuleResponse",
            "schema": {
              "$ref": "#/definitions/RuleResponse"
            }
          }
        }
      }
    },
    "/prometheus/{DatasourceUID}/api/v1/alerts": {
      "get": {
        "description": "gets the current alerts",
        "tags": [
          "prometheus"
        ],
        "operationId": "RouteGetAlertStatuses",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "AlertResponse",
            "schema": {
              "$ref": "#/definitions/AlertResponse"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/prometheus/{DatasourceUID}/api/v1/rules": {
      "get": {
        "description": "gets the evaluation statuses of all rules",
        "tags": [
          "prometheus"
        ],
        "operationId": "RouteGetRuleStatuses",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "RuleResponse",
            "schema": {
              "$ref": "#/definitions/RuleResponse"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/ruler/grafana/api/v1/export/rules": {
      "get": {
        "description": "List rules in provisioning format",
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetRulesForExport",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "UIDs of folders from which to export rules",
            "name": "folderUid",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Name of group of rules to export. Must be specified only together with a single folder UID",
            "name": "group",
            "in": "query"
          },
          {
            "type": "string",
            "description": "UID of alert rule to export. If specified, parameters folderUid and group must be empty.",
            "name": "ruleUid",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/ruler/grafana/api/v1/rule/{RuleUID}": {
      "get": {
        "description": "Get rule by UID",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetRuleByUID",
        "parameters": [
          {
            "type": "string",
            "name": "RuleUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "GettableExtendedRuleNode",
            "schema": {
              "$ref": "#/definitions/GettableExtendedRuleNode"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/ruler/grafana/api/v1/rule/{RuleUID}/versions": {
      "get": {
        "description": "Get rule versions by UID",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetRuleVersionsByUID",
        "parameters": [
          {
            "type": "string",
            "name": "RuleUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "GettableRuleVersions",
            "schema": {
              "$ref": "#/definitions/GettableRuleVersions"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/ruler/grafana/api/v1/rules": {
      "get": {
        "description": "List rule groups",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetGrafanaRulesConfig",
        "parameters": [
          {
            "type": "string",
            "name": "DashboardUID",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "name": "PanelID",
            "in": "query"
          }
        ],
        "responses": {
          "202": {
            "description": "NamespaceConfigResponse",
            "schema": {
              "$ref": "#/definitions/NamespaceConfigResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/ruler/grafana/api/v1/rules/{Namespace}": {
      "get": {
        "description": "Get rule groups by namespace",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetNamespaceGrafanaRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "NamespaceConfigResponse",
            "schema": {
              "$ref": "#/definitions/NamespaceConfigResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      },
      "post": {
        "description": "Creates or updates a rule group",
        "consumes": [
          "application/json",
          "application/yaml"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RoutePostNameGrafanaRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PostableRuleGroupConfig"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "UpdateRuleGroupResponse",
            "schema": {
              "$ref": "#/definitions/UpdateRuleGroupResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      },
      "delete": {
        "description": "Delete namespace",
        "tags": [
          "ruler"
        ],
        "operationId": "RouteDeleteNamespaceGrafanaRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      },
      "patch": {
        "description": "Update all rules in a namespace",
        "consumes": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteUpdateNamespaceRules",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/UpdateNamespaceRulesRequest"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "UpdateNamespaceRulesResponse",
            "schema": {
              "$ref": "#/definitions/UpdateNamespaceRulesResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "$ref": "#/responses/NotFound."
          }
        }
      }
    },
    "/ruler/grafana/api/v1/rules/{Namespace}/export": {
      "post": {
        "description": "Converts submitted rule group to provisioning format",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RoutePostRulesGroupForExport",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PostableRuleGroupConfig"
            }
          },
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/ruler/grafana/api/v1/rules/{Namespace}/{Groupname}": {
      "get": {
        "description": "Get rule group",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetGrafanaRuleGroupConfig",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Groupname",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "RuleGroupConfigResponse",
            "schema": {
              "$ref": "#/definitions/RuleGroupConfigResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "description": "Delete rule group",
        "tags": [
          "ruler"
        ],
        "operationId": "RouteDeleteGrafanaRuleGroupConfig",
        "parameters": [
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Groupname",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          }
        }
      }
    },
    "/ruler/grafana/api/v1/trash/rule/guid/{RuleGUID}": {
      "delete": {
        "description": "Permanently delete a rule from trash by GUID",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteDeleteRuleFromTrashByGUID",
        "parameters": [
          {
            "type": "string",
            "name": "RuleGUID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/ruler/{DatasourceUID}/api/v1/rules": {
      "get": {
        "description": "List rule groups",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "DashboardUID",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "name": "PanelID",
            "in": "query"
          }
        ],
        "responses": {
          "202": {
            "description": "NamespaceConfigResponse",
            "schema": {
              "$ref": "#/definitions/NamespaceConfigResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/ruler/{DatasourceUID}/api/v1/rules/{Namespace}": {
      "get": {
        "description": "Get rule groups by namespace",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetNamespaceRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "NamespaceConfigResponse",
            "schema": {
              "$ref": "#/definitions/NamespaceConfigResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "post": {
        "description": "Creates or updates a rule group",
        "consumes": [
          "application/json",
          "application/yaml"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RoutePostNameRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PostableRuleGroupConfig"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "description": "Delete namespace",
        "tags": [
          "ruler"
        ],
        "operationId": "RouteDeleteNamespaceRulesConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/ruler/{DatasourceUID}/api/v1/rules/{Namespace}/{Groupname}": {
      "get": {
        "description": "Get rule group",
        "produces": [
          "application/json"
        ],
        "tags": [
          "ruler"
        ],
        "operationId": "RouteGetRulegGroupConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Groupname",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "RuleGroupConfigResponse",
            "schema": {
              "$ref": "#/definitions/RuleGroupConfigResponse"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      },
      "delete": {
        "description": "Delete rule group",
        "tags": [
          "ruler"
        ],
        "operationId": "RouteDeleteRuleGroupConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "The UID of the rule folder",
            "name": "Namespace",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Groupname",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/v1/eval": {
      "post": {
        "description": "Test rule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "testing"
        ],
        "operationId": "RouteEvalQueries",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EvalQueriesPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "EvalQueriesResponse",
            "schema": {
              "$ref": "#/definitions/EvalQueriesResponse"
            }
          }
        }
      }
    },
    "/v1/ngalert": {
      "get": {
        "description": "Get the status of the alerting engine",
        "produces": [
          "application/json"
        ],
        "tags": [
          "configuration"
        ],
        "operationId": "RouteGetStatus",
        "responses": {
          "200": {
            "description": "AlertingStatus",
            "schema": {
              "$ref": "#/definitions/AlertingStatus"
            }
          }
        }
      }
    },
    "/v1/ngalert/admin_config": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "configuration"
        ],
        "summary": "Get the NGalert configuration of the user's organization, returns 404 if no configuration is present.",
        "operationId": "RouteGetNGalertConfig",
        "responses": {
          "200": {
            "description": "GettableNGalertConfig",
            "schema": {
              "$ref": "#/definitions/GettableNGalertConfig"
            }
          },
          "404": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "configuration"
        ],
        "summary": "Creates or updates the NGalert configuration of the user's organization. If no value is sent for alertmanagersChoice, it defaults to \"all\".",
        "operationId": "RoutePostNGalertConfig",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PostableNGalertConfig"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "configuration"
        ],
        "summary": "Deletes the NGalert configuration of the user's organization.",
        "operationId": "RouteDeleteNGalertConfig",
        "responses": {
          "200": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "500": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        }
      }
    },
    "/v1/ngalert/alertmanagers": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "configuration"
        ],
        "summary": "Get the discovered and dropped Alertmanagers of the user's organization based on the specified configuration.",
        "operationId": "RouteGetAlertmanagers",
        "responses": {
          "200": {
            "description": "GettableAlertmanagers",
            "schema": {
              "$ref": "#/definitions/GettableAlertmanagers"
            }
          }
        }
      }
    },
    "/v1/provisioning/alert-rules": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get all the alert rules.",
        "operationId": "RouteGetAlertRules",
        "responses": {
          "200": {
            "description": "ProvisionedAlertRules",
            "schema": {
              "$ref": "#/definitions/ProvisionedAlertRules"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Create a new alert rule.",
        "operationId": "RoutePostAlertRule",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/ProvisionedAlertRule"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "201": {
            "description": "ProvisionedAlertRule",
            "schema": {
              "$ref": "#/definitions/ProvisionedAlertRule"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/v1/provisioning/alert-rules/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export all alert rules in provisioning file format.",
        "operationId": "RouteGetAlertRulesExport",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "UIDs of folders from which to export rules",
            "name": "folderUid",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Name of group of rules to export. Must be specified only together with a single folder UID",
            "name": "group",
            "in": "query"
          },
          {
            "type": "string",
            "description": "UID of alert rule to export. If specified, parameters folderUid and group must be empty.",
            "name": "ruleUid",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/v1/provisioning/alert-rules/{UID}": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get a specific alert rule by UID.",
        "operationId": "RouteGetAlertRule",
        "parameters": [
          {
            "type": "string",
            "description": "Alert rule UID",
            "name": "UID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "ProvisionedAlertRule",
            "schema": {
              "$ref": "#/definitions/ProvisionedAlertRule"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Update an existing alert rule.",
        "operationId": "RoutePutAlertRule",
        "parameters": [
          {
            "type": "string",
            "description": "Alert rule UID",
            "name": "UID",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/ProvisionedAlertRule"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "200": {
            "description": "ProvisionedAlertRule",
            "schema": {
              "$ref": "#/definitions/ProvisionedAlertRule"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Delete a specific alert rule by UID.",
        "operationId": "RouteDeleteAlertRule",
        "parameters": [
          {
            "type": "string",
            "description": "Alert rule UID",
            "name": "UID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "204": {
            "description": " The alert rule was deleted successfully."
          }
        }
      }
    },
    "/v1/provisioning/alert-rules/{UID}/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export an alert rule in provisioning file format.",
        "operationId": "RouteGetAlertRuleExport",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Alert rule UID",
            "name": "UID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/v1/provisioning/contact-points": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get all the contact points.",
        "operationId": "RouteGetContactpoints",
        "parameters": [
          {
            "type": "string",
            "description": "Filter by name",
            "name": "name",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "ContactPoints",
            "schema": {
              "$ref": "#/definitions/ContactPoints"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Create a contact point.",
        "operationId": "RoutePostContactpoints",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EmbeddedContactPoint"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "202": {
            "description": "EmbeddedContactPoint",
            "schema": {
              "$ref": "#/definitions/EmbeddedContactPoint"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/v1/provisioning/contact-points/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export all contact points in provisioning file format.",
        "operationId": "RouteGetContactpointsExport",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          },
          {
            "type": "boolean",
            "default": false,
            "description": "Whether any contained secure settings should be decrypted or left redacted. Redacted settings will contain RedactedValue instead. Currently, only org admin can view decrypted secure settings.",
            "name": "decrypt",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter by name",
            "name": "name",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "403": {
            "description": "PermissionDenied",
            "schema": {
              "$ref": "#/definitions/PermissionDenied"
            }
          }
        }
      }
    },
    "/v1/provisioning/contact-points/{UID}": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Update an existing contact point.",
        "operationId": "RoutePutContactpoint",
        "parameters": [
          {
            "type": "string",
            "description": "UID is the contact point unique identifier",
            "name": "UID",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EmbeddedContactPoint"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Delete a contact point.",
        "operationId": "RouteDeleteContactpoints",
        "parameters": [
          {
            "type": "string",
            "description": "UID is the contact point unique identifier",
            "name": "UID",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "202": {
            "description": " The contact point was deleted successfully."
          }
        }
      }
    },
    "/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get a rule group.",
        "operationId": "RouteGetAlertRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "FolderUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "AlertRuleGroup",
            "schema": {
              "$ref": "#/definitions/AlertRuleGroup"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Create or update alert rule group.",
        "operationId": "RoutePutAlertRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          },
          {
            "type": "string",
            "name": "FolderUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/AlertRuleGroup"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "AlertRuleGroup",
            "schema": {
              "$ref": "#/definitions/AlertRuleGroup"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "description": "Delete rule group",
        "tags": [
          "provisioning",
          "stable"
        ],
        "operationId": "RouteDeleteAlertRuleGroup",
        "parameters": [
          {
            "type": "string",
            "name": "FolderUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": " The alert rule group was deleted successfully."
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export an alert rule group in provisioning file format.",
        "operationId": "RouteGetAlertRuleGroupExport",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          },
          {
            "type": "string",
            "name": "FolderUID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "Group",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      }
    },
    "/v1/provisioning/mute-timings": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get all the mute timings.",
        "operationId": "RouteGetMuteTimings",
        "responses": {
          "200": {
            "description": "MuteTimings",
            "schema": {
              "$ref": "#/definitions/MuteTimings"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Create a new mute timing.",
        "operationId": "RoutePostMuteTiming",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/MuteTimeInterval"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "201": {
            "description": "MuteTimeInterval",
            "schema": {
              "$ref": "#/definitions/MuteTimeInterval"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      }
    },
    "/v1/provisioning/mute-timings/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export all mute timings in provisioning format.",
        "operationId": "RouteExportMuteTimings",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "403": {
            "description": "PermissionDenied",
            "schema": {
              "$ref": "#/definitions/PermissionDenied"
            }
          }
        }
      }
    },
    "/v1/provisioning/mute-timings/{name}": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get a mute timing.",
        "operationId": "RouteGetMuteTiming",
        "parameters": [
          {
            "type": "string",
            "description": "Mute timing name",
            "name": "name",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "MuteTimeInterval",
            "schema": {
              "$ref": "#/definitions/MuteTimeInterval"
            }
          },
          "404": {
            "description": " Not found."
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Replace an existing mute timing.",
        "operationId": "RoutePutMuteTiming",
        "parameters": [
          {
            "type": "string",
            "description": "Mute timing name",
            "name": "name",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/MuteTimeInterval"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "202": {
            "description": "MuteTimeInterval",
            "schema": {
              "$ref": "#/definitions/MuteTimeInterval"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "409": {
            "description": "PublicError",
            "schema": {
              "$ref": "#/definitions/PublicError"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Delete a mute timing.",
        "operationId": "RouteDeleteMuteTiming",
        "parameters": [
          {
            "type": "string",
            "description": "Mute timing name",
            "name": "name",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Version of mute timing to use for optimistic concurrency. Leave empty to disable validation",
            "name": "version",
            "in": "query"
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "204": {
            "description": " The mute timing was deleted successfully."
          },
          "409": {
            "description": "PublicError",
            "schema": {
              "$ref": "#/definitions/PublicError"
            }
          }
        }
      }
    },
    "/v1/provisioning/mute-timings/{name}/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export a mute timing in provisioning format.",
        "operationId": "RouteExportMuteTiming",
        "parameters": [
          {
            "type": "boolean",
            "default": false,
            "description": "Whether to initiate a download of the file or not.",
            "name": "download",
            "in": "query"
          },
          {
            "enum": [
              "yaml",
              "json",
              "hcl"
            ],
            "type": "string",
            "default": "yaml",
            "description": "Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.",
            "name": "format",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Mute timing name",
            "name": "name",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "403": {
            "description": "PermissionDenied",
            "schema": {
              "$ref": "#/definitions/PermissionDenied"
            }
          }
        }
      }
    },
    "/v1/provisioning/policies": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get the notification policy tree.",
        "operationId": "RouteGetPolicyTree",
        "responses": {
          "200": {
            "description": "Route",
            "schema": {
              "$ref": "#/definitions/Route"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Sets the notification policy tree.",
        "operationId": "RoutePutPolicyTree",
        "parameters": [
          {
            "description": "The new notification routing tree to use",
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/Route"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Clears the notification policy tree.",
        "operationId": "RouteResetPolicyTree",
        "responses": {
          "202": {
            "description": "Ack",
            "schema": {
              "$ref": "#/definitions/Ack"
            }
          }
        }
      }
    },
    "/v1/provisioning/policies/export": {
      "get": {
        "produces": [
          "application/json",
          "application/yaml",
          "application/terraform+hcl",
          "text/yaml",
          "text/hcl"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Export the notification policy tree in provisioning file format.",
        "operationId": "RouteGetPolicyTreeExport",
        "responses": {
          "200": {
            "description": "AlertingFileExport",
            "schema": {
              "$ref": "#/definitions/AlertingFileExport"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/v1/provisioning/templates": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get all notification template groups.",
        "operationId": "RouteGetTemplates",
        "responses": {
          "200": {
            "description": "NotificationTemplates",
            "schema": {
              "$ref": "#/definitions/NotificationTemplates"
            }
          }
        }
      }
    },
    "/v1/provisioning/templates/{name}": {
      "get": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Get a notification template group.",
        "operationId": "RouteGetTemplate",
        "parameters": [
          {
            "type": "string",
            "description": "Template group name",
            "name": "name",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "NotificationTemplate",
            "schema": {
              "$ref": "#/definitions/NotificationTemplate"
            }
          },
          "404": {
            "description": "PublicError",
            "schema": {
              "$ref": "#/definitions/PublicError"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Updates an existing notification template group.",
        "operationId": "RoutePutTemplate",
        "parameters": [
          {
            "type": "string",
            "description": "Template group name",
            "name": "name",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/NotificationTemplateContent"
            }
          },
          {
            "type": "string",
            "name": "X-Disable-Provenance",
            "in": "header"
          }
        ],
        "responses": {
          "202": {
            "description": "NotificationTemplate",
            "schema": {
              "$ref": "#/definitions/NotificationTemplate"
            }
          },
          "400": {
            "description": "PublicError",
            "schema": {
              "$ref": "#/definitions/PublicError"
            }
          },
          "409": {
            "description": "PublicError",
            "schema": {
              "$ref": "#/definitions/PublicError"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "provisioning",
          "stable"
        ],
        "summary": "Delete a notification template group.",
        "operationId": "RouteDeleteTemplate",
        "parameters": [
          {
            "type": "string",
            "description": "Template group name",
            "name": "name",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Version of template to use for optimistic concurrency. Leave empty to disable validation",
            "name": "version",
            "in": "query"
          }
        ],
        "responses": {
          "204": {
            "description": " The template was deleted successfully."
          },
          "409": {
            "description": "PublicError",
            "schema": {
              "$ref": "#/definitions/PublicError"
            }
          }
        }
      }
    },
    "/v1/rule/backtest": {
      "post": {
        "description": "Test rule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "testing"
        ],
        "operationId": "BacktestConfig",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/BacktestConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "BacktestResult",
            "schema": {
              "$ref": "#/definitions/BacktestResult"
            }
          }
        }
      }
    },
    "/v1/rule/test/grafana": {
      "post": {
        "description": "Test a rule against Grafana ruler",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "testing"
        ],
        "operationId": "RouteTestRuleGrafanaConfig",
        "parameters": [
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/PostableExtendedRuleNodeExtended"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TestGrafanaRuleResponse"
          },
          "400": {
            "description": "ValidationError",
            "schema": {
              "$ref": "#/definitions/ValidationError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/v1/rule/test/{DatasourceUID}": {
      "post": {
        "description": "Test a rule against external data source ruler",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "testing"
        ],
        "operationId": "RouteTestRuleConfig",
        "parameters": [
          {
            "type": "string",
            "description": "DatasoureUID should be the datasource UID identifier",
            "name": "DatasourceUID",
            "in": "path",
            "required": true
          },
          {
            "name": "Body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/TestRulePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "TestRuleResponse",
            "schema": {
              "$ref": "#/definitions/TestRuleResponse"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          }
        }
      }
    },
    "/v1/rules/history": {
      "get": {
        "description": "Allows to query alerting state history.\nIn addition to defined query parameters it accepts filter by labels. The query parameter name must start with 'labels_'\nExample: /v1/rules/history?labels_myKey1=myValue1\u0026labels_myKey2=myValue2",
        "produces": [
          "application/json"
        ],
        "tags": [
          "history"
        ],
        "summary": "Query state history.",
        "operationId": "RouteGetStateHistory",
        "parameters": [
          {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp of the start point of the time range the history is obtained.",
            "name": "from",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp of the end point of the time range the history is obtained.",
            "name": "to",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "description": "Limits the number of records that needs to be returned.",
            "name": "limit",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter by rule UID. Required the state history is configured to use annotations for storage.",
            "name": "ruleUID",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Filter by rules that are or were assigned to the specific dashboard.",
            "name": "DashboardUID",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "description": "Filter by dashboard's panel ID. Requires Dashboard UID to be specified.",
            "name": "PanelID",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/StateHistory"
          },
          "403": {
            "description": "ForbiddenError",
            "schema": {
              "$ref": "#/definitions/ForbiddenError"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/NotFound"
            }
          },
          "500": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Ack": {
      "type": "object"
    },
    "Alert": {
      "type": "object",
      "title": "Alert has info for an alert.",
      "required": [
        "labels",
        "annotations",
        "state",
        "value"
      ],
      "properties": {
        "activeAt": {
          "type": "string",
          "format": "date-time"
        },
        "annotations": {
          "$ref": "#/definitions/Labels"
        },
        "labels": {
          "$ref": "#/definitions/Labels"
        },
        "state": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "AlertDiscovery": {
      "type": "object",
      "title": "AlertDiscovery has info for all active alerts.",
      "required": [
        "alerts"
      ],
      "properties": {
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Alert"
          }
        }
      }
    },
    "AlertInstancesResponse": {
      "type": "object",
      "properties": {
        "instances": {
          "description": "Instances is an array of arrow encoded dataframes\neach frame has a single row, and a column for each instance (alert identified by unique labels) with a boolean value (firing/not firing)",
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "uint8"
            }
          }
        }
      }
    },
    "AlertManager": {
      "type": "object",
      "title": "AlertManager models a configured Alert Manager.",
      "properties": {
        "url": {
          "type": "string"
        }
      }
    },
    "AlertManagerNotReady": {
      "type": "object"
    },
    "AlertManagersResult": {
      "type": "object",
      "title": "AlertManagersResult contains the result from querying the alertmanagers endpoint.",
      "properties": {
        "activeAlertManagers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertManager"
          }
        },
        "droppedAlertManagers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertManager"
          }
        }
      }
    },
    "AlertQuery": {
      "type": "object",
      "title": "AlertQuery represents a single query associated with an alert definition.",
      "properties": {
        "datasourceUid": {
          "description": "Grafana data source unique identifier; it should be '__expr__' for a Server Side Expression operation.",
          "type": "string"
        },
        "model": {
          "description": "JSON is the raw JSON query and includes the above properties as well as custom properties.",
          "type": "object"
        },
        "queryType": {
          "description": "QueryType is an optional identifier for the type of query.\nIt can be used to distinguish different types of queries.",
          "type": "string"
        },
        "refId": {
          "description": "RefID is the unique identifier of the query, set by the frontend call.",
          "type": "string"
        },
        "relativeTimeRange": {
          "$ref": "#/definitions/RelativeTimeRange"
        }
      }
    },
    "AlertQueryExport": {
      "type": "object",
      "title": "AlertQueryExport is the provisioned export of models.AlertQuery.",
      "properties": {
        "datasourceUid": {
          "type": "string"
        },
        "model": {
          "type": "object",
          "additionalProperties": {}
        },
        "queryType": {
          "type": "string"
        },
        "refId": {
          "type": "string"
        },
        "relativeTimeRange": {
          "$ref": "#/definitions/RelativeTimeRangeExport"
        }
      }
    },
    "AlertResponse": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "data": {
          "$ref": "#/definitions/AlertDiscovery"
        },
        "error": {
          "type": "string"
        },
        "errorType": {
          "$ref": "#/definitions/ErrorType"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "AlertRuleEditorSettings": {
      "type": "object",
      "properties": {
        "simplified_notifications_section": {
          "type": "boolean"
        },
        "simplified_query_and_expressions_section": {
          "type": "boolean"
        }
      }
    },
    "AlertRuleExport": {
      "type": "object",
      "title": "AlertRuleExport is the provisioned file export of models.AlertRule.",
      "properties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "condition": {
          "type": "string"
        },
        "dashboardUid": {
          "type": "string"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQueryExport"
          }
        },
        "execErrState": {
          "type": "string",
          "enum": [
            "OK",
            "Alerting",
            "Error"
          ]
        },
        "for": {
          "$ref": "#/definitions/Duration"
        },
        "isPaused": {
          "type": "boolean"
        },
        "keepFiringFor": {
          "$ref": "#/definitions/Duration"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "missing_series_evals_to_resolve": {
          "type": "integer",
          "format": "int64"
        },
        "noDataState": {
          "type": "string",
          "enum": [
            "Alerting",
            "NoData",
            "OK"
          ]
        },
        "notification_settings": {
          "$ref": "#/definitions/AlertRuleNotificationSettingsExport"
        },
        "panelId": {
          "type": "integer",
          "format": "int64"
        },
        "record": {
          "$ref": "#/definitions/AlertRuleRecordExport"
        },
        "title": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "AlertRuleGroup": {
      "type": "object",
      "properties": {
        "folderUid": {
          "type": "string"
        },
        "interval": {
          "type": "integer",
          "format": "int64"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProvisionedAlertRule"
          }
        },
        "title": {
          "type": "string"
        }
      }
    },
    "AlertRuleGroupExport": {
      "type": "object",
      "title": "AlertRuleGroupExport is the provisioned file export of AlertRuleGroupV1.",
      "properties": {
        "folder": {
          "type": "string"
        },
        "interval": {
          "$ref": "#/definitions/Duration"
        },
        "name": {
          "type": "string"
        },
        "orgId": {
          "type": "integer",
          "format": "int64"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertRuleExport"
          }
        }
      }
    },
    "AlertRuleGroupMetadata": {
      "type": "object",
      "properties": {
        "interval": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "AlertRuleMetadata": {
      "type": "object",
      "properties": {
        "editor_settings": {
          "$ref": "#/definitions/AlertRuleEditorSettings"
        }
      }
    },
    "AlertRuleNotificationSettings": {
      "type": "object",
      "required": [
        "receiver"
      ],
      "properties": {
        "active_time_intervals": {
          "description": "Override the times when notifications should not be muted. These must match the name of a mute time interval defined\nin the alertmanager configuration time_intervals section. All notifications will be suppressed unless they are sent\nat the time that matches any interval.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "maintenance"
          ]
        },
        "group_by": {
          "description": "Override the labels by which incoming alerts are grouped together. For example, multiple alerts coming in for\ncluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels\nuse the special value '...' as the sole label name.\nThis effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what\nyou want, unless you have a very low alert volume or your upstream notification system performs its own grouping.\nMust include 'alertname' and 'grafana_folder' if not using '...'.",
          "type": "array",
          "default": [
            "alertname",
            "grafana_folder"
          ],
          "items": {
            "type": "string"
          },
          "example": [
            "alertname",
            "grafana_folder",
            "cluster"
          ]
        },
        "group_interval": {
          "description": "Override how long to wait before sending a notification about new alerts that are added to a group of alerts for\nwhich an initial notification has already been sent. (Usually ~5m or more.)",
          "type": "string",
          "example": "5m"
        },
        "group_wait": {
          "description": "Override how long to initially wait to send a notification for a group of alerts. Allows to wait for an\ninhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.)",
          "type": "string",
          "example": "30s"
        },
        "mute_time_intervals": {
          "description": "Override the times when notifications should be muted. These must match the name of a mute time interval defined\nin the alertmanager configuration time_intervals section. When muted it will not send any notifications, but\notherwise acts normally.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "maintenance"
          ]
        },
        "receiver": {
          "description": "Name of the receiver to send notifications to.",
          "type": "string",
          "example": "grafana-default-email"
        },
        "repeat_interval": {
          "description": "Override how long to wait before sending a notification again if it has already been sent successfully for an\nalert. (Usually ~3h or more).\nNote that this parameter is implicitly bound by Alertmanager's `--data.retention` configuration flag.\nNotifications will be resent after either repeat_interval or the data retention period have passed, whichever\noccurs first. `repeat_interval` should not be less than `group_interval`.",
          "type": "string",
          "example": "4h"
        }
      }
    },
    "AlertRuleNotificationSettingsExport": {
      "type": "object",
      "title": "AlertRuleNotificationSettingsExport is the provisioned export of models.NotificationSettings.",
      "properties": {
        "active_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "group_by": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "group_interval": {
          "type": "string"
        },
        "group_wait": {
          "type": "string"
        },
        "mute_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "receiver": {
          "type": "string"
        },
        "repeat_interval": {
          "type": "string"
        }
      }
    },
    "AlertRuleRecordExport": {
      "type": "object",
      "title": "Record is the provisioned export of models.Record.",
      "properties": {
        "from": {
          "type": "string"
        },
        "metric": {
          "type": "string"
        },
        "targetDatasourceUid": {
          "type": "string"
        }
      }
    },
    "AlertingFileExport": {
      "type": "object",
      "title": "AlertingFileExport is the full provisioned file export.",
      "properties": {
        "apiVersion": {
          "type": "integer",
          "format": "int64"
        },
        "contactPoints": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactPointExport"
          }
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertRuleGroupExport"
          }
        },
        "muteTimes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MuteTimeIntervalExport"
          }
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NotificationPolicyExport"
          }
        }
      }
    },
    "AlertingRule": {
      "description": "adapted from cortex",
      "type": "object",
      "required": [
        "name",
        "query",
        "health",
        "type",
        "state",
        "annotations",
        "activeAt"
      ],
      "properties": {
        "activeAt": {
          "type": "string",
          "format": "date-time"
        },
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Alert"
          }
        },
        "annotations": {
          "$ref": "#/definitions/Labels"
        },
        "duration": {
          "type": "number",
          "format": "double"
        },
        "evaluationTime": {
          "type": "number",
          "format": "double"
        },
        "folderUid": {
          "type": "string"
        },
        "health": {
          "type": "string"
        },
        "isPaused": {
          "type": "boolean"
        },
        "keepFiringFor": {
          "type": "number",
          "format": "double"
        },
        "labels": {
          "$ref": "#/definitions/Labels"
        },
        "lastError": {
          "type": "string"
        },
        "lastEvaluation": {
          "type": "string",
          "format": "date-time"
        },
        "name": {
          "type": "string"
        },
        "notificationSettings": {
          "$ref": "#/definitions/AlertRuleNotificationSettings"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "queriedDatasourceUIDs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "query": {
          "type": "string"
        },
        "state": {
          "description": "State can be \"pending\", \"firing\", \"inactive\".",
          "type": "string"
        },
        "totals": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          }
        },
        "totalsFiltered": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          }
        },
        "type": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "AlertingStatus": {
      "type": "object",
      "properties": {
        "alertmanagersChoice": {
          "type": "string",
          "enum": [
            "all",
            "internal",
            "external"
          ]
        },
        "numExternalAlertmanagers": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "AlertmanagerUserConfig": {
      "type": "object",
      "properties": {
        "alertmanager_config": {
          "description": "Configuration for Alertmanager in YAML format.\nin: body",
          "type": "string"
        },
        "template_files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "ApiRuleNode": {
      "type": "object",
      "properties": {
        "alert": {
          "type": "string"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "expr": {
          "type": "string"
        },
        "for": {
          "type": "string"
        },
        "keep_firing_for": {
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "record": {
          "type": "string"
        }
      }
    },
    "Authorization": {
      "type": "object",
      "title": "Authorization contains HTTP authorization credentials.",
      "properties": {
        "credentials": {
          "$ref": "#/definitions/Secret"
        },
        "credentials_file": {
          "type": "string"
        },
        "credentials_ref": {
          "description": "CredentialsRef is the name of the secret within the secret manager to use as credentials.",
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "BacktestConfig": {
      "type": "object",
      "properties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "condition": {
          "type": "string"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQuery"
          }
        },
        "for": {
          "$ref": "#/definitions/Duration"
        },
        "from": {
          "type": "string",
          "format": "date-time"
        },
        "interval": {
          "$ref": "#/definitions/Duration"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "no_data_state": {
          "type": "string",
          "enum": [
            "Alerting",
            "NoData",
            "OK"
          ]
        },
        "title": {
          "type": "string"
        },
        "to": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "BacktestResult": {
      "$ref": "#/definitions/Frame"
    },
    "BasicAuth": {
      "type": "object",
      "title": "BasicAuth contains basic HTTP authentication credentials.",
      "properties": {
        "password": {
          "$ref": "#/definitions/Secret"
        },
        "password_file": {
          "type": "string"
        },
        "password_ref": {
          "description": "PasswordRef is the name of the secret within the secret manager to use as the password.",
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "username_file": {
          "type": "string"
        },
        "username_ref": {
          "description": "UsernameRef is the name of the secret within the secret manager to use as the username.",
          "type": "string"
        }
      }
    },
    "ConfFloat64": {
      "description": "ConfFloat64 is a float64. It Marshals float64 values of NaN of Inf\nto null.",
      "type": "number",
      "format": "double"
    },
    "Config": {
      "type": "object",
      "title": "Config is the top-level configuration for Alertmanager's config files.",
      "properties": {
        "global": {
          "$ref": "#/definitions/GlobalConfig"
        },
        "inhibit_rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InhibitRule"
          }
        },
        "mute_time_intervals": {
          "description": "MuteTimeIntervals is deprecated and will be removed before Alertmanager 1.0.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/MuteTimeInterval"
          }
        },
        "route": {
          "$ref": "#/definitions/Route"
        },
        "templates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "time_intervals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "ContactPointExport": {
      "type": "object",
      "title": "ContactPointExport is the provisioned file export of alerting.ContactPointV1.",
      "properties": {
        "name": {
          "type": "string"
        },
        "orgId": {
          "type": "integer",
          "format": "int64"
        },
        "receivers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ReceiverExport"
          }
        }
      }
    },
    "ContactPoints": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/EmbeddedContactPoint"
      }
    },
    "ConvertPrometheusResponse": {
      "type": "object",
      "properties": {
        "error": {
          "type": "string"
        },
        "errorType": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "CounterResetHint": {
      "description": "or alternatively that we are dealing with a gauge histogram, where counter resets do not apply.",
      "type": "integer",
      "format": "uint8",
      "title": "CounterResetHint contains the known information about a counter reset,"
    },
    "DataLink": {
      "description": "DataLink define what",
      "type": "object",
      "properties": {
        "internal": {
          "$ref": "#/definitions/InternalDataLink"
        },
        "targetBlank": {
          "type": "boolean"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "DataResponse": {
      "description": "A map of RefIDs (unique query identifiers) to this type makes up the Responses property of a QueryDataResponse.\nThe Error property is used to allow for partial success responses from the containing QueryDataResponse.",
      "type": "object",
      "title": "DataResponse contains the results from a DataQuery.",
      "properties": {
        "Error": {
          "description": "Error is a property to be set if the corresponding DataQuery has an error.",
          "type": "string"
        },
        "ErrorSource": {
          "$ref": "#/definitions/Source"
        },
        "Frames": {
          "$ref": "#/definitions/Frames"
        },
        "Status": {
          "$ref": "#/definitions/Status"
        }
      }
    },
    "DataTopic": {
      "description": "nolint:revive",
      "type": "string",
      "title": "DataTopic is used to identify which topic the frame should be assigned to."
    },
    "DiscordConfig": {
      "type": "object",
      "title": "DiscordConfig configures notifications via Discord.",
      "properties": {
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "title": {
          "type": "string"
        },
        "webhook_url": {
          "$ref": "#/definitions/SecretURL"
        },
        "webhook_url_file": {
          "type": "string"
        }
      }
    },
    "DiscoveryBase": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "errorType": {
          "$ref": "#/definitions/ErrorType"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "Duration": {
      "type": "integer",
      "format": "int64",
      "title": "Duration is a type used for marshalling durations.",
      "$ref": "#/definitions/Duration"
    },
    "EmailConfig": {
      "type": "object",
      "title": "EmailConfig configures notifications via mail.",
      "properties": {
        "auth_identity": {
          "type": "string"
        },
        "auth_password": {
          "$ref": "#/definitions/Secret"
        },
        "auth_password_file": {
          "type": "string"
        },
        "auth_secret": {
          "$ref": "#/definitions/Secret"
        },
        "auth_username": {
          "type": "string"
        },
        "from": {
          "type": "string"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "hello": {
          "type": "string"
        },
        "html": {
          "type": "string"
        },
        "require_tls": {
          "type": "boolean"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "smarthost": {
          "$ref": "#/definitions/HostPort"
        },
        "text": {
          "type": "string"
        },
        "tls_config": {
          "$ref": "#/definitions/TLSConfig"
        },
        "to": {
          "description": "Email address to notify.",
          "type": "string"
        }
      }
    },
    "EmbeddedContactPoint": {
      "description": "EmbeddedContactPoint is the contact point type that is used\nby grafanas embedded alertmanager implementation.",
      "type": "object",
      "required": [
        "type",
        "settings"
      ],
      "properties": {
        "disableResolveMessage": {
          "type": "boolean",
          "example": false
        },
        "name": {
          "description": "Name is used as grouping key in the UI. Contact points with the\nsame name will be grouped in the UI.",
          "type": "string",
          "example": "webhook_1"
        },
        "provenance": {
          "type": "string",
          "readOnly": true
        },
        "settings": {
          "$ref": "#/definitions/Json"
        },
        "type": {
          "type": "string",
          "enum": [
            "alertmanager",
            "dingding",
            "discord",
            "email",
            "googlechat",
            "kafka",
            "line",
            "opsgenie",
            "pagerduty",
            "pushover",
            "sensugo",
            "slack",
            "teams",
            "telegram",
            "threema",
            "victorops",
            "webhook",
            "wecom"
          ],
          "example": "webhook"
        },
        "uid": {
          "description": "UID is the unique identifier of the contact point. The UID can be\nset by the user.",
          "type": "string",
          "maxLength": 40,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9\\-\\_]+$",
          "example": "my_external_reference"
        }
      }
    },
    "EnumFieldConfig": {
      "description": "Enum field config\nVector values are used as lookup keys into the enum fields",
      "type": "object",
      "properties": {
        "color": {
          "description": "Color is the color value for a given index (empty is undefined)",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": {
          "description": "Description of the enum state",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "icon": {
          "description": "Icon supports setting an icon for a given index value",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "text": {
          "description": "Value is the string display value for a given index",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ErrorType": {
      "type": "string",
      "title": "ErrorType models the different API error types."
    },
    "EvalAlertConditionCommand": {
      "description": "EvalAlertConditionCommand is the command for evaluating a condition",
      "type": "object",
      "properties": {
        "condition": {
          "type": "string"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQuery"
          }
        },
        "now": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "EvalQueriesPayload": {
      "type": "object",
      "properties": {
        "condition": {
          "type": "string"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQuery"
          }
        },
        "now": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "EvalQueriesResponse": {
      "type": "object"
    },
    "ExplorePanelsState": {
      "description": "This is an object constructed with the keys as the values of the enum VisType and the value being a bag of properties"
    },
    "ExtendedReceiver": {
      "type": "object",
      "properties": {
        "email_configs": {
          "$ref": "#/definitions/EmailConfig"
        },
        "grafana_managed_receiver": {
          "$ref": "#/definitions/PostableGrafanaReceiver"
        },
        "opsgenie_configs": {
          "$ref": "#/definitions/OpsGenieConfig"
        },
        "pagerduty_configs": {
          "$ref": "#/definitions/PagerdutyConfig"
        },
        "pushover_configs": {
          "$ref": "#/definitions/PushoverConfig"
        },
        "slack_configs": {
          "$ref": "#/definitions/SlackConfig"
        },
        "victorops_configs": {
          "$ref": "#/definitions/VictorOpsConfig"
        },
        "webhook_configs": {
          "$ref": "#/definitions/WebhookConfig"
        },
        "wechat_configs": {
          "$ref": "#/definitions/WechatConfig"
        }
      }
    },
    "ExtraConfiguration": {
      "type": "object",
      "properties": {
        "alertmanager_config": {
          "type": "string"
        },
        "identifier": {
          "type": "string"
        },
        "merge_matchers": {
          "$ref": "#/definitions/Matchers"
        },
        "template_files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "Failure": {
      "$ref": "#/definitions/ResponseDetails"
    },
    "Field": {
      "description": "A Field is essentially a slice of various types with extra properties and methods.\nSee NewField() for supported types.\n\nThe slice data in the Field is a not exported, so methods on the Field are used to to manipulate its data.",
      "type": "object",
      "title": "Field represents a typed column of data within a Frame.",
      "properties": {
        "config": {
          "$ref": "#/definitions/FieldConfig"
        },
        "labels": {
          "$ref": "#/definitions/FrameLabels"
        },
        "name": {
          "description": "Name is default identifier of the field. The name does not have to be unique, but the combination\nof name and Labels should be unique for proper behavior in all situations.",
          "type": "string"
        }
      }
    },
    "FieldConfig": {
      "type": "object",
      "title": "FieldConfig represents the display properties for a Field.",
      "properties": {
        "color": {
          "description": "Map values to a display color\nNOTE: this interface is under development in the frontend... so simple map for now",
          "type": "object",
          "additionalProperties": {}
        },
        "custom": {
          "description": "Panel Specific Values",
          "type": "object",
          "additionalProperties": {}
        },
        "decimals": {
          "type": "integer",
          "format": "uint16"
        },
        "description": {
          "description": "Description is human readable field metadata",
          "type": "string"
        },
        "displayName": {
          "description": "DisplayName overrides Grafana default naming, should not be used from a data source",
          "type": "string"
        },
        "displayNameFromDS": {
          "description": "DisplayNameFromDS overrides Grafana default naming strategy.",
          "type": "string"
        },
        "filterable": {
          "description": "Filterable indicates if the Field's data can be filtered by additional calls.",
          "type": "boolean"
        },
        "interval": {
          "description": "Interval indicates the expected regular step between values in the series.\nWhen an interval exists, consumers can identify \"missing\" values when the expected value is not present.\nThe grafana timeseries visualization will render disconnected values when missing values are found it the time field.\nThe interval uses the same units as the values.  For time.Time, this is defined in milliseconds.",
          "type": "number",
          "format": "double"
        },
        "links": {
          "description": "The behavior when clicking on a result",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataLink"
          }
        },
        "mappings": {
          "$ref": "#/definitions/ValueMappings"
        },
        "max": {
          "$ref": "#/definitions/ConfFloat64"
        },
        "min": {
          "$ref": "#/definitions/ConfFloat64"
        },
        "noValue": {
          "description": "Alternative to empty string",
          "type": "string"
        },
        "path": {
          "description": "Path is an explicit path to the field in the datasource. When the frame meta includes a path,\nthis will default to `${frame.meta.path}/${field.name}\n\nWhen defined, this value can be used as an identifier within the datasource scope, and\nmay be used as an identifier to update values in a subsequent request",
          "type": "string"
        },
        "thresholds": {
          "$ref": "#/definitions/ThresholdsConfig"
        },
        "type": {
          "$ref": "#/definitions/FieldTypeConfig"
        },
        "unit": {
          "description": "Numeric Options",
          "type": "string"
        },
        "writeable": {
          "description": "Writeable indicates that the datasource knows how to update this value",
          "type": "boolean"
        }
      }
    },
    "FieldTypeConfig": {
      "description": "FieldTypeConfig has type specific configs, only one should be active at a time",
      "type": "object",
      "properties": {
        "enum": {
          "$ref": "#/definitions/EnumFieldConfig"
        }
      }
    },
    "FloatHistogram": {
      "description": "A FloatHistogram is needed by PromQL to handle operations that might result\nin fractional counts. Since the counts in a histogram are unlikely to be too\nlarge to be represented precisely by a float64, a FloatHistogram can also be\nused to represent a histogram with integer counts and thus serves as a more\ngeneralized representation.",
      "type": "object",
      "title": "FloatHistogram is similar to Histogram but uses float64 for all\ncounts. Additionally, bucket counts are absolute and not deltas.",
      "properties": {
        "Count": {
          "description": "Total number of observations. Must be zero or positive.",
          "type": "number",
          "format": "double"
        },
        "CounterResetHint": {
          "$ref": "#/definitions/CounterResetHint"
        },
        "CustomValues": {
          "description": "Holds the custom (usually upper) bounds for bucket definitions, otherwise nil.\nThis slice is interned, to be treated as immutable and copied by reference.\nThese numbers should be strictly increasing. This field is only used when the\nschema is for custom buckets, and the ZeroThreshold, ZeroCount, NegativeSpans\nand NegativeBuckets fields are not used in that case.",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "PositiveBuckets": {
          "description": "Observation counts in buckets. Each represents an absolute count and\nmust be zero or positive.",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "PositiveSpans": {
          "description": "Spans for positive and negative buckets (see Span below).",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Span"
          }
        },
        "Schema": {
          "description": "Currently valid schema numbers are -4 \u003c= n \u003c= 8 for exponential buckets.\nThey are all for base-2 bucket schemas, where 1 is a bucket boundary in\neach case, and then each power of two is divided into 2^n logarithmic buckets.\nOr in other words, each bucket boundary is the previous boundary times\n2^(2^-n). Another valid schema number is -53 for custom buckets, defined by\nthe CustomValues field.",
          "type": "integer",
          "format": "int32"
        },
        "Sum": {
          "description": "Sum of observations. This is also used as the stale marker.",
          "type": "number",
          "format": "double"
        },
        "ZeroCount": {
          "description": "Observations falling into the zero bucket. Must be zero or positive.",
          "type": "number",
          "format": "double"
        },
        "ZeroThreshold": {
          "description": "Width of the zero bucket.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "ForbiddenError": {
      "type": "object",
      "properties": {
        "body": {
          "$ref": "#/definitions/PublicError"
        }
      }
    },
    "Frame": {
      "description": "Each Field is well typed by its FieldType and supports optional Labels.\n\nA Frame is a general data container for Grafana. A Frame can be table data\nor time series data depending on its content and field types.",
      "type": "object",
      "title": "Frame is a columnar data structure where each column is a Field.",
      "properties": {
        "Fields": {
          "description": "Fields are the columns of a frame.\nAll Fields must be of the same the length when marshalling the Frame for transmission.\nThere should be no `nil` entries in the Fields slice (making them pointers was a mistake).",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          }
        },
        "Meta": {
          "$ref": "#/definitions/FrameMeta"
        },
        "Name": {
          "description": "Name is used in some Grafana visualizations.",
          "type": "string"
        },
        "RefID": {
          "description": "RefID is a property that can be set to match a Frame to its originating query.",
          "type": "string"
        }
      }
    },
    "FrameLabels": {
      "description": "Labels are used to add metadata to an object.  The JSON will always be sorted keys",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "FrameMeta": {
      "description": "https://github.com/grafana/grafana/blob/master/packages/grafana-data/src/types/data.ts#L11\nNOTE -- in javascript this can accept any `[key: string]: any;` however\nthis interface only exposes the values we want to be exposed",
      "type": "object",
      "title": "FrameMeta matches:",
      "properties": {
        "channel": {
          "description": "Channel is the path to a stream in grafana live that has real-time updates for this data.",
          "type": "string"
        },
        "custom": {
          "description": "Custom datasource specific values."
        },
        "dataTopic": {
          "$ref": "#/definitions/DataTopic"
        },
        "executedQueryString": {
          "description": "ExecutedQueryString is the raw query sent to the underlying system. All macros and templating\nhave been applied.  When metadata contains this value, it will be shown in the query inspector.",
          "type": "string"
        },
        "notices": {
          "description": "Notices provide additional information about the data in the Frame that\nGrafana can display to the user in the user interface.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Notice"
          }
        },
        "path": {
          "description": "Path is a browsable path on the datasource.",
          "type": "string"
        },
        "pathSeparator": {
          "description": "PathSeparator defines the separator pattern to decode a hierarchy. The default separator is '/'.",
          "type": "string"
        },
        "preferredVisualisationPluginId": {
          "description": "PreferredVisualizationPluginId sets the panel plugin id to use to render the data when using Explore. If\nthe plugin cannot be found will fall back to PreferredVisualization.",
          "type": "string"
        },
        "preferredVisualisationType": {
          "$ref": "#/definitions/VisType"
        },
        "stats": {
          "description": "Stats is an array of query result statistics.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/QueryStat"
          }
        },
        "type": {
          "$ref": "#/definitions/FrameType"
        },
        "typeVersion": {
          "$ref": "#/definitions/FrameTypeVersion"
        },
        "uniqueRowIdFields": {
          "description": "Array of field indices which values create a unique id for each row. Ideally this should be globally unique ID\nbut that isn't guarantied. Should help with keeping track and deduplicating rows in visualizations, especially\nwith streaming data with frequent updates.",
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          },
          "example": "TraceID in Tempo, table name + primary key in SQL"
        }
      }
    },
    "FrameType": {
      "description": "A FrameType string, when present in a frame's metadata, asserts that the\nframe's structure conforms to the FrameType's specification.\nThis property is currently optional, so FrameType may be FrameTypeUnknown even if the properties of\nthe Frame correspond to a defined FrameType.\n+enum",
      "type": "string"
    },
    "FrameTypeVersion": {
      "type": "array",
      "title": "FrameType is a 2 number version (Major / Minor).",
      "items": {
        "type": "integer",
        "format": "uint64"
      }
    },
    "Frames": {
      "description": "It is the main data container within a backend.DataResponse.\nThere should be no `nil` entries in the Frames slice (making them pointers was a mistake).",
      "type": "array",
      "title": "Frames is a slice of Frame pointers.",
      "items": {
        "$ref": "#/definitions/Frame"
      }
    },
    "GettableAlertmanagers": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/definitions/AlertManagersResult"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "GettableApiAlertingConfig": {
      "type": "object",
      "properties": {
        "global": {
          "$ref": "#/definitions/GlobalConfig"
        },
        "inhibit_rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InhibitRule"
          }
        },
        "muteTimeProvenances": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/Provenance"
          }
        },
        "mute_time_intervals": {
          "description": "MuteTimeIntervals is deprecated and will be removed before Alertmanager 1.0.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/MuteTimeInterval"
          }
        },
        "receivers": {
          "description": "Override with our superset receiver type",
          "type": "array",
          "items": {
            "$ref": "#/definitions/GettableApiReceiver"
          }
        },
        "route": {
          "$ref": "#/definitions/Route"
        },
        "templates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "time_intervals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "GettableApiReceiver": {
      "type": "object",
      "properties": {
        "discord_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiscordConfig"
          }
        },
        "email_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/EmailConfig"
          }
        },
        "grafana_managed_receiver_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GettableGrafanaReceiver"
          }
        },
        "jira_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JiraConfig"
          }
        },
        "msteams_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MSTeamsConfig"
          }
        },
        "msteamsv2_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MSTeamsV2Config"
          }
        },
        "name": {
          "description": "A unique identifier for this receiver.",
          "type": "string"
        },
        "opsgenie_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OpsGenieConfig"
          }
        },
        "pagerduty_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PagerdutyConfig"
          }
        },
        "pushover_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PushoverConfig"
          }
        },
        "slack_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SlackConfig"
          }
        },
        "sns_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SNSConfig"
          }
        },
        "telegram_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TelegramConfig"
          }
        },
        "victorops_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VictorOpsConfig"
          }
        },
        "webex_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebexConfig"
          }
        },
        "webhook_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebhookConfig"
          }
        },
        "wechat_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WechatConfig"
          }
        }
      }
    },
    "GettableExtendedRuleNode": {
      "type": "object",
      "properties": {
        "alert": {
          "type": "string"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "expr": {
          "type": "string"
        },
        "for": {
          "type": "string"
        },
        "grafana_alert": {
          "$ref": "#/definitions/GettableGrafanaRule"
        },
        "keep_firing_for": {
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "record": {
          "type": "string"
        }
      }
    },
    "GettableGrafanaReceiver": {
      "type": "object",
      "properties": {
        "disableResolveMessage": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "secureFields": {
          "type": "object",
          "additionalProperties": {
            "type": "boolean"
          }
        },
        "settings": {
          "$ref": "#/definitions/RawMessage"
        },
        "type": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "GettableGrafanaReceivers": {
      "type": "object",
      "properties": {
        "grafana_managed_receiver_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GettableGrafanaReceiver"
          }
        }
      }
    },
    "GettableGrafanaRule": {
      "type": "object",
      "properties": {
        "condition": {
          "type": "string"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQuery"
          }
        },
        "exec_err_state": {
          "type": "string",
          "enum": [
            "OK",
            "Alerting",
            "Error"
          ]
        },
        "guid": {
          "type": "string"
        },
        "intervalSeconds": {
          "type": "integer",
          "format": "int64"
        },
        "is_paused": {
          "type": "boolean"
        },
        "message": {
          "description": "Field is only populated when listing alert rule versions.",
          "type": "string"
        },
        "metadata": {
          "$ref": "#/definitions/AlertRuleMetadata"
        },
        "missing_series_evals_to_resolve": {
          "type": "integer",
          "format": "int64"
        },
        "namespace_uid": {
          "type": "string"
        },
        "no_data_state": {
          "type": "string",
          "enum": [
            "Alerting",
            "NoData",
            "OK"
          ]
        },
        "notification_settings": {
          "$ref": "#/definitions/AlertRuleNotificationSettings"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "record": {
          "$ref": "#/definitions/Record"
        },
        "rule_group": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        },
        "updated": {
          "type": "string",
          "format": "date-time"
        },
        "updated_by": {
          "$ref": "#/definitions/UserInfo"
        },
        "version": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "GettableHistoricUserConfig": {
      "type": "object",
      "properties": {
        "alertmanager_config": {
          "$ref": "#/definitions/GettableApiAlertingConfig"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "last_applied": {
          "type": "string",
          "format": "date-time"
        },
        "template_file_provenances": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/Provenance"
          }
        },
        "template_files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GettableNGalertConfig": {
      "type": "object",
      "properties": {
        "alertmanagersChoice": {
          "type": "string",
          "enum": [
            "all",
            "internal",
            "external"
          ]
        }
      }
    },
    "GettableRuleGroupConfig": {
      "type": "object",
      "properties": {
        "align_evaluation_time_on_interval": {
          "type": "boolean"
        },
        "evaluation_delay": {
          "type": "string"
        },
        "interval": {
          "$ref": "#/definitions/Duration"
        },
        "limit": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "query_offset": {
          "type": "string"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GettableExtendedRuleNode"
          }
        },
        "source_tenants": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GettableRuleVersions": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/GettableExtendedRuleNode"
      }
    },
    "GettableStatus": {
      "type": "object",
      "required": [
        "cluster",
        "config",
        "uptime",
        "versionInfo"
      ],
      "properties": {
        "cluster": {
          "$ref": "#/definitions/clusterStatus"
        },
        "config": {
          "$ref": "#/definitions/PostableApiAlertingConfig"
        },
        "uptime": {
          "description": "uptime",
          "type": "string",
          "format": "date-time"
        },
        "versionInfo": {
          "$ref": "#/definitions/versionInfo"
        }
      }
    },
    "GettableUserConfig": {
      "type": "object",
      "properties": {
        "alertmanager_config": {
          "$ref": "#/definitions/GettableApiAlertingConfig"
        },
        "extra_config": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ExtraConfiguration"
          }
        },
        "template_file_provenances": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/Provenance"
          }
        },
        "template_files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GlobalConfig": {
      "description": "GlobalConfig defines configuration parameters that are valid globally\nunless overwritten.",
      "type": "object",
      "properties": {
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "jira_api_url": {
          "$ref": "#/definitions/URL"
        },
        "opsgenie_api_key": {
          "$ref": "#/definitions/Secret"
        },
        "opsgenie_api_key_file": {
          "type": "string"
        },
        "opsgenie_api_url": {
          "$ref": "#/definitions/URL"
        },
        "pagerduty_url": {
          "$ref": "#/definitions/URL"
        },
        "resolve_timeout": {
          "$ref": "#/definitions/Duration"
        },
        "slack_api_url": {
          "$ref": "#/definitions/SecretURL"
        },
        "slack_api_url_file": {
          "type": "string"
        },
        "smtp_auth_identity": {
          "type": "string"
        },
        "smtp_auth_password": {
          "$ref": "#/definitions/Secret"
        },
        "smtp_auth_password_file": {
          "type": "string"
        },
        "smtp_auth_secret": {
          "$ref": "#/definitions/Secret"
        },
        "smtp_auth_username": {
          "type": "string"
        },
        "smtp_from": {
          "type": "string"
        },
        "smtp_hello": {
          "type": "string"
        },
        "smtp_require_tls": {
          "type": "boolean"
        },
        "smtp_smarthost": {
          "$ref": "#/definitions/HostPort"
        },
        "smtp_tls_config": {
          "$ref": "#/definitions/TLSConfig"
        },
        "telegram_api_url": {
          "$ref": "#/definitions/URL"
        },
        "victorops_api_key": {
          "$ref": "#/definitions/Secret"
        },
        "victorops_api_key_file": {
          "type": "string"
        },
        "victorops_api_url": {
          "$ref": "#/definitions/URL"
        },
        "webex_api_url": {
          "$ref": "#/definitions/URL"
        },
        "wechat_api_corp_id": {
          "type": "string"
        },
        "wechat_api_secret": {
          "$ref": "#/definitions/Secret"
        },
        "wechat_api_url": {
          "$ref": "#/definitions/URL"
        }
      }
    },
    "HTTPClientConfig": {
      "type": "object",
      "title": "HTTPClientConfig configures an HTTP client.",
      "properties": {
        "authorization": {
          "$ref": "#/definitions/Authorization"
        },
        "basic_auth": {
          "$ref": "#/definitions/BasicAuth"
        },
        "bearer_token": {
          "$ref": "#/definitions/Secret"
        },
        "bearer_token_file": {
          "description": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.",
          "type": "string"
        },
        "enable_http2": {
          "description": "EnableHTTP2 specifies whether the client should configure HTTP2.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
          "type": "boolean"
        },
        "follow_redirects": {
          "description": "FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\nThe omitempty flag is not set, because it would be hidden from the\nmarshalled configuration when set to false.",
          "type": "boolean"
        },
        "http_headers": {
          "$ref": "#/definitions/Headers"
        },
        "no_proxy": {
          "description": "NoProxy contains addresses that should not use a proxy.",
          "type": "string"
        },
        "oauth2": {
          "$ref": "#/definitions/OAuth2"
        },
        "proxy_connect_header": {
          "$ref": "#/definitions/ProxyHeader"
        },
        "proxy_from_environment": {
          "description": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
          "type": "boolean"
        },
        "proxy_url": {
          "$ref": "#/definitions/URL"
        },
        "tls_config": {
          "$ref": "#/definitions/TLSConfig"
        }
      }
    },
    "Header": {
      "type": "object",
      "title": "Header represents the configuration for a single HTTP header.",
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "secrets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Secret"
          }
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Headers": {
      "type": "object",
      "title": "Headers represents the configuration for HTTP headers.",
      "properties": {
        "Headers": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/Header"
          }
        }
      }
    },
    "HostPort": {
      "type": "object",
      "title": "HostPort represents a \"host:port\" network address.",
      "properties": {
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "string"
        }
      }
    },
    "InhibitRule": {
      "description": "InhibitRule defines an inhibition rule that mutes alerts that match the\ntarget labels if an alert matching the source labels exists.\nBoth alerts have to have a set of labels being equal.",
      "type": "object",
      "properties": {
        "equal": {
          "description": "A set of labels that must be equal between the source and target alert\nfor them to be a match.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "source_match": {
          "description": "SourceMatch defines a set of labels that have to equal the given\nvalue for source alerts. Deprecated. Remove before v1.0 release.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "source_match_re": {
          "$ref": "#/definitions/MatchRegexps"
        },
        "source_matchers": {
          "$ref": "#/definitions/Matchers"
        },
        "target_match": {
          "description": "TargetMatch defines a set of labels that have to equal the given\nvalue for target alerts. Deprecated. Remove before v1.0 release.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "target_match_re": {
          "$ref": "#/definitions/MatchRegexps"
        },
        "target_matchers": {
          "$ref": "#/definitions/Matchers"
        }
      }
    },
    "InspectType": {
      "type": "integer",
      "format": "int64",
      "title": "InspectType is a type for the Inspect property of a Notice."
    },
    "IntegrationStatus": {
      "type": "object",
      "properties": {
        "lastNotifyAttempt": {
          "description": "A timestamp indicating the last attempt to deliver a notification regardless of the outcome.\nFormat: date-time",
          "type": "string",
          "format": "date-time"
        },
        "lastNotifyAttemptDuration": {
          "description": "Duration of the last attempt to deliver a notification in humanized format (`1s` or `15ms`, etc).",
          "type": "string"
        },
        "lastNotifyAttemptError": {
          "description": "Error string for the last attempt to deliver a notification. Empty if the last attempt was successful.",
          "type": "string"
        },
        "name": {
          "description": "Name of the integration.",
          "type": "string"
        },
        "sendResolved": {
          "description": "Whether the integration is configured to send resolved notifications.",
          "type": "boolean"
        }
      }
    },
    "InternalDataLink": {
      "description": "InternalDataLink definition to allow Explore links to be constructed in the backend",
      "type": "object",
      "properties": {
        "datasourceName": {
          "type": "string"
        },
        "datasourceUid": {
          "type": "string"
        },
        "panelsState": {
          "$ref": "#/definitions/ExplorePanelsState"
        },
        "query": {},
        "timeRange": {
          "$ref": "#/definitions/TimeRange"
        },
        "transformations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LinkTransformationConfig"
          }
        }
      }
    },
    "JiraConfig": {
      "type": "object",
      "properties": {
        "api_url": {
          "$ref": "#/definitions/URL"
        },
        "custom_fields": {
          "type": "object",
          "additionalProperties": {}
        },
        "description": {
          "type": "string"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "issue_type": {
          "type": "string"
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "priority": {
          "type": "string"
        },
        "project": {
          "type": "string"
        },
        "reopen_duration": {
          "$ref": "#/definitions/Duration"
        },
        "reopen_transition": {
          "type": "string"
        },
        "resolve_transition": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "summary": {
          "type": "string"
        },
        "wont_fix_resolution": {
          "type": "string"
        }
      }
    },
    "Json": {
      "type": "object"
    },
    "Label": {
      "type": "object",
      "title": "Label is a key/value pair of strings.",
      "properties": {
        "Name": {
          "type": "string"
        }
      }
    },
    "LabelSet": {
      "description": "A LabelSet is a collection of LabelName and LabelValue pairs.  The LabelSet\nmay be fully-qualified down to the point where it may resolve to a single\nMetric in the data store or not.  All operations that occur within the realm\nof a LabelSet can emit a vector of Metric entities to which the LabelSet may\nmatch.",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/LabelValue"
      }
    },
    "LabelValue": {
      "type": "string",
      "title": "A LabelValue is an associated value for a LabelName."
    },
    "Labels": {
      "description": "Labels is a sorted set of labels. Order has to be guaranteed upon\ninstantiation.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/Label"
      }
    },
    "LinkTransformationConfig": {
      "type": "object",
      "properties": {
        "expression": {
          "type": "string"
        },
        "field": {
          "type": "string"
        },
        "mapValue": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/SupportedTransformationTypes"
        }
      }
    },
    "MSTeamsConfig": {
      "type": "object",
      "properties": {
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "summary": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "webhook_url": {
          "$ref": "#/definitions/SecretURL"
        },
        "webhook_url_file": {
          "type": "string"
        }
      }
    },
    "MSTeamsV2Config": {
      "type": "object",
      "properties": {
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "text": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "webhook_url": {
          "$ref": "#/definitions/SecretURL"
        },
        "webhook_url_file": {
          "type": "string"
        }
      }
    },
    "MatchRegexps": {
      "type": "object",
      "title": "MatchRegexps represents a map of Regexp.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "MatchType": {
      "type": "integer",
      "format": "int64",
      "title": "MatchType is an enum for label matching types."
    },
    "Matcher": {
      "type": "object",
      "title": "Matcher models the matching of a label.",
      "properties": {
        "Name": {
          "type": "string"
        },
        "Type": {
          "$ref": "#/definitions/MatchType"
        },
        "Value": {
          "type": "string"
        }
      }
    },
    "Matchers": {
      "description": "Matchers is a slice of Matchers that is sortable, implements Stringer, and\nprovides a Matches method to match a LabelSet against all Matchers in the\nslice. Note that some users of Matchers might require it to be sorted.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/Matcher"
      },
      "$ref": "#/definitions/Matchers"
    },
    "MultiStatus": {
      "type": "object"
    },
    "MuteTimeInterval": {
      "type": "object",
      "title": "MuteTimeInterval represents a named set of time intervals for which a route should be muted.",
      "properties": {
        "name": {
          "type": "string"
        },
        "time_intervals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "MuteTimeIntervalExport": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "orgId": {
          "type": "integer",
          "format": "int64"
        },
        "time_intervals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "MuteTimings": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/MuteTimeInterval"
      }
    },
    "NamespaceConfigResponse": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/GettableRuleGroupConfig"
        }
      }
    },
    "NotFound": {
      "type": "object"
    },
    "Notice": {
      "type": "object",
      "title": "Notice provides a structure for presenting notifications in Grafana's user interface.",
      "properties": {
        "inspect": {
          "$ref": "#/definitions/InspectType"
        },
        "link": {
          "description": "Link is an optional link for display in the user interface and can be an\nabsolute URL or a path relative to Grafana's root url.",
          "type": "string"
        },
        "severity": {
          "$ref": "#/definitions/NoticeSeverity"
        },
        "text": {
          "description": "Text is freeform descriptive text for the notice.",
          "type": "string"
        }
      }
    },
    "NoticeSeverity": {
      "type": "integer",
      "format": "int64",
      "title": "NoticeSeverity is a type for the Severity property of a Notice."
    },
    "NotificationPolicyExport": {
      "type": "object",
      "title": "NotificationPolicyExport is the provisioned file export of alerting.NotificiationPolicyV1.",
      "properties": {
        "active_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "continue": {
          "type": "boolean"
        },
        "group_by": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "group_interval": {
          "type": "string"
        },
        "group_wait": {
          "type": "string"
        },
        "match": {
          "description": "Deprecated. Remove before v1.0 release.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "match_re": {
          "$ref": "#/definitions/MatchRegexps"
        },
        "matchers": {
          "$ref": "#/definitions/Matchers"
        },
        "mute_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "object_matchers": {
          "$ref": "#/definitions/ObjectMatchers"
        },
        "orgId": {
          "type": "integer",
          "format": "int64"
        },
        "receiver": {
          "type": "string"
        },
        "repeat_interval": {
          "type": "string"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RouteExport"
          }
        }
      }
    },
    "NotificationTemplate": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "template": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "NotificationTemplateContent": {
      "type": "object",
      "properties": {
        "template": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "NotificationTemplates": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/NotificationTemplate"
      }
    },
    "NotifierConfig": {
      "type": "object",
      "title": "NotifierConfig contains base options common across all notifier configurations.",
      "properties": {
        "send_resolved": {
          "type": "boolean"
        }
      }
    },
    "OAuth2": {
      "type": "object",
      "title": "OAuth2 is the oauth2 client configuration.",
      "properties": {
        "TLSConfig": {
          "$ref": "#/definitions/TLSConfig"
        },
        "audience": {
          "description": "Audience optionally specifies the intended audience of the\nrequest.  If empty, the value of TokenURL is used as the\nintended audience. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
          "type": "string"
        },
        "claims": {
          "description": "Claims is a map of claims to be added to the JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
          "type": "object",
          "additionalProperties": {}
        },
        "client_certificate_key": {
          "$ref": "#/definitions/Secret"
        },
        "client_certificate_key_file": {
          "type": "string"
        },
        "client_certificate_key_id": {
          "type": "string"
        },
        "client_certificate_key_ref": {
          "description": "ClientCertificateKeyRef is the name of the secret within the secret manager to use as the client\nsecret.",
          "type": "string"
        },
        "client_id": {
          "type": "string"
        },
        "client_secret": {
          "$ref": "#/definitions/Secret"
        },
        "client_secret_file": {
          "type": "string"
        },
        "client_secret_ref": {
          "description": "ClientSecretRef is the name of the secret within the secret manager to use as the client\nsecret.",
          "type": "string"
        },
        "endpoint_params": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "grant_type": {
          "description": "GrantType is the OAuth2 grant type to use. It can be one of\n\"client_credentials\" or \"urn:ietf:params:oauth:grant-type:jwt-bearer\" (RFC 7523).\nDefault value is \"client_credentials\"",
          "type": "string"
        },
        "iss": {
          "description": "Iss is the OAuth client identifier used when communicating with\nthe configured OAuth provider. Default value is client_id. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".",
          "type": "string"
        },
        "no_proxy": {
          "description": "NoProxy contains addresses that should not use a proxy.",
          "type": "string"
        },
        "proxy_connect_header": {
          "$ref": "#/definitions/ProxyHeader"
        },
        "proxy_from_environment": {
          "description": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
          "type": "boolean"
        },
        "proxy_url": {
          "$ref": "#/definitions/URL"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "signature_algorithm": {
          "description": "SignatureAlgorithm is the RSA algorithm used to sign JWT token. Only used if\nGrantType is set to \"urn:ietf:params:oauth:grant-type:jwt-bearer\".\nDefault value is RS256 and valid values RS256, RS384, RS512",
          "type": "string"
        },
        "token_url": {
          "type": "string"
        }
      }
    },
    "ObjectMatcher": {
      "type": "array",
      "title": "ObjectMatcher is a matcher that can be used to filter alerts.",
      "items": {
        "type": "string"
      }
    },
    "ObjectMatchers": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/ObjectMatcher"
      }
    },
    "OpsGenieConfig": {
      "type": "object",
      "title": "OpsGenieConfig configures notifications via OpsGenie.",
      "properties": {
        "actions": {
          "type": "string"
        },
        "api_key": {
          "$ref": "#/definitions/Secret"
        },
        "api_key_file": {
          "type": "string"
        },
        "api_url": {
          "$ref": "#/definitions/URL"
        },
        "description": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "entity": {
          "type": "string"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "priority": {
          "type": "string"
        },
        "responders": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OpsGenieConfigResponder"
          }
        },
        "send_resolved": {
          "type": "boolean"
        },
        "source": {
          "type": "string"
        },
        "tags": {
          "type": "string"
        },
        "update_alerts": {
          "type": "boolean"
        }
      }
    },
    "OpsGenieConfigResponder": {
      "type": "object",
      "properties": {
        "id": {
          "description": "One of those 3 should be filled.",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "description": "team, user, escalation, schedule etc.",
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      }
    },
    "PagerdutyConfig": {
      "type": "object",
      "title": "PagerdutyConfig configures notifications via PagerDuty.",
      "properties": {
        "class": {
          "type": "string"
        },
        "client": {
          "type": "string"
        },
        "client_url": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "group": {
          "type": "string"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PagerdutyImage"
          }
        },
        "links": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PagerdutyLink"
          }
        },
        "routing_key": {
          "$ref": "#/definitions/Secret"
        },
        "routing_key_file": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "service_key": {
          "$ref": "#/definitions/Secret"
        },
        "service_key_file": {
          "type": "string"
        },
        "severity": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "url": {
          "$ref": "#/definitions/URL"
        }
      }
    },
    "PagerdutyImage": {
      "type": "object",
      "title": "PagerdutyImage is an image.",
      "properties": {
        "alt": {
          "type": "string"
        },
        "href": {
          "type": "string"
        },
        "src": {
          "type": "string"
        }
      }
    },
    "PagerdutyLink": {
      "type": "object",
      "title": "PagerdutyLink is a link.",
      "properties": {
        "href": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "PermissionDenied": {
      "type": "object"
    },
    "PostableApiAlertingConfig": {
      "description": "nolint:revive",
      "type": "object",
      "properties": {
        "global": {
          "$ref": "#/definitions/GlobalConfig"
        },
        "inhibit_rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InhibitRule"
          }
        },
        "mute_time_intervals": {
          "description": "MuteTimeIntervals is deprecated and will be removed before Alertmanager 1.0.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/MuteTimeInterval"
          }
        },
        "receivers": {
          "description": "Override with our superset receiver type",
          "type": "array",
          "items": {
            "$ref": "#/definitions/PostableApiReceiver"
          }
        },
        "route": {
          "$ref": "#/definitions/Route"
        },
        "templates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "time_intervals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "PostableApiReceiver": {
      "description": "nolint:revive",
      "type": "object",
      "properties": {
        "discord_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiscordConfig"
          }
        },
        "email_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/EmailConfig"
          }
        },
        "grafana_managed_receiver_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PostableGrafanaReceiver"
          }
        },
        "jira_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JiraConfig"
          }
        },
        "msteams_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MSTeamsConfig"
          }
        },
        "msteamsv2_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MSTeamsV2Config"
          }
        },
        "name": {
          "description": "A unique identifier for this receiver.",
          "type": "string"
        },
        "opsgenie_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OpsGenieConfig"
          }
        },
        "pagerduty_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PagerdutyConfig"
          }
        },
        "pushover_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PushoverConfig"
          }
        },
        "slack_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SlackConfig"
          }
        },
        "sns_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SNSConfig"
          }
        },
        "telegram_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TelegramConfig"
          }
        },
        "victorops_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VictorOpsConfig"
          }
        },
        "webex_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebexConfig"
          }
        },
        "webhook_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebhookConfig"
          }
        },
        "wechat_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WechatConfig"
          }
        }
      }
    },
    "PostableExtendedRuleNode": {
      "type": "object",
      "properties": {
        "alert": {
          "type": "string"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "expr": {
          "type": "string"
        },
        "for": {
          "type": "string"
        },
        "grafana_alert": {
          "$ref": "#/definitions/PostableGrafanaRule"
        },
        "keep_firing_for": {
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "record": {
          "type": "string"
        }
      }
    },
    "PostableExtendedRuleNodeExtended": {
      "type": "object",
      "required": [
        "rule"
      ],
      "properties": {
        "folderTitle": {
          "type": "string",
          "example": "project_x"
        },
        "folderUid": {
          "type": "string",
          "example": "okrd3I0Vz"
        },
        "rule": {
          "$ref": "#/definitions/PostableExtendedRuleNode"
        },
        "ruleGroup": {
          "type": "string",
          "example": "eval_group_1"
        }
      }
    },
    "PostableGrafanaReceiver": {
      "type": "object",
      "properties": {
        "disableResolveMessage": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "secureSettings": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "settings": {
          "$ref": "#/definitions/RawMessage"
        },
        "type": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "PostableGrafanaReceivers": {
      "type": "object",
      "properties": {
        "grafana_managed_receiver_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PostableGrafanaReceiver"
          }
        }
      }
    },
    "PostableGrafanaRule": {
      "type": "object",
      "properties": {
        "condition": {
          "type": "string"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQuery"
          }
        },
        "exec_err_state": {
          "type": "string",
          "enum": [
            "OK",
            "Alerting",
            "Error"
          ]
        },
        "is_paused": {
          "type": "boolean"
        },
        "metadata": {
          "$ref": "#/definitions/AlertRuleMetadata"
        },
        "missing_series_evals_to_resolve": {
          "description": "Number of consecutive evaluation intervals with no data for a dimension must pass\nbefore the alert state is considered stale and automatically resolved.\nIf set to 0, the value is reset to the default.",
          "type": "integer",
          "format": "int64",
          "example": 3
        },
        "no_data_state": {
          "type": "string",
          "enum": [
            "Alerting",
            "NoData",
            "OK"
          ]
        },
        "notification_settings": {
          "$ref": "#/definitions/AlertRuleNotificationSettings"
        },
        "record": {
          "$ref": "#/definitions/Record"
        },
        "title": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "PostableNGalertConfig": {
      "type": "object",
      "properties": {
        "alertmanagersChoice": {
          "type": "string",
          "enum": [
            "all",
            "internal",
            "external"
          ]
        }
      }
    },
    "PostableRuleGroupConfig": {
      "type": "object",
      "properties": {
        "align_evaluation_time_on_interval": {
          "type": "boolean"
        },
        "evaluation_delay": {
          "type": "string"
        },
        "interval": {
          "$ref": "#/definitions/Duration"
        },
        "limit": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "query_offset": {
          "type": "string"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PostableExtendedRuleNode"
          }
        },
        "source_tenants": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "PostableUserConfig": {
      "type": "object",
      "properties": {
        "alertmanager_config": {
          "$ref": "#/definitions/PostableApiAlertingConfig"
        },
        "extra_config": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ExtraConfiguration"
          }
        },
        "template_files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "PrometheusNamespace": {
      "type": "object",
      "properties": {
        "Body": {
          "description": "in: body",
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/PrometheusRuleGroup"
            }
          }
        }
      }
    },
    "PrometheusRule": {
      "type": "object",
      "properties": {
        "alert": {
          "type": "string"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "expr": {
          "type": "string"
        },
        "for": {
          "type": "string"
        },
        "keep_firing_for": {
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "record": {
          "type": "string"
        }
      }
    },
    "PrometheusRuleGroup": {
      "type": "object",
      "properties": {
        "interval": {
          "$ref": "#/definitions/Duration"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "limit": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "query_offset": {
          "type": "string"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PrometheusRule"
          }
        }
      }
    },
    "Provenance": {
      "type": "string"
    },
    "ProvisionedAlertRule": {
      "type": "object",
      "required": [
        "orgID",
        "folderUID",
        "ruleGroup",
        "title",
        "condition",
        "data",
        "noDataState",
        "execErrState",
        "for"
      ],
      "properties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "example": {
            "runbook_url": "https://supercoolrunbook.com/page/13"
          }
        },
        "condition": {
          "type": "string",
          "example": "A"
        },
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertQuery"
          },
          "example": [
            {
              "datasourceUid": "__expr__",
              "model": {
                "conditions": [
                  {
                    "evaluator": {
                      "params": [
                        0,
                        0
                      ],
                      "type": "gt"
                    },
                    "operator": {
                      "type": "and"
                    },
                    "query": {
                      "params": []
                    },
                    "reducer": {
                      "params": [],
                      "type": "avg"
                    },
                    "type": "query"
                  }
                ],
                "datasource": {
                  "type": "__expr__",
                  "uid": "__expr__"
                },
                "expression": "1 == 1",
                "hide": false,
                "intervalMs": 1000,
                "maxDataPoints": 43200,
                "refId": "A",
                "type": "math"
              },
              "queryType": "",
              "refId": "A",
              "relativeTimeRange": {
                "from": 0,
                "to": 0
              }
            }
          ]
        },
        "execErrState": {
          "type": "string",
          "enum": [
            "OK",
            "Alerting",
            "Error"
          ]
        },
        "folderUID": {
          "type": "string",
          "example": "project_x"
        },
        "for": {
          "type": "string",
          "format": "duration"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "isPaused": {
          "type": "boolean",
          "example": false
        },
        "keep_firing_for": {
          "type": "string",
          "format": "duration"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "example": {
            "team": "sre-team-1"
          }
        },
        "missingSeriesEvalsToResolve": {
          "type": "integer",
          "format": "int64",
          "example": 2
        },
        "noDataState": {
          "type": "string",
          "enum": [
            "Alerting",
            "NoData",
            "OK"
          ]
        },
        "notification_settings": {
          "$ref": "#/definitions/AlertRuleNotificationSettings"
        },
        "orgID": {
          "type": "integer",
          "format": "int64"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "record": {
          "$ref": "#/definitions/Record"
        },
        "ruleGroup": {
          "type": "string",
          "maxLength": 190,
          "minLength": 1,
          "example": "eval_group_1"
        },
        "title": {
          "type": "string",
          "maxLength": 190,
          "minLength": 1,
          "example": "Always firing"
        },
        "uid": {
          "type": "string",
          "maxLength": 40,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9-_]+$"
        },
        "updated": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      }
    },
    "ProvisionedAlertRules": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/ProvisionedAlertRule"
      }
    },
    "ProxyConfig": {
      "type": "object",
      "properties": {
        "no_proxy": {
          "description": "NoProxy contains addresses that should not use a proxy.",
          "type": "string"
        },
        "proxy_connect_header": {
          "$ref": "#/definitions/ProxyHeader"
        },
        "proxy_from_environment": {
          "description": "ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function\nto determine proxies.",
          "type": "boolean"
        },
        "proxy_url": {
          "$ref": "#/definitions/URL"
        }
      }
    },
    "ProxyHeader": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Secret"
        }
      }
    },
    "PublicError": {
      "description": "PublicError is derived from Error and only contains information\navailable to the end user.",
      "type": "object",
      "properties": {
        "extra": {
          "type": "object",
          "additionalProperties": {}
        },
        "message": {
          "type": "string"
        },
        "messageId": {
          "type": "string"
        },
        "statusCode": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "PushoverConfig": {
      "type": "object",
      "properties": {
        "device": {
          "type": "string"
        },
        "expire": {
          "type": "string"
        },
        "html": {
          "type": "boolean"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "priority": {
          "type": "string"
        },
        "retry": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "sound": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "token": {
          "$ref": "#/definitions/Secret"
        },
        "token_file": {
          "type": "string"
        },
        "ttl": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "url_title": {
          "type": "string"
        },
        "user_key": {
          "$ref": "#/definitions/Secret"
        },
        "user_key_file": {
          "type": "string"
        }
      }
    },
    "QueryStat": {
      "description": "The embedded FieldConfig's display name must be set.\nIt corresponds to the QueryResultMetaStat on the frontend (https://github.com/grafana/grafana/blob/master/packages/grafana-data/src/types/data.ts#L53).",
      "type": "object",
      "title": "QueryStat is used for storing arbitrary statistics metadata related to a query and its result, e.g. total request time, data processing time.",
      "properties": {
        "color": {
          "description": "Map values to a display color\nNOTE: this interface is under development in the frontend... so simple map for now",
          "type": "object",
          "additionalProperties": {}
        },
        "custom": {
          "description": "Panel Specific Values",
          "type": "object",
          "additionalProperties": {}
        },
        "decimals": {
          "type": "integer",
          "format": "uint16"
        },
        "description": {
          "description": "Description is human readable field metadata",
          "type": "string"
        },
        "displayName": {
          "description": "DisplayName overrides Grafana default naming, should not be used from a data source",
          "type": "string"
        },
        "displayNameFromDS": {
          "description": "DisplayNameFromDS overrides Grafana default naming strategy.",
          "type": "string"
        },
        "filterable": {
          "description": "Filterable indicates if the Field's data can be filtered by additional calls.",
          "type": "boolean"
        },
        "interval": {
          "description": "Interval indicates the expected regular step between values in the series.\nWhen an interval exists, consumers can identify \"missing\" values when the expected value is not present.\nThe grafana timeseries visualization will render disconnected values when missing values are found it the time field.\nThe interval uses the same units as the values.  For time.Time, this is defined in milliseconds.",
          "type": "number",
          "format": "double"
        },
        "links": {
          "description": "The behavior when clicking on a result",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataLink"
          }
        },
        "mappings": {
          "$ref": "#/definitions/ValueMappings"
        },
        "max": {
          "$ref": "#/definitions/ConfFloat64"
        },
        "min": {
          "$ref": "#/definitions/ConfFloat64"
        },
        "noValue": {
          "description": "Alternative to empty string",
          "type": "string"
        },
        "path": {
          "description": "Path is an explicit path to the field in the datasource. When the frame meta includes a path,\nthis will default to `${frame.meta.path}/${field.name}\n\nWhen defined, this value can be used as an identifier within the datasource scope, and\nmay be used as an identifier to update values in a subsequent request",
          "type": "string"
        },
        "thresholds": {
          "$ref": "#/definitions/ThresholdsConfig"
        },
        "type": {
          "$ref": "#/definitions/FieldTypeConfig"
        },
        "unit": {
          "description": "Numeric Options",
          "type": "string"
        },
        "value": {
          "type": "number",
          "format": "double"
        },
        "writeable": {
          "description": "Writeable indicates that the datasource knows how to update this value",
          "type": "boolean"
        }
      }
    },
    "RawMessage": {
      "type": "object"
    },
    "Receiver": {
      "type": "object",
      "title": "Receiver configuration provides configuration on how to contact a receiver.",
      "properties": {
        "discord_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiscordConfig"
          }
        },
        "email_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/EmailConfig"
          }
        },
        "jira_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JiraConfig"
          }
        },
        "msteams_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MSTeamsConfig"
          }
        },
        "msteamsv2_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MSTeamsV2Config"
          }
        },
        "name": {
          "description": "A unique identifier for this receiver.",
          "type": "string"
        },
        "opsgenie_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OpsGenieConfig"
          }
        },
        "pagerduty_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PagerdutyConfig"
          }
        },
        "pushover_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PushoverConfig"
          }
        },
        "slack_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SlackConfig"
          }
        },
        "sns_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SNSConfig"
          }
        },
        "telegram_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TelegramConfig"
          }
        },
        "victorops_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VictorOpsConfig"
          }
        },
        "webex_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebexConfig"
          }
        },
        "webhook_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebhookConfig"
          }
        },
        "wechat_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WechatConfig"
          }
        }
      }
    },
    "ReceiverExport": {
      "type": "object",
      "title": "ReceiverExport is the provisioned file export of alerting.ReceiverV1.",
      "properties": {
        "disableResolveMessage": {
          "type": "boolean"
        },
        "settings": {
          "$ref": "#/definitions/RawMessage"
        },
        "type": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "ReceiverStatus": {
      "type": "object",
      "properties": {
        "active": {
          "description": "Whether the receiver is used in a route or not.",
          "type": "boolean"
        },
        "integrations": {
          "description": "Integrations configured for this receiver.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/IntegrationStatus"
          }
        },
        "name": {
          "description": "Name of the receiver.",
          "type": "string"
        }
      }
    },
    "Record": {
      "type": "object",
      "required": [
        "metric",
        "from"
      ],
      "properties": {
        "from": {
          "description": "Which expression node should be used as the input for the recorded metric.",
          "type": "string",
          "example": "A"
        },
        "metric": {
          "description": "Name of the recorded metric.",
          "type": "string",
          "example": "grafana_alerts_ratio"
        },
        "target_datasource_uid": {
          "description": "Which data source should be used to write the output of the recording rule, specified by UID.",
          "type": "string",
          "example": "my-prom"
        }
      }
    },
    "RelativeTimeRange": {
      "description": "RelativeTimeRange is the per query start and end time\nfor requests.",
      "type": "object",
      "properties": {
        "from": {
          "$ref": "#/definitions/Duration"
        },
        "to": {
          "$ref": "#/definitions/Duration"
        }
      }
    },
    "RelativeTimeRangeExport": {
      "type": "object",
      "properties": {
        "from": {
          "type": "integer",
          "format": "int64"
        },
        "to": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ResponseDetails": {
      "type": "object",
      "properties": {
        "msg": {
          "type": "string"
        }
      }
    },
    "Responses": {
      "description": "The QueryData method the QueryDataHandler method will set the RefId\nproperty on the DataResponses' frames based on these RefIDs.",
      "type": "object",
      "title": "Responses is a map of RefIDs (Unique Query ID) to DataResponses.",
      "additionalProperties": {
        "$ref": "#/definitions/DataResponse"
      }
    },
    "Route": {
      "description": "A Route is a node that contains definitions of how to handle alerts. This is modified\nfrom the upstream alertmanager in that it adds the ObjectMatchers property.",
      "type": "object",
      "properties": {
        "active_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "continue": {
          "type": "boolean"
        },
        "group_by": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "group_interval": {
          "type": "string"
        },
        "group_wait": {
          "type": "string"
        },
        "match": {
          "description": "Deprecated. Remove before v1.0 release.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "match_re": {
          "$ref": "#/definitions/MatchRegexps"
        },
        "matchers": {
          "$ref": "#/definitions/Matchers"
        },
        "mute_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "object_matchers": {
          "$ref": "#/definitions/ObjectMatchers"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "receiver": {
          "type": "string"
        },
        "repeat_interval": {
          "type": "string"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Route"
          }
        }
      }
    },
    "RouteExport": {
      "description": "RouteExport is the provisioned file export of definitions.Route. This is needed to hide fields that aren't useable in\nprovisioning file format. An alternative would be to define a custom MarshalJSON and MarshalYAML that excludes them.",
      "type": "object",
      "properties": {
        "active_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "continue": {
          "type": "boolean"
        },
        "group_by": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "group_interval": {
          "type": "string"
        },
        "group_wait": {
          "type": "string"
        },
        "match": {
          "description": "Deprecated. Remove before v1.0 release.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "match_re": {
          "$ref": "#/definitions/MatchRegexps"
        },
        "matchers": {
          "$ref": "#/definitions/Matchers"
        },
        "mute_time_intervals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "object_matchers": {
          "$ref": "#/definitions/ObjectMatchers"
        },
        "receiver": {
          "type": "string"
        },
        "repeat_interval": {
          "type": "string"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RouteExport"
          }
        }
      }
    },
    "Rule": {
      "description": "adapted from cortex",
      "type": "object",
      "required": [
        "name",
        "query",
        "health",
        "type"
      ],
      "properties": {
        "evaluationTime": {
          "type": "number",
          "format": "double"
        },
        "folderUid": {
          "type": "string"
        },
        "health": {
          "type": "string"
        },
        "isPaused": {
          "type": "boolean"
        },
        "labels": {
          "$ref": "#/definitions/Labels"
        },
        "lastError": {
          "type": "string"
        },
        "lastEvaluation": {
          "type": "string",
          "format": "date-time"
        },
        "name": {
          "type": "string"
        },
        "notificationSettings": {
          "$ref": "#/definitions/AlertRuleNotificationSettings"
        },
        "provenance": {
          "$ref": "#/definitions/Provenance"
        },
        "query": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "RuleDiscovery": {
      "type": "object",
      "required": [
        "groups"
      ],
      "properties": {
        "groupNextToken": {
          "type": "string"
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RuleGroup"
          }
        },
        "totals": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          }
        }
      }
    },
    "RuleGroup": {
      "type": "object",
      "required": [
        "name",
        "file",
        "folderUid",
        "rules",
        "interval"
      ],
      "properties": {
        "evaluationTime": {
          "type": "number",
          "format": "double"
        },
        "file": {
          "type": "string"
        },
        "folderUid": {
          "type": "string"
        },
        "interval": {
          "type": "number",
          "format": "double"
        },
        "lastEvaluation": {
          "type": "string",
          "format": "date-time"
        },
        "name": {
          "type": "string"
        },
        "rules": {
          "description": "In order to preserve rule ordering, while exposing type (alerting or recording)\nspecific properties, both alerting and recording rules are exposed in the\nsame array.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertingRule"
          }
        },
        "totals": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          }
        }
      }
    },
    "RuleGroupConfigResponse": {
      "type": "object",
      "properties": {
        "align_evaluation_time_on_interval": {
          "type": "boolean"
        },
        "evaluation_delay": {
          "type": "string"
        },
        "interval": {
          "$ref": "#/definitions/Duration"
        },
        "limit": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "query_offset": {
          "type": "string"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GettableExtendedRuleNode"
          }
        },
        "source_tenants": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RuleResponse": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "data": {
          "$ref": "#/definitions/RuleDiscovery"
        },
        "error": {
          "type": "string"
        },
        "errorType": {
          "$ref": "#/definitions/ErrorType"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "SNSConfig": {
      "type": "object",
      "properties": {
        "api_url": {
          "type": "string"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "phone_number": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "sigv4": {
          "$ref": "#/definitions/SigV4Config"
        },
        "subject": {
          "type": "string"
        },
        "target_arn": {
          "type": "string"
        },
        "topic_arn": {
          "type": "string"
        }
      }
    },
    "Sample": {
      "description": "Sample is a single sample belonging to a metric. It represents either a float\nsample or a histogram sample. If H is nil, it is a float sample. Otherwise,\nit is a histogram sample.",
      "type": "object",
      "properties": {
        "DropName": {
          "description": "DropName is used to indicate whether the __name__ label should be dropped\nas part of the query evaluation.",
          "type": "boolean"
        },
        "F": {
          "type": "number",
          "format": "double"
        },
        "H": {
          "$ref": "#/definitions/FloatHistogram"
        },
        "Metric": {
          "$ref": "#/definitions/Labels"
        },
        "T": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "Secret": {
      "type": "string",
      "title": "Secret special type for storing secrets."
    },
    "SecretURL": {
      "title": "SecretURL is a URL that must not be revealed on marshaling.",
      "$ref": "#/definitions/URL"
    },
    "SigV4Config": {
      "description": "SigV4Config is the configuration for signing remote write requests with\nAWS's SigV4 verification process. Empty values will be retrieved using the\nAWS default credentials chain.",
      "type": "object",
      "properties": {
        "AccessKey": {
          "type": "string"
        },
        "Profile": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "RoleARN": {
          "type": "string"
        },
        "SecretKey": {
          "$ref": "#/definitions/Secret"
        }
      }
    },
    "SilenceMetadata": {
      "type": "object",
      "properties": {
        "folder_uid": {
          "type": "string"
        },
        "rule_title": {
          "type": "string"
        },
        "rule_uid": {
          "type": "string"
        }
      }
    },
    "SlackAction": {
      "description": "See https://api.slack.com/docs/message-attachments#action_fields and https://api.slack.com/docs/message-buttons\nfor more information.",
      "type": "object",
      "title": "SlackAction configures a single Slack action that is sent with each notification.",
      "properties": {
        "confirm": {
          "$ref": "#/definitions/SlackConfirmationField"
        },
        "name": {
          "type": "string"
        },
        "style": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "SlackConfig": {
      "type": "object",
      "title": "SlackConfig configures notifications via Slack.",
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SlackAction"
          }
        },
        "api_url": {
          "$ref": "#/definitions/SecretURL"
        },
        "api_url_file": {
          "type": "string"
        },
        "callback_id": {
          "type": "string"
        },
        "channel": {
          "description": "Slack channel override, (like #other-channel or @username).",
          "type": "string"
        },
        "color": {
          "type": "string"
        },
        "fallback": {
          "type": "string"
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SlackField"
          }
        },
        "footer": {
          "type": "string"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "icon_emoji": {
          "type": "string"
        },
        "icon_url": {
          "type": "string"
        },
        "image_url": {
          "type": "string"
        },
        "link_names": {
          "type": "boolean"
        },
        "mrkdwn_in": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "pretext": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "short_fields": {
          "type": "boolean"
        },
        "text": {
          "type": "string"
        },
        "thumb_url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "title_link": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      }
    },
    "SlackConfirmationField": {
      "description": "SlackConfirmationField protect users from destructive actions or particularly distinguished decisions\nby asking them to confirm their button click one more time.\nSee https://api.slack.com/docs/interactive-message-field-guide#confirmation_fields for more information.",
      "type": "object",
      "properties": {
        "dismiss_text": {
          "type": "string"
        },
        "ok_text": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      }
    },
    "SlackField": {
      "description": "Each field must contain a title, value, and optionally, a boolean value to indicate if the field\nis short enough to be displayed next to other fields designated as short.\nSee https://api.slack.com/docs/message-attachments#fields for more information.",
      "type": "object",
      "title": "SlackField configures a single Slack field that is sent with each notification.",
      "properties": {
        "short": {
          "type": "boolean"
        },
        "title": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "SmtpNotEnabled": {
      "$ref": "#/definitions/ResponseDetails"
    },
    "Source": {
      "type": "string",
      "title": "Source type defines the status source."
    },
    "Span": {
      "type": "object",
      "title": "A Span defines a continuous sequence of buckets.",
      "properties": {
        "Length": {
          "description": "Length of the span.",
          "type": "integer",
          "format": "uint32"
        },
        "Offset": {
          "description": "Gap to previous span (always positive), or starting index for the 1st\nspan (which can be negative).",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "Status": {
      "type": "integer",
      "format": "int64"
    },
    "Success": {
      "$ref": "#/definitions/ResponseDetails"
    },
    "SupportedTransformationTypes": {
      "type": "string"
    },
    "TLSConfig": {
      "type": "object",
      "title": "TLSConfig configures the options for TLS connections.",
      "properties": {
        "ca": {
          "description": "Text of the CA cert to use for the targets.",
          "type": "string"
        },
        "ca_file": {
          "description": "The CA cert to use for the targets.",
          "type": "string"
        },
        "ca_ref": {
          "description": "CARef is the name of the secret within the secret manager to use as the CA cert for the\ntargets.",
          "type": "string"
        },
        "cert": {
          "description": "Text of the client cert file for the targets.",
          "type": "string"
        },
        "cert_file": {
          "description": "The client cert file for the targets.",
          "type": "string"
        },
        "cert_ref": {
          "description": "CertRef is the name of the secret within the secret manager to use as the client cert for\nthe targets.",
          "type": "string"
        },
        "insecure_skip_verify": {
          "description": "Disable target certificate validation.",
          "type": "boolean"
        },
        "key": {
          "$ref": "#/definitions/Secret"
        },
        "key_file": {
          "description": "The client key file for the targets.",
          "type": "string"
        },
        "key_ref": {
          "description": "KeyRef is the name of the secret within the secret manager to use as the client key for\nthe targets.",
          "type": "string"
        },
        "max_version": {
          "$ref": "#/definitions/TLSVersion"
        },
        "min_version": {
          "$ref": "#/definitions/TLSVersion"
        },
        "server_name": {
          "description": "Used to verify the hostname for the targets.",
          "type": "string"
        }
      }
    },
    "TLSVersion": {
      "type": "integer",
      "format": "uint16"
    },
    "TelegramConfig": {
      "type": "object",
      "title": "TelegramConfig configures notifications via Telegram.",
      "properties": {
        "api_url": {
          "$ref": "#/definitions/URL"
        },
        "chat": {
          "type": "integer",
          "format": "int64"
        },
        "disable_notifications": {
          "type": "boolean"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "parse_mode": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "token": {
          "$ref": "#/definitions/Secret"
        },
        "token_file": {
          "type": "string"
        }
      }
    },
    "TestReceiverConfigResult": {
      "type": "object",
      "properties": {
        "error": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "TestReceiverResult": {
      "type": "object",
      "properties": {
        "grafana_managed_receiver_configs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TestReceiverConfigResult"
          }
        },
        "name": {
          "type": "string"
        }
      }
    },
    "TestReceiversConfigAlertParams": {
      "type": "object",
      "properties": {
        "annotations": {
          "$ref": "#/definitions/LabelSet"
        },
        "labels": {
          "$ref": "#/definitions/LabelSet"
        }
      }
    },
    "TestReceiversConfigBodyParams": {
      "type": "object",
      "properties": {
        "alert": {
          "$ref": "#/definitions/TestReceiversConfigAlertParams"
        },
        "receivers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PostableApiReceiver"
          }
        }
      }
    },
    "TestReceiversResult": {
      "type": "object",
      "properties": {
        "alert": {
          "$ref": "#/definitions/TestReceiversConfigAlertParams"
        },
        "notified_at": {
          "type": "string",
          "format": "date-time"
        },
        "receivers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TestReceiverResult"
          }
        }
      }
    },
    "TestRulePayload": {
      "type": "object",
      "properties": {
        "expr": {
          "type": "string",
          "example": "(node_filesystem_avail_bytes{fstype!=\"\",job=\"integrations/node_exporter\"} node_filesystem_size_bytes{fstype!=\"\",job=\"integrations/node_exporter\"} * 100 \u003c 5 and node_filesystem_readonly{fstype!=\"\",job=\"integrations/node_exporter\"} == 0)"
        },
        "grafana_condition": {
          "$ref": "#/definitions/EvalAlertConditionCommand"
        }
      }
    },
    "TestRuleResponse": {
      "type": "object",
      "properties": {
        "alerts": {
          "$ref": "#/definitions/Vector"
        },
        "grafana_alert_instances": {
          "$ref": "#/definitions/AlertInstancesResponse"
        }
      }
    },
    "TestTemplatesConfigBodyParams": {
      "type": "object",
      "properties": {
        "alerts": {
          "description": "Alerts to use as data when testing the template.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/postableAlert"
          }
        },
        "name": {
          "description": "Name of the template file.",
          "type": "string"
        },
        "template": {
          "description": "Template string to test.",
          "type": "string"
        }
      }
    },
    "TestTemplatesErrorResult": {
      "type": "object",
      "properties": {
        "kind": {
          "description": "Kind of template error that occurred.",
          "type": "string",
          "enum": [
            "invalid_template",
            "execution_error"
          ]
        },
        "message": {
          "description": "Error message.",
          "type": "string"
        },
        "name": {
          "description": "Name of the associated template for this error. Will be empty if the Kind is \"invalid_template\".",
          "type": "string"
        }
      }
    },
    "TestTemplatesResult": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the associated template definition for this result.",
          "type": "string"
        },
        "scope": {
          "description": "Scope that was successfully used to interpolate the template. If the root scope \".\" fails, more specific\nscopes will be tried, such as \".Alerts', or \".Alert\".",
          "type": "string",
          "enum": [
            ".",
            ".Alerts",
            ".Alert"
          ]
        },
        "text": {
          "description": "Interpolated value of the template.",
          "type": "string"
        }
      }
    },
    "TestTemplatesResults": {
      "type": "object",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TestTemplatesErrorResult"
          }
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TestTemplatesResult"
          }
        }
      }
    },
    "Threshold": {
      "description": "Threshold a single step on the threshold list",
      "type": "object",
      "properties": {
        "color": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "value": {
          "$ref": "#/definitions/ConfFloat64"
        }
      }
    },
    "ThresholdsConfig": {
      "description": "ThresholdsConfig setup thresholds",
      "type": "object",
      "properties": {
        "mode": {
          "$ref": "#/definitions/ThresholdsMode"
        },
        "steps": {
          "description": "Must be sorted by 'value', first value is always -Infinity",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Threshold"
          }
        }
      }
    },
    "ThresholdsMode": {
      "description": "ThresholdsMode absolute or percentage",
      "type": "string"
    },
    "TimeInterval": {
      "type": "object",
      "title": "TimeInterval represents a named set of time intervals for which a route should be muted.",
      "properties": {
        "name": {
          "type": "string"
        },
        "time_intervals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeInterval"
          }
        }
      }
    },
    "TimeIntervalItem": {
      "type": "object",
      "properties": {
        "days_of_month": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "location": {
          "type": "string"
        },
        "months": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "times": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeIntervalTimeRange"
          }
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "years": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "TimeIntervalTimeRange": {
      "type": "object",
      "properties": {
        "end_time": {
          "type": "string"
        },
        "start_time": {
          "type": "string"
        }
      }
    },
    "TimeRange": {
      "description": "Redefining this to avoid an import cycle",
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "format": "date-time"
        },
        "to": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "URL": {
      "type": "object",
      "title": "URL is a custom URL type that allows validation at configuration load time.",
      "properties": {
        "ForceQuery": {
          "type": "boolean"
        },
        "Fragment": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "OmitHost": {
          "type": "boolean"
        },
        "Opaque": {
          "type": "string"
        },
        "Path": {
          "type": "string"
        },
        "RawFragment": {
          "type": "string"
        },
        "RawPath": {
          "type": "string"
        },
        "RawQuery": {
          "type": "string"
        },
        "Scheme": {
          "type": "string"
        },
        "User": {
          "$ref": "#/definitions/Userinfo"
        }
      }
    },
    "UpdateNamespaceRulesRequest": {
      "type": "object",
      "properties": {
        "is_paused": {
          "type": "boolean"
        }
      }
    },
    "UpdateNamespaceRulesResponse": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        }
      }
    },
    "UpdateRuleGroupResponse": {
      "type": "object",
      "properties": {
        "created": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "deleted": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "message": {
          "type": "string"
        },
        "updated": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UserInfo": {
      "type": "object",
      "title": "UserInfo represents user-related information, including a unique identifier and a name.",
      "properties": {
        "name": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "Userinfo": {
      "description": "The Userinfo type is an immutable encapsulation of username and\npassword details for a [URL]. An existing Userinfo value is guaranteed\nto have a username set (potentially empty, as allowed by RFC 2396),\nand optionally a password.",
      "type": "object"
    },
    "ValidationError": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "example": "error message"
        }
      }
    },
    "ValueMapping": {
      "description": "ValueMapping allows mapping input values to text and color",
      "type": "object"
    },
    "ValueMappings": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/ValueMapping"
      }
    },
    "Vector": {
      "description": "Vector is basically only an alias for []Sample, but the contract is that\nin a Vector, all Samples have the same timestamp.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/Sample"
      }
    },
    "VictorOpsConfig": {
      "type": "object",
      "title": "VictorOpsConfig configures notifications via VictorOps.",
      "properties": {
        "api_key": {
          "$ref": "#/definitions/Secret"
        },
        "api_key_file": {
          "type": "string"
        },
        "api_url": {
          "$ref": "#/definitions/URL"
        },
        "custom_fields": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "entity_display_name": {
          "type": "string"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message_type": {
          "type": "string"
        },
        "monitoring_tool": {
          "type": "string"
        },
        "routing_key": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "state_message": {
          "type": "string"
        }
      }
    },
    "VisType": {
      "type": "string",
      "title": "VisType is used to indicate how the data should be visualized in explore."
    },
    "WebexConfig": {
      "type": "object",
      "title": "WebexConfig configures notifications via Webex.",
      "properties": {
        "api_url": {
          "$ref": "#/definitions/URL"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "room_id": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        }
      }
    },
    "WebhookConfig": {
      "type": "object",
      "title": "WebhookConfig configures notifications via a generic webhook.",
      "properties": {
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "max_alerts": {
          "description": "MaxAlerts is the maximum number of alerts to be sent per webhook message.\nAlerts exceeding this threshold will be truncated. Setting this to 0\nallows an unlimited number of alerts.",
          "type": "integer",
          "format": "uint64"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "timeout": {
          "$ref": "#/definitions/Duration"
        },
        "url": {
          "$ref": "#/definitions/SecretURL"
        },
        "url_file": {
          "type": "string"
        }
      }
    },
    "WechatConfig": {
      "type": "object",
      "title": "WechatConfig configures notifications via Wechat.",
      "properties": {
        "agent_id": {
          "type": "string"
        },
        "api_secret": {
          "$ref": "#/definitions/Secret"
        },
        "api_url": {
          "$ref": "#/definitions/URL"
        },
        "corp_id": {
          "type": "string"
        },
        "http_config": {
          "$ref": "#/definitions/HTTPClientConfig"
        },
        "message": {
          "type": "string"
        },
        "message_type": {
          "type": "string"
        },
        "send_resolved": {
          "type": "boolean"
        },
        "to_party": {
          "type": "string"
        },
        "to_tag": {
          "type": "string"
        },
        "to_user": {
          "type": "string"
        }
      }
    },
    "alert": {
      "description": "Alert alert",
      "type": "object",
      "required": [
        "labels"
      ],
      "properties": {
        "generatorURL": {
          "description": "generator URL\nFormat: uri",
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        }
      }
    },
    "alertGroup": {
      "description": "AlertGroup alert group",
      "type": "object",
      "required": [
        "alerts",
        "labels",
        "receiver"
      ],
      "properties": {
        "alerts": {
          "description": "alerts",
          "type": "array",
          "items": {
            "$ref": "#/definitions/gettableAlert"
          }
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        },
        "receiver": {
          "$ref": "#/definitions/receiver"
        }
      }
    },
    "alertGroups": {
      "description": "AlertGroups alert groups",
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "#/definitions/alertGroup"
      }
    },
    "alertStatus": {
      "description": "AlertStatus alert status",
      "type": "object",
      "required": [
        "inhibitedBy",
        "silencedBy",
        "state"
      ],
      "properties": {
        "inhibitedBy": {
          "description": "inhibited by",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "silencedBy": {
          "description": "silenced by",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "state": {
          "description": "state",
          "type": "string",
          "enum": [
            "[unprocessed active suppressed]"
          ]
        }
      }
    },
    "alertmanagerConfig": {
      "description": "AlertmanagerConfig alertmanager config",
      "type": "object",
      "required": [
        "original"
      ],
      "properties": {
        "original": {
          "description": "original",
          "type": "string"
        }
      }
    },
    "alertmanagerStatus": {
      "description": "AlertmanagerStatus alertmanager status",
      "type": "object",
      "required": [
        "cluster",
        "config",
        "uptime",
        "versionInfo"
      ],
      "properties": {
        "cluster": {
          "$ref": "#/definitions/clusterStatus"
        },
        "config": {
          "$ref": "#/definitions/alertmanagerConfig"
        },
        "uptime": {
          "description": "uptime",
          "type": "string",
          "format": "date-time"
        },
        "versionInfo": {
          "$ref": "#/definitions/versionInfo"
        }
      }
    },
    "clusterStatus": {
      "description": "ClusterStatus cluster status",
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "name": {
          "description": "name",
          "type": "string"
        },
        "peers": {
          "description": "peers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/peerStatus"
          }
        },
        "status": {
          "description": "status",
          "type": "string",
          "enum": [
            "[ready settling disabled]"
          ]
        }
      }
    },
    "gettableAlert": {
      "description": "GettableAlert gettable alert",
      "type": "object",
      "required": [
        "labels",
        "annotations",
        "endsAt",
        "fingerprint",
        "receivers",
        "startsAt",
        "status",
        "updatedAt"
      ],
      "properties": {
        "annotations": {
          "$ref": "#/definitions/labelSet"
        },
        "endsAt": {
          "description": "ends at",
          "type": "string",
          "format": "date-time"
        },
        "fingerprint": {
          "description": "fingerprint",
          "type": "string"
        },
        "generatorURL": {
          "description": "generator URL\nFormat: uri",
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        },
        "receivers": {
          "description": "receivers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/receiver"
          }
        },
        "startsAt": {
          "description": "starts at",
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "$ref": "#/definitions/alertStatus"
        },
        "updatedAt": {
          "description": "updated at",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "gettableAlerts": {
      "description": "GettableAlerts gettable alerts",
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "#/definitions/gettableAlert"
      }
    },
    "gettableGrafanaSilence": {
      "type": "object",
      "required": [
        "comment",
        "createdBy",
        "endsAt",
        "matchers",
        "startsAt",
        "id",
        "status",
        "updatedAt"
      ],
      "properties": {
        "accessControl": {
          "type": "object",
          "additionalProperties": {
            "type": "boolean"
          },
          "example": {
            "create": false,
            "read": true,
            "write": false
          }
        },
        "comment": {
          "description": "comment",
          "type": "string"
        },
        "createdBy": {
          "description": "created by",
          "type": "string"
        },
        "endsAt": {
          "description": "ends at",
          "type": "string",
          "format": "date-time"
        },
        "id": {
          "description": "id",
          "type": "string"
        },
        "matchers": {
          "$ref": "#/definitions/matchers"
        },
        "metadata": {
          "$ref": "#/definitions/SilenceMetadata"
        },
        "startsAt": {
          "description": "starts at",
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "$ref": "#/definitions/silenceStatus"
        },
        "updatedAt": {
          "description": "updated at",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "gettableGrafanaSilences": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/gettableGrafanaSilence"
      }
    },
    "gettableSilence": {
      "description": "GettableSilence gettable silence",
      "type": "object",
      "required": [
        "comment",
        "createdBy",
        "endsAt",
        "matchers",
        "startsAt",
        "id",
        "status",
        "updatedAt"
      ],
      "properties": {
        "comment": {
          "description": "comment",
          "type": "string"
        },
        "createdBy": {
          "description": "created by",
          "type": "string"
        },
        "endsAt": {
          "description": "ends at",
          "type": "string",
          "format": "date-time"
        },
        "id": {
          "description": "id",
          "type": "string"
        },
        "matchers": {
          "$ref": "#/definitions/matchers"
        },
        "startsAt": {
          "description": "starts at",
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "$ref": "#/definitions/silenceStatus"
        },
        "updatedAt": {
          "description": "updated at",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "gettableSilences": {
      "description": "GettableSilences gettable silences",
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "#/definitions/gettableSilence"
      }
    },
    "labelSet": {
      "description": "LabelSet label set",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "matcher": {
      "description": "Matcher matcher",
      "type": "object",
      "required": [
        "isRegex",
        "name",
        "value"
      ],
      "properties": {
        "isEqual": {
          "description": "is equal",
          "type": "boolean"
        },
        "isRegex": {
          "description": "is regex",
          "type": "boolean"
        },
        "name": {
          "description": "name",
          "type": "string"
        },
        "value": {
          "description": "value",
          "type": "string"
        }
      }
    },
    "matchers": {
      "description": "Matchers matchers",
      "type": "array",
      "items": {
        "$ref": "#/definitions/matcher"
      }
    },
    "peerStatus": {
      "description": "PeerStatus peer status",
      "type": "object",
      "required": [
        "address",
        "name"
      ],
      "properties": {
        "address": {
          "description": "address",
          "type": "string"
        },
        "name": {
          "description": "name",
          "type": "string"
        }
      }
    },
    "postSilencesOKBody": {
      "type": "object",
      "properties": {
        "silenceID": {
          "description": "silence ID",
          "type": "string"
        }
      }
    },
    "postableAlert": {
      "description": "PostableAlert postable alert",
      "type": "object",
      "required": [
        "labels"
      ],
      "properties": {
        "annotations": {
          "$ref": "#/definitions/labelSet"
        },
        "endsAt": {
          "description": "ends at\nFormat: date-time",
          "type": "string",
          "format": "date-time"
        },
        "generatorURL": {
          "description": "generator URL\nFormat: uri",
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "$ref": "#/definitions/labelSet"
        },
        "startsAt": {
          "description": "starts at\nFormat: date-time",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "postableAlerts": {
      "description": "PostableAlerts postable alerts",
      "type": "array",
      "items": {
        "$ref": "#/definitions/postableAlert"
      }
    },
    "postableSilence": {
      "description": "PostableSilence postable silence",
      "type": "object",
      "required": [
        "comment",
        "createdBy",
        "endsAt",
        "matchers",
        "startsAt"
      ],
      "properties": {
        "comment": {
          "description": "comment",
          "type": "string"
        },
        "createdBy": {
          "description": "created by",
          "type": "string"
        },
        "endsAt": {
          "description": "ends at",
          "type": "string",
          "format": "date-time"
        },
        "id": {
          "description": "id",
          "type": "string"
        },
        "matchers": {
          "$ref": "#/definitions/matchers"
        },
        "startsAt": {
          "description": "starts at",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "receiver": {
      "description": "Receiver receiver",
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "description": "name",
          "type": "string"
        }
      }
    },
    "silence": {
      "description": "Silence silence",
      "type": "object",
      "required": [
        "comment",
        "createdBy",
        "endsAt",
        "matchers",
        "startsAt"
      ],
      "properties": {
        "comment": {
          "description": "comment",
          "type": "string"
        },
        "createdBy": {
          "description": "created by",
          "type": "string"
        },
        "endsAt": {
          "description": "ends at",
          "type": "string",
          "format": "date-time"
        },
        "matchers": {
          "$ref": "#/definitions/matchers"
        },
        "startsAt": {
          "description": "starts at",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "silenceStatus": {
      "description": "SilenceStatus silence status",
      "type": "object",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "description": "state",
          "type": "string",
          "enum": [
            "[expired active pending]"
          ]
        }
      }
    },
    "versionInfo": {
      "description": "VersionInfo version info",
      "type": "object",
      "required": [
        "branch",
        "buildDate",
        "buildUser",
        "goVersion",
        "revision",
        "version"
      ],
      "properties": {
        "branch": {
          "description": "branch",
          "type": "string"
        },
        "buildDate": {
          "description": "build date",
          "type": "string"
        },
        "buildUser": {
          "description": "build user",
          "type": "string"
        },
        "goVersion": {
          "description": "go version",
          "type": "string"
        },
        "revision": {
          "description": "revision",
          "type": "string"
        },
        "version": {
          "description": "version",
          "type": "string"
        }
      }
    }
  },
  "responses": {
    "GettableHistoricUserConfigs": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/GettableHistoricUserConfig"
        }
      }
    },
    "StateHistory": {
      "description": "",
      "schema": {
        "$ref": "#/definitions/Frame"
      }
    },
    "TestGrafanaRuleResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/postableAlert"
        }
      }
    },
    "receiversResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/ReceiverStatus"
        }
      }
    }
  },
  "securityDefinitions": {
    "basic": {
      "type": "basic"
    }
  }
}