diff --git a/pkg/services/ngalert/api/tooling/Makefile b/pkg/services/ngalert/api/tooling/Makefile index 2d8920d8b29..98fc79f29d8 100644 --- a/pkg/services/ngalert/api/tooling/Makefile +++ b/pkg/services/ngalert/api/tooling/Makefile @@ -4,7 +4,9 @@ API_DIR = definitions GO_PKG_FILES = $(shell find $(API_DIR) -name *.go -print) spec.json: $(GO_PKG_FILES) - swagger generate spec -m -w $(API_DIR) -o $@ + # this is slow because this image does not use the cache + # https://github.com/go-swagger/go-swagger/blob/v0.27.0/Dockerfile#L5 + docker run --rm -it -e GOPATH=${GOPATH} -v ${GOPATH}:${GOPATH} -w $$(pwd) go-swagger generate spec -m -o $@ post.json: spec.json go run cmd/clean-swagger/main.go -if $(<) -of $@ diff --git a/pkg/services/ngalert/api/tooling/post.json b/pkg/services/ngalert/api/tooling/post.json index 3b532d6ddfb..c6ca6e9256d 100644 --- a/pkg/services/ngalert/api/tooling/post.json +++ b/pkg/services/ngalert/api/tooling/post.json @@ -1,3808 +1,3835 @@ { - "definitions": { - "Ack": { - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "Alert": { - "properties": { - "activeAt": { - "format": "date-time", - "type": "string", - "x-go-name": "ActiveAt" - }, - "annotations": { - "$ref": "#/definitions/labels" - }, - "labels": { - "$ref": "#/definitions/labels" - }, - "state": { - "type": "string", - "x-go-name": "State" - }, - "value": { - "type": "string", - "x-go-name": "Value" - } - }, - "required": [ - "labels", - "annotations", - "state", - "value" - ], - "title": "Alert has info for an alert.", - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "AlertDiscovery": { - "properties": { - "alerts": { - "items": { - "$ref": "#/definitions/Alert" - }, - "type": "array", - "x-go-name": "Alerts" - } - }, - "required": [ - "alerts" - ], - "title": "AlertDiscovery has info for all active alerts.", - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "AlertGroup": { - "$ref": "#/definitions/alertGroup" - }, - "AlertGroups": {}, - "AlertInstancesResponse": { - "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)", - "items": { - "items": { - "format": "uint8", - "type": "integer" - }, - "type": "array" - }, - "type": "array", - "x-go-name": "Instances" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "AlertNotification": { - "properties": { - "created": { - "format": "date-time", - "type": "string", - "x-go-name": "Created" - }, - "disableResolveMessage": { - "type": "boolean", - "x-go-name": "DisableResolveMessage" - }, - "frequency": { - "$ref": "#/definitions/Duration", - "type": "string" - }, - "id": { - "format": "int64", - "type": "integer", - "x-go-name": "Id" - }, - "isDefault": { - "type": "boolean", - "x-go-name": "IsDefault" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "secureFields": { - "additionalProperties": { - "type": "boolean" - }, - "type": "object", - "x-go-name": "SecureFields" - }, - "sendReminder": { - "type": "boolean", - "x-go-name": "SendReminder" - }, - "settings": { - "$ref": "#/definitions/Json" - }, - "type": { - "type": "string", - "x-go-name": "Type" - }, - "uid": { - "type": "string", - "x-go-name": "Uid" - }, - "updated": { - "format": "date-time", - "type": "string", - "x-go-name": "Updated" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/api/dtos" - }, - "AlertQuery": { - "properties": { - "model": { - "description": "JSON is the raw JSON query and includes the above properties as well as custom properties.", - "type": "object", - "x-go-name": "Model" - }, - "queryType": { - "description": "QueryType is an optional identifier for the type of query.\nIt can be used to distinguish different types of queries.", - "type": "string", - "x-go-name": "QueryType" - }, - "refId": { - "description": "RefID is the unique identifier of the query, set by the frontend call.", - "type": "string", - "x-go-name": "RefID" - }, - "relativeTimeRange": { - "$ref": "#/definitions/RelativeTimeRange" - } - }, - "title": "AlertQuery represents a single query associated with an alert definition.", - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/models" - }, - "AlertResponse": { - "properties": { - "data": { - "$ref": "#/definitions/AlertDiscovery" - }, - "error": { - "type": "string", - "x-go-name": "Error" - }, - "errorType": { - "$ref": "#/definitions/ErrorType" - }, - "status": { - "type": "string", - "x-go-name": "Status" - } - }, - "required": [ - "status" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "AlertingRule": { - "description": "adapted from cortex", - "properties": { - "alerts": { - "items": { - "$ref": "#/definitions/Alert" - }, - "type": "array", - "x-go-name": "Alerts" - }, - "annotations": { - "$ref": "#/definitions/labels" - }, - "duration": { - "format": "double", - "type": "number", - "x-go-name": "Duration" - }, - "evaluationTime": { - "format": "double", - "type": "number", - "x-go-name": "EvaluationTime" - }, - "health": { - "type": "string", - "x-go-name": "Health" - }, - "labels": { - "$ref": "#/definitions/labels" - }, - "lastError": { - "type": "string", - "x-go-name": "LastError" - }, - "lastEvaluation": { - "format": "date-time", - "type": "string", - "x-go-name": "LastEvaluation" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "query": { - "type": "string", - "x-go-name": "Query" - }, - "state": { - "description": "State can be \"pending\", \"firing\", \"inactive\".", - "type": "string", - "x-go-name": "State" - }, - "type": { - "$ref": "#/definitions/RuleType" - } - }, - "required": [ - "name", - "query", - "health", - "type", - "state", - "annotations", - "alerts" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "ApiRuleNode": { - "properties": { - "alert": { - "type": "string", - "x-go-name": "Alert" - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Annotations" - }, - "expr": { - "type": "string", - "x-go-name": "Expr" - }, - "for": { - "$ref": "#/definitions/Duration" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Labels" - }, - "record": { - "type": "string", - "x-go-name": "Record" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "Authorization": { - "properties": { - "Credentials": { - "$ref": "#/definitions/Secret" - }, - "CredentialsFile": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "title": "Authorization contains HTTP authorization credentials.", - "type": "object", - "x-go-package": "github.com/prometheus/common/config" - }, - "BasicAuth": { - "properties": { - "Password": { - "$ref": "#/definitions/Secret" - }, - "PasswordFile": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "title": "BasicAuth contains basic HTTP authentication credentials.", - "type": "object", - "x-go-package": "github.com/prometheus/common/config" - }, - "Config": { - "properties": { - "global": { - "$ref": "#/definitions/GlobalConfig" - }, - "inhibit_rules": { - "items": { - "$ref": "#/definitions/InhibitRule" - }, - "type": "array", - "x-go-name": "InhibitRules" - }, - "receivers": { - "items": { - "$ref": "#/definitions/Receiver" - }, - "type": "array", - "x-go-name": "Receivers" - }, - "route": { - "$ref": "#/definitions/Route" - }, - "templates": { - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "Templates" - } - }, - "title": "Config is the top-level configuration for Alertmanager's config files.", - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "CreateAlertNotificationCommand": { - "properties": { - "Result": { - "$ref": "#/definitions/AlertNotification" - }, - "disableResolveMessage": { - "type": "boolean", - "x-go-name": "DisableResolveMessage" - }, - "frequency": { - "type": "string", - "x-go-name": "Frequency" - }, - "isDefault": { - "type": "boolean", - "x-go-name": "IsDefault" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "secureSettings": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "SecureSettings" - }, - "sendReminder": { - "type": "boolean", - "x-go-name": "SendReminder" - }, - "settings": { - "$ref": "#/definitions/Json" - }, - "type": { - "type": "string", - "x-go-name": "Type" - }, - "uid": { - "type": "string", - "x-go-name": "Uid" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/models" - }, - "DateTime": { - "description": "DateTime is a time but it serializes to ISO8601 format with millis\nIt knows how to read 3 different variations of a RFC3339 date time.\nMost APIs we encounter want either millisecond or second precision times.\nThis just tries to make it worry-free.", - "format": "date-time", - "type": "string", - "x-go-package": "github.com/go-openapi/strfmt" - }, - "DiscoveryBase": { - "properties": { - "error": { - "type": "string", - "x-go-name": "Error" - }, - "errorType": { - "$ref": "#/definitions/ErrorType" - }, - "status": { - "type": "string", - "x-go-name": "Status" - } - }, - "required": [ - "status" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "Duration": { - "format": "int64", - "title": "Duration is a type used for marshalling durations.", - "type": "integer" - }, - "EmailConfig": { - "properties": { - "auth_identity": { - "type": "string", - "x-go-name": "AuthIdentity" - }, - "auth_password": { - "$ref": "#/definitions/Secret" - }, - "auth_secret": { - "$ref": "#/definitions/Secret" - }, - "auth_username": { - "type": "string", - "x-go-name": "AuthUsername" - }, - "from": { - "type": "string", - "x-go-name": "From" - }, - "headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Headers" - }, - "hello": { - "type": "string", - "x-go-name": "Hello" - }, - "html": { - "type": "string", - "x-go-name": "HTML" - }, - "require_tls": { - "type": "boolean", - "x-go-name": "RequireTLS" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "smarthost": { - "$ref": "#/definitions/HostPort" - }, - "text": { - "type": "string", - "x-go-name": "Text" - }, - "tls_config": { - "$ref": "#/definitions/TLSConfig" - }, - "to": { - "description": "Email address to notify.", - "type": "string", - "x-go-name": "To" - } - }, - "title": "EmailConfig configures notifications via mail.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "ErrorType": { - "title": "ErrorType models the different API error types.", - "type": "string", - "x-go-package": "github.com/prometheus/client_golang/api/prometheus/v1" - }, - "EvalAlertConditionCommand": { - "description": "EvalAlertConditionCommand is the command for evaluating a condition", - "properties": { - "condition": { - "type": "string", - "x-go-name": "Condition" - }, - "data": { - "items": { - "$ref": "#/definitions/AlertQuery" - }, - "type": "array", - "x-go-name": "Data" - }, - "now": { - "format": "date-time", - "type": "string", - "x-go-name": "Now" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/models" - }, - "EvalQueriesPayload": { - "properties": { - "data": { - "items": { - "$ref": "#/definitions/AlertQuery" - }, - "type": "array", - "x-go-name": "Data" - }, - "now": { - "format": "date-time", - "type": "string", - "x-go-name": "Now" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "EvalQueriesResponse": {}, - "ExtendedReceiver": { - "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" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "Failure": { - "$ref": "#/definitions/ResponseDetails" - }, - "GettableAlert": {}, - "GettableAlerts": {}, - "GettableApiAlertingConfig": { - "properties": { - "global": { - "$ref": "#/definitions/GlobalConfig" - }, - "inhibit_rules": { - "items": { - "$ref": "#/definitions/InhibitRule" - }, - "type": "array", - "x-go-name": "InhibitRules" - }, - "receivers": { - "description": "Override with our superset receiver type", - "items": { - "$ref": "#/definitions/GettableApiReceiver" - }, - "type": "array", - "x-go-name": "Receivers" - }, - "route": { - "$ref": "#/definitions/Route" - }, - "templates": { - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "Templates" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GettableApiReceiver": { - "properties": { - "email_configs": { - "items": { - "$ref": "#/definitions/EmailConfig" - }, - "type": "array", - "x-go-name": "EmailConfigs" - }, - "grafana_managed_receiver_configs": { - "items": { - "$ref": "#/definitions/GettableGrafanaReceiver" - }, - "type": "array", - "x-go-name": "GrafanaManagedReceivers" - }, - "name": { - "description": "A unique identifier for this receiver.", - "type": "string", - "x-go-name": "Name" - }, - "opsgenie_configs": { - "items": { - "$ref": "#/definitions/OpsGenieConfig" - }, - "type": "array", - "x-go-name": "OpsGenieConfigs" - }, - "pagerduty_configs": { - "items": { - "$ref": "#/definitions/PagerdutyConfig" - }, - "type": "array", - "x-go-name": "PagerdutyConfigs" - }, - "pushover_configs": { - "items": { - "$ref": "#/definitions/PushoverConfig" - }, - "type": "array", - "x-go-name": "PushoverConfigs" - }, - "slack_configs": { - "items": { - "$ref": "#/definitions/SlackConfig" - }, - "type": "array", - "x-go-name": "SlackConfigs" - }, - "victorops_configs": { - "items": { - "$ref": "#/definitions/VictorOpsConfig" - }, - "type": "array", - "x-go-name": "VictorOpsConfigs" - }, - "webhook_configs": { - "items": { - "$ref": "#/definitions/WebhookConfig" - }, - "type": "array", - "x-go-name": "WebhookConfigs" - }, - "wechat_configs": { - "items": { - "$ref": "#/definitions/WechatConfig" - }, - "type": "array", - "x-go-name": "WechatConfigs" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GettableExtendedRuleNode": { - "properties": { - "alert": { - "type": "string", - "x-go-name": "Alert" - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Annotations" - }, - "expr": { - "type": "string", - "x-go-name": "Expr" - }, - "for": { - "$ref": "#/definitions/Duration" - }, - "grafana_alert": { - "$ref": "#/definitions/GettableGrafanaRule" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Labels" - }, - "record": { - "type": "string", - "x-go-name": "Record" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GettableGrafanaReceiver": { - "$ref": "#/definitions/AlertNotification" - }, - "GettableGrafanaReceivers": { - "properties": { - "grafana_managed_receiver_configs": { - "items": { - "$ref": "#/definitions/GettableGrafanaReceiver" - }, - "type": "array", - "x-go-name": "GrafanaManagedReceivers" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GettableGrafanaRule": { - "properties": { - "condition": { - "type": "string", - "x-go-name": "Condition" - }, - "data": { - "items": { - "$ref": "#/definitions/AlertQuery" - }, - "type": "array", - "x-go-name": "Data" - }, - "exec_err_state": { - "enum": [ - "Alerting", - "KeepLastState" - ], - "type": "string", - "x-go-name": "ExecErrState" - }, - "id": { - "format": "int64", - "type": "integer", - "x-go-name": "ID" - }, - "intervalSeconds": { - "format": "int64", - "type": "integer", - "x-go-name": "IntervalSeconds" - }, - "namespace_id": { - "format": "int64", - "type": "integer", - "x-go-name": "NamespaceID" - }, - "namespace_uid": { - "type": "string", - "x-go-name": "NamespaceUID" - }, - "no_data_state": { - "enum": [ - "Alerting", - "NoData", - "KeepLastState", - "OK" - ], - "type": "string", - "x-go-name": "NoDataState" - }, - "orgId": { - "format": "int64", - "type": "integer", - "x-go-name": "OrgID" - }, - "rule_group": { - "type": "string", - "x-go-name": "RuleGroup" - }, - "title": { - "type": "string", - "x-go-name": "Title" - }, - "uid": { - "type": "string", - "x-go-name": "UID" - }, - "updated": { - "format": "date-time", - "type": "string", - "x-go-name": "Updated" - }, - "version": { - "format": "int64", - "type": "integer", - "x-go-name": "Version" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GettableRuleGroupConfig": { - "properties": { - "interval": { - "$ref": "#/definitions/Duration" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "rules": { - "items": { - "$ref": "#/definitions/GettableExtendedRuleNode" - }, - "type": "array", - "x-go-name": "Rules" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GettableSilence": { - "$ref": "#/definitions/gettableSilence" - }, - "GettableSilences": {}, - "GettableUserConfig": { - "properties": { - "alertmanager_config": { - "$ref": "#/definitions/GettableApiAlertingConfig" - }, - "template_files": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "TemplateFiles" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "GlobalConfig": { - "description": "GlobalConfig defines configuration parameters that are valid globally\nunless overwritten.", - "properties": { - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "opsgenie_api_key": { - "$ref": "#/definitions/Secret" - }, - "opsgenie_api_url": { - "$ref": "#/definitions/URL" - }, - "pagerduty_url": { - "$ref": "#/definitions/URL" - }, - "resolve_timeout": { - "$ref": "#/definitions/Duration" - }, - "slack_api_url": { - "$ref": "#/definitions/SecretURL" - }, - "smtp_auth_identity": { - "type": "string", - "x-go-name": "SMTPAuthIdentity" - }, - "smtp_auth_password": { - "$ref": "#/definitions/Secret" - }, - "smtp_auth_secret": { - "$ref": "#/definitions/Secret" - }, - "smtp_auth_username": { - "type": "string", - "x-go-name": "SMTPAuthUsername" - }, - "smtp_from": { - "type": "string", - "x-go-name": "SMTPFrom" - }, - "smtp_hello": { - "type": "string", - "x-go-name": "SMTPHello" - }, - "smtp_require_tls": { - "type": "boolean", - "x-go-name": "SMTPRequireTLS" - }, - "smtp_smarthost": { - "$ref": "#/definitions/HostPort" - }, - "victorops_api_key": { - "$ref": "#/definitions/Secret" - }, - "victorops_api_url": { - "$ref": "#/definitions/URL" - }, - "wechat_api_corp_id": { - "type": "string", - "x-go-name": "WeChatAPICorpID" - }, - "wechat_api_secret": { - "$ref": "#/definitions/Secret" - }, - "wechat_api_url": { - "$ref": "#/definitions/URL" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "HTTPClientConfig": { - "properties": { - "Authorization": { - "$ref": "#/definitions/Authorization" - }, - "BasicAuth": { - "$ref": "#/definitions/BasicAuth" - }, - "BearerToken": { - "$ref": "#/definitions/Secret" - }, - "BearerTokenFile": { - "description": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.", - "type": "string" - }, - "FollowRedirects": { - "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" - }, - "ProxyURL": { - "$ref": "#/definitions/URL" - }, - "TLSConfig": { - "$ref": "#/definitions/TLSConfig" - } - }, - "title": "HTTPClientConfig configures an HTTP client.", - "type": "object", - "x-go-package": "github.com/prometheus/common/config" - }, - "HostPort": { - "properties": { - "Host": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "title": "HostPort represents a \"host:port\" network address.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "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.", - "properties": { - "equal": { - "$ref": "#/definitions/LabelNames" - }, - "source_match": { - "additionalProperties": { - "type": "string" - }, - "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", - "x-go-name": "SourceMatch" - }, - "source_match_re": { - "$ref": "#/definitions/MatchRegexps" - }, - "source_matchers": { - "$ref": "#/definitions/Matchers" - }, - "target_match": { - "additionalProperties": { - "type": "string" - }, - "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", - "x-go-name": "TargetMatch" - }, - "target_match_re": { - "$ref": "#/definitions/MatchRegexps" - }, - "target_matchers": { - "$ref": "#/definitions/Matchers" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "Json": { - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/components/simplejson" - }, - "Label": { - "properties": { - "Name": { - "type": "string", - "x-go-name": "Value" - } - }, - "title": "Label is a key/value pair of strings.", - "type": "object", - "x-go-package": "github.com/prometheus/prometheus/pkg/labels" - }, - "LabelName": { - "description": "A LabelName is a key for a LabelSet or Metric. It has a value associated\ntherewith.", - "type": "string", - "x-go-package": "github.com/prometheus/common/model" - }, - "LabelNames": { - "items": { - "$ref": "#/definitions/LabelName" - }, - "title": "LabelNames is a sortable LabelName slice. In implements sort.Interface.", - "type": "array", - "x-go-package": "github.com/prometheus/common/model" - }, - "Labels": { - "description": "Labels is a sorted set of labels. Order has to be guaranteed upon\ninstantiation.", - "items": { - "$ref": "#/definitions/Label" - }, - "type": "array", - "x-go-package": "github.com/prometheus/prometheus/pkg/labels" - }, - "MatchRegexps": { - "additionalProperties": { - "$ref": "#/definitions/Regexp" - }, - "title": "MatchRegexps represents a map of Regexp.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "MatchType": { - "format": "int64", - "title": "MatchType is an enum for label matching types.", - "type": "integer", - "x-go-package": "github.com/prometheus/alertmanager/pkg/labels" - }, - "Matcher": { - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "$ref": "#/definitions/MatchType" - }, - "Value": { - "type": "string" - } - }, - "title": "Matcher models the matching of a label.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/pkg/labels" - }, - "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.", - "items": { - "$ref": "#/definitions/Matcher" - }, - "type": "array" - }, - "NamespaceConfigResponse": { - "additionalProperties": { - "items": { - "$ref": "#/definitions/GettableRuleGroupConfig" - }, - "type": "array" - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "NotifierConfig": { - "properties": { - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - } - }, - "title": "NotifierConfig contains base options common across all notifier configurations.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "OpsGenieConfig": { - "properties": { - "api_key": { - "$ref": "#/definitions/Secret" - }, - "api_url": { - "$ref": "#/definitions/URL" - }, - "description": { - "type": "string", - "x-go-name": "Description" - }, - "details": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Details" - }, - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "message": { - "type": "string", - "x-go-name": "Message" - }, - "note": { - "type": "string", - "x-go-name": "Note" - }, - "priority": { - "type": "string", - "x-go-name": "Priority" - }, - "responders": { - "items": { - "$ref": "#/definitions/OpsGenieConfigResponder" - }, - "type": "array", - "x-go-name": "Responders" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "source": { - "type": "string", - "x-go-name": "Source" - }, - "tags": { - "type": "string", - "x-go-name": "Tags" - } - }, - "title": "OpsGenieConfig configures notifications via OpsGenie.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "OpsGenieConfigResponder": { - "properties": { - "id": { - "description": "One of those 3 should be filled.", - "type": "string", - "x-go-name": "ID" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "type": { - "description": "team, user, escalation, schedule etc.", - "type": "string", - "x-go-name": "Type" - }, - "username": { - "type": "string", - "x-go-name": "Username" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "PagerdutyConfig": { - "properties": { - "class": { - "type": "string", - "x-go-name": "Class" - }, - "client": { - "type": "string", - "x-go-name": "Client" - }, - "client_url": { - "type": "string", - "x-go-name": "ClientURL" - }, - "component": { - "type": "string", - "x-go-name": "Component" - }, - "description": { - "type": "string", - "x-go-name": "Description" - }, - "details": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Details" - }, - "group": { - "type": "string", - "x-go-name": "Group" - }, - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "images": { - "items": { - "$ref": "#/definitions/PagerdutyImage" - }, - "type": "array", - "x-go-name": "Images" - }, - "links": { - "items": { - "$ref": "#/definitions/PagerdutyLink" - }, - "type": "array", - "x-go-name": "Links" - }, - "routing_key": { - "$ref": "#/definitions/Secret" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "service_key": { - "$ref": "#/definitions/Secret" - }, - "severity": { - "type": "string", - "x-go-name": "Severity" - }, - "url": { - "$ref": "#/definitions/URL" - } - }, - "title": "PagerdutyConfig configures notifications via PagerDuty.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "PagerdutyImage": { - "description": "PagerdutyImage is an image", - "properties": { - "alt": { - "type": "string", - "x-go-name": "Alt" - }, - "href": { - "type": "string", - "x-go-name": "Href" - }, - "src": { - "type": "string", - "x-go-name": "Src" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "PagerdutyLink": { - "description": "PagerdutyLink is a link", - "properties": { - "href": { - "type": "string", - "x-go-name": "Href" - }, - "text": { - "type": "string", - "x-go-name": "Text" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "Point": { - "properties": { - "T": { - "format": "int64", - "type": "integer" - }, - "V": { - "format": "double", - "type": "number" - } - }, - "title": "Point represents a single data point for a given timestamp.", - "type": "object", - "x-go-package": "github.com/prometheus/prometheus/promql" - }, - "PostableApiAlertingConfig": { - "properties": { - "global": { - "$ref": "#/definitions/GlobalConfig" - }, - "inhibit_rules": { - "items": { - "$ref": "#/definitions/InhibitRule" - }, - "type": "array", - "x-go-name": "InhibitRules" - }, - "receivers": { - "description": "Override with our superset receiver type", - "items": { - "$ref": "#/definitions/PostableApiReceiver" - }, - "type": "array", - "x-go-name": "Receivers" - }, - "route": { - "$ref": "#/definitions/Route" - }, - "templates": { - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "Templates" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PostableApiReceiver": { - "properties": { - "email_configs": { - "items": { - "$ref": "#/definitions/EmailConfig" - }, - "type": "array", - "x-go-name": "EmailConfigs" - }, - "grafana_managed_receiver_configs": { - "items": { - "$ref": "#/definitions/PostableGrafanaReceiver" - }, - "type": "array", - "x-go-name": "GrafanaManagedReceivers" - }, - "name": { - "description": "A unique identifier for this receiver.", - "type": "string", - "x-go-name": "Name" - }, - "opsgenie_configs": { - "items": { - "$ref": "#/definitions/OpsGenieConfig" - }, - "type": "array", - "x-go-name": "OpsGenieConfigs" - }, - "pagerduty_configs": { - "items": { - "$ref": "#/definitions/PagerdutyConfig" - }, - "type": "array", - "x-go-name": "PagerdutyConfigs" - }, - "pushover_configs": { - "items": { - "$ref": "#/definitions/PushoverConfig" - }, - "type": "array", - "x-go-name": "PushoverConfigs" - }, - "slack_configs": { - "items": { - "$ref": "#/definitions/SlackConfig" - }, - "type": "array", - "x-go-name": "SlackConfigs" - }, - "victorops_configs": { - "items": { - "$ref": "#/definitions/VictorOpsConfig" - }, - "type": "array", - "x-go-name": "VictorOpsConfigs" - }, - "webhook_configs": { - "items": { - "$ref": "#/definitions/WebhookConfig" - }, - "type": "array", - "x-go-name": "WebhookConfigs" - }, - "wechat_configs": { - "items": { - "$ref": "#/definitions/WechatConfig" - }, - "type": "array", - "x-go-name": "WechatConfigs" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PostableExtendedRuleNode": { - "properties": { - "alert": { - "type": "string", - "x-go-name": "Alert" - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Annotations" - }, - "expr": { - "type": "string", - "x-go-name": "Expr" - }, - "for": { - "$ref": "#/definitions/Duration" - }, - "grafana_alert": { - "$ref": "#/definitions/PostableGrafanaRule" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "Labels" - }, - "record": { - "type": "string", - "x-go-name": "Record" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PostableGrafanaReceiver": { - "$ref": "#/definitions/CreateAlertNotificationCommand" - }, - "PostableGrafanaReceivers": { - "properties": { - "grafana_managed_receiver_configs": { - "items": { - "$ref": "#/definitions/PostableGrafanaReceiver" - }, - "type": "array", - "x-go-name": "GrafanaManagedReceivers" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PostableGrafanaRule": { - "properties": { - "condition": { - "type": "string", - "x-go-name": "Condition" - }, - "data": { - "items": { - "$ref": "#/definitions/AlertQuery" - }, - "type": "array", - "x-go-name": "Data" - }, - "exec_err_state": { - "enum": [ - "Alerting", - "KeepLastState" - ], - "type": "string", - "x-go-name": "ExecErrState" - }, - "no_data_state": { - "enum": [ - "Alerting", - "NoData", - "KeepLastState", - "OK" - ], - "type": "string", - "x-go-name": "NoDataState" - }, - "title": { - "type": "string", - "x-go-name": "Title" - }, - "uid": { - "type": "string", - "x-go-name": "UID" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PostableRuleGroupConfig": { - "properties": { - "interval": { - "$ref": "#/definitions/Duration" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "rules": { - "items": { - "$ref": "#/definitions/PostableExtendedRuleNode" - }, - "type": "array", - "x-go-name": "Rules" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PostableSilence": {}, - "PostableUserConfig": { - "properties": { - "alertmanager_config": { - "$ref": "#/definitions/PostableApiAlertingConfig" - }, - "template_files": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "TemplateFiles" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "PushoverConfig": { - "properties": { - "expire": { - "$ref": "#/definitions/duration" - }, - "html": { - "type": "boolean", - "x-go-name": "HTML" - }, - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "message": { - "type": "string", - "x-go-name": "Message" - }, - "priority": { - "type": "string", - "x-go-name": "Priority" - }, - "retry": { - "$ref": "#/definitions/duration" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "sound": { - "type": "string", - "x-go-name": "Sound" - }, - "title": { - "type": "string", - "x-go-name": "Title" - }, - "token": { - "$ref": "#/definitions/Secret" - }, - "url": { - "type": "string", - "x-go-name": "URL" - }, - "url_title": { - "type": "string", - "x-go-name": "URLTitle" - }, - "user_key": { - "$ref": "#/definitions/Secret" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "Receiver": { - "$ref": "#/definitions/receiver", - "properties": { - "email_configs": { - "items": { - "$ref": "#/definitions/EmailConfig" - }, - "type": "array", - "x-go-name": "EmailConfigs" - }, - "name": { - "description": "A unique identifier for this receiver.", - "type": "string", - "x-go-name": "Name" - }, - "opsgenie_configs": { - "items": { - "$ref": "#/definitions/OpsGenieConfig" - }, - "type": "array", - "x-go-name": "OpsGenieConfigs" - }, - "pagerduty_configs": { - "items": { - "$ref": "#/definitions/PagerdutyConfig" - }, - "type": "array", - "x-go-name": "PagerdutyConfigs" - }, - "pushover_configs": { - "items": { - "$ref": "#/definitions/PushoverConfig" - }, - "type": "array", - "x-go-name": "PushoverConfigs" - }, - "slack_configs": { - "items": { - "$ref": "#/definitions/SlackConfig" - }, - "type": "array", - "x-go-name": "SlackConfigs" - }, - "victorops_configs": { - "items": { - "$ref": "#/definitions/VictorOpsConfig" - }, - "type": "array", - "x-go-name": "VictorOpsConfigs" - }, - "webhook_configs": { - "items": { - "$ref": "#/definitions/WebhookConfig" - }, - "type": "array", - "x-go-name": "WebhookConfigs" - }, - "wechat_configs": { - "items": { - "$ref": "#/definitions/WechatConfig" - }, - "type": "array", - "x-go-name": "WechatConfigs" - } - }, - "title": "Receiver configuration provides configuration on how to contact a receiver.", - "type": "object" - }, - "Regexp": { - "description": "A Regexp is safe for concurrent use by multiple goroutines,\nexcept for configuration methods, such as Longest.", - "title": "Regexp is the representation of a compiled regular expression.", - "type": "object", - "x-go-package": "regexp" - }, - "RelativeTimeRange": { - "description": "RelativeTimeRange is the per query start and end time\nfor requests.", - "properties": { - "from": { - "$ref": "#/definitions/Duration" - }, - "to": { - "$ref": "#/definitions/Duration" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/models" - }, - "ResponseDetails": { - "properties": { - "msg": { - "type": "string", - "x-go-name": "Msg" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "Route": { - "properties": { - "continue": { - "type": "boolean", - "x-go-name": "Continue" - }, - "group_by": { - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "GroupByStr" - }, - "group_interval": { - "$ref": "#/definitions/Duration" - }, - "group_wait": { - "$ref": "#/definitions/Duration" - }, - "match": { - "additionalProperties": { - "type": "string" - }, - "description": "Deprecated. Remove before v1.0 release.", - "type": "object", - "x-go-name": "Match" - }, - "match_re": { - "$ref": "#/definitions/MatchRegexps" - }, - "matchers": { - "$ref": "#/definitions/Matchers" - }, - "mute_time_intervals": { - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "MuteTimeIntervals" - }, - "receiver": { - "type": "string", - "x-go-name": "Receiver" - }, - "repeat_interval": { - "$ref": "#/definitions/Duration" - }, - "routes": { - "items": { - "$ref": "#/definitions/Route" - }, - "type": "array", - "x-go-name": "Routes" - } - }, - "title": "A Route is a node that contains definitions of how to handle alerts.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "Rule": { - "description": "adapted from cortex", - "properties": { - "evaluationTime": { - "format": "double", - "type": "number", - "x-go-name": "EvaluationTime" - }, - "health": { - "type": "string", - "x-go-name": "Health" - }, - "labels": { - "$ref": "#/definitions/labels" - }, - "lastError": { - "type": "string", - "x-go-name": "LastError" - }, - "lastEvaluation": { - "format": "date-time", - "type": "string", - "x-go-name": "LastEvaluation" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "query": { - "type": "string", - "x-go-name": "Query" - }, - "type": { - "$ref": "#/definitions/RuleType" - } - }, - "required": [ - "name", - "query", - "health", - "type" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "RuleDiscovery": { - "properties": { - "groups": { - "items": { - "$ref": "#/definitions/RuleGroup" - }, - "type": "array", - "x-go-name": "RuleGroups" - } - }, - "required": [ - "groups" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "RuleGroup": { - "properties": { - "evaluationTime": { - "format": "double", - "type": "number", - "x-go-name": "EvaluationTime" - }, - "file": { - "type": "string", - "x-go-name": "File" - }, - "interval": { - "format": "double", - "type": "number", - "x-go-name": "Interval" - }, - "lastEvaluation": { - "format": "date-time", - "type": "string", - "x-go-name": "LastEvaluation" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "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.", - "items": { - "$ref": "#/definitions/AlertingRule" - }, - "type": "array", - "x-go-name": "Rules" - } - }, - "required": [ - "name", - "file", - "rules", - "interval" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "RuleGroupConfigResponse": { - "properties": { - "interval": { - "$ref": "#/definitions/Duration" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "rules": { - "items": { - "$ref": "#/definitions/GettableExtendedRuleNode" - }, - "type": "array", - "x-go-name": "Rules" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "RuleResponse": { - "properties": { - "data": { - "$ref": "#/definitions/RuleDiscovery" - }, - "error": { - "type": "string", - "x-go-name": "Error" - }, - "errorType": { - "$ref": "#/definitions/ErrorType" - }, - "status": { - "type": "string", - "x-go-name": "Status" - } - }, - "required": [ - "status" - ], - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "RuleType": { - "title": "RuleType models the type of a rule.", - "type": "string", - "x-go-package": "github.com/prometheus/client_golang/api/prometheus/v1" - }, - "Sample": { - "properties": { - "Metric": { - "$ref": "#/definitions/Labels" - }, - "T": { - "format": "int64", - "type": "integer" - }, - "V": { - "format": "double", - "type": "number" - } - }, - "title": "Sample is a single sample belonging to a metric.", - "type": "object", - "x-go-package": "github.com/prometheus/prometheus/promql" - }, - "Secret": { - "title": "Secret special type for storing secrets.", - "type": "string", - "x-go-package": "github.com/prometheus/common/config" - }, - "SecretURL": { - "$ref": "#/definitions/URL", - "title": "SecretURL is a URL that must not be revealed on marshaling." - }, - "SecureJsonData": { - "additionalProperties": { - "items": { - "format": "uint8", - "type": "integer" - }, - "type": "array" - }, - "description": "SecureJsonData is used to store encrypted data (for example in data_source table). Only values are separately\nencrypted.", - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/components/securejsondata" - }, - "SlackAction": { - "description": "See https://api.slack.com/docs/message-attachments#action_fields and https://api.slack.com/docs/message-buttons\nfor more information.", - "properties": { - "confirm": { - "$ref": "#/definitions/SlackConfirmationField" - }, - "name": { - "type": "string", - "x-go-name": "Name" - }, - "style": { - "type": "string", - "x-go-name": "Style" - }, - "text": { - "type": "string", - "x-go-name": "Text" - }, - "type": { - "type": "string", - "x-go-name": "Type" - }, - "url": { - "type": "string", - "x-go-name": "URL" - }, - "value": { - "type": "string", - "x-go-name": "Value" - } - }, - "title": "SlackAction configures a single Slack action that is sent with each notification.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "SlackConfig": { - "properties": { - "actions": { - "items": { - "$ref": "#/definitions/SlackAction" - }, - "type": "array", - "x-go-name": "Actions" - }, - "api_url": { - "$ref": "#/definitions/SecretURL" - }, - "callback_id": { - "type": "string", - "x-go-name": "CallbackID" - }, - "channel": { - "description": "Slack channel override, (like #other-channel or @username).", - "type": "string", - "x-go-name": "Channel" - }, - "color": { - "type": "string", - "x-go-name": "Color" - }, - "fallback": { - "type": "string", - "x-go-name": "Fallback" - }, - "fields": { - "items": { - "$ref": "#/definitions/SlackField" - }, - "type": "array", - "x-go-name": "Fields" - }, - "footer": { - "type": "string", - "x-go-name": "Footer" - }, - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "icon_emoji": { - "type": "string", - "x-go-name": "IconEmoji" - }, - "icon_url": { - "type": "string", - "x-go-name": "IconURL" - }, - "image_url": { - "type": "string", - "x-go-name": "ImageURL" - }, - "link_names": { - "type": "boolean", - "x-go-name": "LinkNames" - }, - "mrkdwn_in": { - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "MrkdwnIn" - }, - "pretext": { - "type": "string", - "x-go-name": "Pretext" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "short_fields": { - "type": "boolean", - "x-go-name": "ShortFields" - }, - "text": { - "type": "string", - "x-go-name": "Text" - }, - "thumb_url": { - "type": "string", - "x-go-name": "ThumbURL" - }, - "title": { - "type": "string", - "x-go-name": "Title" - }, - "title_link": { - "type": "string", - "x-go-name": "TitleLink" - }, - "username": { - "type": "string", - "x-go-name": "Username" - } - }, - "title": "SlackConfig configures notifications via Slack.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "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.", - "properties": { - "dismiss_text": { - "type": "string", - "x-go-name": "DismissText" - }, - "ok_text": { - "type": "string", - "x-go-name": "OkText" - }, - "text": { - "type": "string", - "x-go-name": "Text" - }, - "title": { - "type": "string", - "x-go-name": "Title" - } - }, - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "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.", - "properties": { - "short": { - "type": "boolean", - "x-go-name": "Short" - }, - "title": { - "type": "string", - "x-go-name": "Title" - }, - "value": { - "type": "string", - "x-go-name": "Value" - } - }, - "title": "SlackField configures a single Slack field that is sent with each notification.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "SmtpNotEnabled": { - "$ref": "#/definitions/ResponseDetails" - }, - "Success": { - "$ref": "#/definitions/ResponseDetails" - }, - "TLSConfig": { - "properties": { - "CAFile": { - "description": "The CA cert to use for the targets.", - "type": "string" - }, - "CertFile": { - "description": "The client cert file for the targets.", - "type": "string" - }, - "InsecureSkipVerify": { - "description": "Disable target certificate validation.", - "type": "boolean" - }, - "KeyFile": { - "description": "The client key file for the targets.", - "type": "string" - }, - "ServerName": { - "description": "Used to verify the hostname for the targets.", - "type": "string" - } - }, - "title": "TLSConfig configures the options for TLS connections.", - "type": "object", - "x-go-package": "github.com/prometheus/common/config" - }, - "TestRulePayload": { - "properties": { - "expr": { - "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)", - "type": "string", - "x-go-name": "Expr" - }, - "grafana_condition": { - "$ref": "#/definitions/EvalAlertConditionCommand" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "TestRuleResponse": { - "properties": { - "alerts": { - "$ref": "#/definitions/Vector" - }, - "grafana_alert_instances": { - "$ref": "#/definitions/AlertInstancesResponse" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "URL": { - "description": "The general form represented is:\n\n[scheme:][//[userinfo@]host][/]path[?query][#fragment]\n\nURLs that do not start with a slash after the scheme are interpreted as:\n\nscheme:opaque[?query][#fragment]\n\nNote that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.\nA consequence is that it is impossible to tell which slashes in the Path were\nslashes in the raw URL and which were %2f. This distinction is rarely important,\nbut when it is, the code should use RawPath, an optional field which only gets\nset if the default encoding is different from Path.\n\nURL's String method uses the EscapedPath method to obtain the path. See the\nEscapedPath method for more details.", - "properties": { - "ForceQuery": { - "type": "boolean" - }, - "Fragment": { - "type": "string" - }, - "Host": { - "type": "string" - }, - "Opaque": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "RawFragment": { - "type": "string" - }, - "RawPath": { - "type": "string" - }, - "RawQuery": { - "type": "string" - }, - "Scheme": { - "type": "string" - }, - "User": { - "$ref": "#/definitions/Userinfo" - } - }, - "title": "A URL represents a parsed URL (technically, a URI reference).", - "type": "object", - "x-go-package": "net/url" - }, - "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", - "x-go-package": "net/url" - }, - "ValidationError": { - "properties": { - "msg": { - "type": "string", - "x-go-name": "Msg" - } - }, - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" - }, - "Vector": { - "description": "Vector is basically only an alias for model.Samples, but the\ncontract is that in a Vector, all Samples have the same timestamp.", - "items": { - "$ref": "#/definitions/Sample" - }, - "type": "array", - "x-go-package": "github.com/prometheus/prometheus/promql" - }, - "VictorOpsConfig": { - "properties": { - "api_key": { - "$ref": "#/definitions/Secret" - }, - "api_url": { - "$ref": "#/definitions/URL" - }, - "custom_fields": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-go-name": "CustomFields" - }, - "entity_display_name": { - "type": "string", - "x-go-name": "EntityDisplayName" - }, - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "message_type": { - "type": "string", - "x-go-name": "MessageType" - }, - "monitoring_tool": { - "type": "string", - "x-go-name": "MonitoringTool" - }, - "routing_key": { - "type": "string", - "x-go-name": "RoutingKey" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "state_message": { - "type": "string", - "x-go-name": "StateMessage" - } - }, - "title": "VictorOpsConfig configures notifications via VictorOps.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "WebhookConfig": { - "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.", - "format": "uint64", - "type": "integer", - "x-go-name": "MaxAlerts" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "url": { - "$ref": "#/definitions/URL" - } - }, - "title": "WebhookConfig configures notifications via a generic webhook.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "WechatConfig": { - "properties": { - "agent_id": { - "type": "string", - "x-go-name": "AgentID" - }, - "api_secret": { - "$ref": "#/definitions/Secret" - }, - "api_url": { - "$ref": "#/definitions/URL" - }, - "corp_id": { - "type": "string", - "x-go-name": "CorpID" - }, - "http_config": { - "$ref": "#/definitions/HTTPClientConfig" - }, - "message": { - "type": "string", - "x-go-name": "Message" - }, - "message_type": { - "type": "string", - "x-go-name": "MessageType" - }, - "send_resolved": { - "type": "boolean", - "x-go-name": "VSendResolved" - }, - "to_party": { - "type": "string", - "x-go-name": "ToParty" - }, - "to_tag": { - "type": "string", - "x-go-name": "ToTag" - }, - "to_user": { - "type": "string", - "x-go-name": "ToUser" - } - }, - "title": "WechatConfig configures notifications via Wechat.", - "type": "object", - "x-go-package": "github.com/prometheus/alertmanager/config" - }, - "alert": { - "description": "Alert alert", - "properties": { - "generatorURL": { - "description": "generator URL\nFormat: uri", - "format": "uri", - "type": "string", - "x-go-name": "GeneratorURL" - }, - "labels": { - "$ref": "#/definitions/labelSet" - } - }, - "required": [ - "labels" - ], - "type": "object", - "x-go-name": "Alert", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "alertGroup": { - "description": "AlertGroup alert group", - "properties": { - "alerts": { - "description": "alerts", - "items": { - "$ref": "#/definitions/GettableAlert" - }, - "type": "array", - "x-go-name": "Alerts" - }, - "labels": { - "$ref": "#/definitions/labelSet" - }, - "receiver": { - "$ref": "#/definitions/Receiver" - } - }, - "required": [ - "alerts", - "labels", - "receiver" - ], - "type": "object", - "x-go-name": "AlertGroup", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "alertGroups": { - "description": "AlertGroups alert groups", - "items": { - "$ref": "#/definitions/alertGroup" - }, - "type": "array", - "x-go-name": "AlertGroups", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "alertStatus": { - "description": "AlertStatus alert status", - "properties": { - "inhibitedBy": { - "description": "inhibited by", - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "InhibitedBy" - }, - "silencedBy": { - "description": "silenced by", - "items": { - "type": "string" - }, - "type": "array", - "x-go-name": "SilencedBy" - }, - "state": { - "description": "state", - "enum": [ - "[unprocessed active suppressed]" - ], - "type": "string", - "x-go-name": "State" - } - }, - "required": [ - "inhibitedBy", - "silencedBy", - "state" - ], - "type": "object", - "x-go-name": "AlertStatus", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "alertmanagerConfig": { - "description": "AlertmanagerConfig alertmanager config", - "properties": { - "original": { - "description": "original", - "type": "string", - "x-go-name": "Original" - } - }, - "required": [ - "original" - ], - "type": "object", - "x-go-name": "AlertmanagerConfig", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "alertmanagerStatus": { - "description": "AlertmanagerStatus alertmanager status", - "properties": { - "cluster": { - "$ref": "#/definitions/clusterStatus" - }, - "config": { - "$ref": "#/definitions/alertmanagerConfig" - }, - "uptime": { - "description": "uptime", - "format": "date-time", - "type": "string", - "x-go-name": "Uptime" - }, - "versionInfo": { - "$ref": "#/definitions/versionInfo" - } - }, - "required": [ - "cluster", - "config", - "uptime", - "versionInfo" - ], - "type": "object", - "x-go-name": "AlertmanagerStatus", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "clusterStatus": { - "description": "ClusterStatus cluster status", - "properties": { - "name": { - "description": "name", - "type": "string", - "x-go-name": "Name" - }, - "peers": { - "description": "peers", - "items": { - "$ref": "#/definitions/peerStatus" - }, - "type": "array", - "x-go-name": "Peers" - }, - "status": { - "description": "status", - "enum": [ - "[ready settling disabled]" - ], - "type": "string", - "x-go-name": "Status" - } - }, - "required": [ - "status" - ], - "type": "object", - "x-go-name": "ClusterStatus", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "duration": { - "$ref": "#/definitions/Duration" - }, - "gettableAlert": { - "description": "GettableAlert gettable alert", - "properties": { - "annotations": { - "$ref": "#/definitions/labelSet" - }, - "endsAt": { - "description": "ends at", - "format": "date-time", - "type": "string", - "x-go-name": "EndsAt" - }, - "fingerprint": { - "description": "fingerprint", - "type": "string", - "x-go-name": "Fingerprint" - }, - "generatorURL": { - "description": "generator URL\nFormat: uri", - "format": "uri", - "type": "string", - "x-go-name": "GeneratorURL" - }, - "labels": { - "$ref": "#/definitions/labelSet" - }, - "receivers": { - "description": "receivers", - "items": { - "$ref": "#/definitions/Receiver" - }, - "type": "array", - "x-go-name": "Receivers" - }, - "startsAt": { - "description": "starts at", - "format": "date-time", - "type": "string", - "x-go-name": "StartsAt" - }, - "status": { - "$ref": "#/definitions/alertStatus" - }, - "updatedAt": { - "description": "updated at", - "format": "date-time", - "type": "string", - "x-go-name": "UpdatedAt" - } - }, - "required": [ - "labels", - "annotations", - "endsAt", - "fingerprint", - "receivers", - "startsAt", - "status", - "updatedAt" - ], - "type": "object", - "x-go-name": "GettableAlert", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "gettableAlerts": { - "description": "GettableAlerts gettable alerts", - "items": { - "$ref": "#/definitions/GettableAlert" - }, - "type": "array", - "x-go-name": "GettableAlerts", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "gettableSilence": { - "description": "GettableSilence gettable silence", - "properties": { - "comment": { - "description": "comment", - "type": "string", - "x-go-name": "Comment" - }, - "createdBy": { - "description": "created by", - "type": "string", - "x-go-name": "CreatedBy" - }, - "endsAt": { - "description": "ends at", - "format": "date-time", - "type": "string", - "x-go-name": "EndsAt" - }, - "id": { - "description": "id", - "type": "string", - "x-go-name": "ID" - }, - "matchers": { - "$ref": "#/definitions/matchers" - }, - "startsAt": { - "description": "starts at", - "format": "date-time", - "type": "string", - "x-go-name": "StartsAt" - }, - "status": { - "$ref": "#/definitions/silenceStatus" - }, - "updatedAt": { - "description": "updated at", - "format": "date-time", - "type": "string", - "x-go-name": "UpdatedAt" - } - }, - "required": [ - "comment", - "createdBy", - "endsAt", - "matchers", - "startsAt", - "id", - "status", - "updatedAt" - ], - "type": "object", - "x-go-name": "GettableSilence", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "gettableSilences": { - "description": "GettableSilences gettable silences", - "items": { - "$ref": "#/definitions/gettableSilence" - }, - "type": "array", - "x-go-name": "GettableSilences", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "labelSet": { - "additionalProperties": { - "type": "string" - }, - "description": "LabelSet label set", - "type": "object", - "x-go-name": "LabelSet", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "basePath": "/api/v1", + "consumes": [ + "application/json" + ], + "definitions": { + "Ack": { + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "Alert": { + "properties": { + "activeAt": { + "format": "date-time", + "type": "string", + "x-go-name": "ActiveAt" + }, + "annotations": { + "$ref": "#/definitions/labels" }, "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The custom marshaling for labels.Labels ends up doing this anyways.", - "title": "override the labels type with a map for generation.", - "type": "object", - "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + "$ref": "#/definitions/labels" }, - "matcher": { - "description": "Matcher matcher", - "properties": { - "isEqual": { - "description": "is equal", - "type": "boolean", - "x-go-name": "IsEqual" - }, - "isRegex": { - "description": "is regex", - "type": "boolean", - "x-go-name": "IsRegex" - }, - "name": { - "description": "name", - "type": "string", - "x-go-name": "Name" - }, - "value": { - "description": "value", - "type": "string", - "x-go-name": "Value" - } + "state": { + "type": "string", + "x-go-name": "State" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "required": [ + "labels", + "annotations", + "state", + "value" + ], + "title": "Alert has info for an alert.", + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "AlertDiscovery": { + "properties": { + "alerts": { + "items": { + "$ref": "#/definitions/Alert" + }, + "type": "array", + "x-go-name": "Alerts" + } + }, + "required": [ + "alerts" + ], + "title": "AlertDiscovery has info for all active alerts.", + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "AlertGroup": { + "$ref": "#/definitions/alertGroup" + }, + "AlertGroups": {}, + "AlertInstancesResponse": { + "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)", + "items": { + "items": { + "format": "uint8", + "type": "integer" }, - "required": [ - "isRegex", - "name", - "value" - ], - "type": "object", - "x-go-name": "Matcher", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "type": "array" + }, + "type": "array", + "x-go-name": "Instances" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "AlertNotification": { + "properties": { + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "disableResolveMessage": { + "type": "boolean", + "x-go-name": "DisableResolveMessage" + }, + "frequency": { + "$ref": "#/definitions/Duration", + "type": "string" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "Id" + }, + "isDefault": { + "type": "boolean", + "x-go-name": "IsDefault" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "secureFields": { + "additionalProperties": { + "type": "boolean" + }, + "type": "object", + "x-go-name": "SecureFields" + }, + "sendReminder": { + "type": "boolean", + "x-go-name": "SendReminder" + }, + "settings": { + "$ref": "#/definitions/Json" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "uid": { + "type": "string", + "x-go-name": "Uid" + }, + "updated": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/api/dtos" + }, + "AlertQuery": { + "properties": { + "datasourceUid": { + "description": "Grafana data source unique identifer; it should be '-100' for a Server Side Expression operation.", + "type": "string", + "x-go-name": "DatasourceUID" + }, + "model": { + "description": "JSON is the raw JSON query and includes the above properties as well as custom properties.", + "type": "object", + "x-go-name": "Model" + }, + "queryType": { + "description": "QueryType is an optional identifier for the type of query.\nIt can be used to distinguish different types of queries.", + "type": "string", + "x-go-name": "QueryType" + }, + "refId": { + "description": "RefID is the unique identifier of the query, set by the frontend call.", + "type": "string", + "x-go-name": "RefID" + }, + "relativeTimeRange": { + "$ref": "#/definitions/RelativeTimeRange" + } + }, + "title": "AlertQuery represents a single query associated with an alert definition.", + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/models" + }, + "AlertResponse": { + "properties": { + "data": { + "$ref": "#/definitions/AlertDiscovery" + }, + "error": { + "type": "string", + "x-go-name": "Error" + }, + "errorType": { + "$ref": "#/definitions/ErrorType" + }, + "status": { + "type": "string", + "x-go-name": "Status" + } + }, + "required": [ + "status" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "AlertingRule": { + "description": "adapted from cortex", + "properties": { + "alerts": { + "items": { + "$ref": "#/definitions/Alert" + }, + "type": "array", + "x-go-name": "Alerts" + }, + "annotations": { + "$ref": "#/definitions/labels" + }, + "duration": { + "format": "double", + "type": "number", + "x-go-name": "Duration" + }, + "evaluationTime": { + "format": "double", + "type": "number", + "x-go-name": "EvaluationTime" + }, + "health": { + "type": "string", + "x-go-name": "Health" + }, + "labels": { + "$ref": "#/definitions/labels" + }, + "lastError": { + "type": "string", + "x-go-name": "LastError" + }, + "lastEvaluation": { + "format": "date-time", + "type": "string", + "x-go-name": "LastEvaluation" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "state": { + "description": "State can be \"pending\", \"firing\", \"inactive\".", + "type": "string", + "x-go-name": "State" + }, + "type": { + "$ref": "#/definitions/RuleType" + } + }, + "required": [ + "name", + "query", + "health", + "type", + "state", + "annotations", + "alerts" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "ApiRuleNode": { + "properties": { + "alert": { + "type": "string", + "x-go-name": "Alert" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Annotations" + }, + "expr": { + "type": "string", + "x-go-name": "Expr" + }, + "for": { + "$ref": "#/definitions/Duration" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Labels" + }, + "record": { + "type": "string", + "x-go-name": "Record" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "Authorization": { + "properties": { + "Credentials": { + "$ref": "#/definitions/Secret" + }, + "CredentialsFile": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "title": "Authorization contains HTTP authorization credentials.", + "type": "object", + "x-go-package": "github.com/prometheus/common/config" + }, + "BasicAuth": { + "properties": { + "Password": { + "$ref": "#/definitions/Secret" + }, + "PasswordFile": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "title": "BasicAuth contains basic HTTP authentication credentials.", + "type": "object", + "x-go-package": "github.com/prometheus/common/config" + }, + "Config": { + "properties": { + "global": { + "$ref": "#/definitions/GlobalConfig" + }, + "inhibit_rules": { + "items": { + "$ref": "#/definitions/InhibitRule" + }, + "type": "array", + "x-go-name": "InhibitRules" + }, + "receivers": { + "items": { + "$ref": "#/definitions/Receiver" + }, + "type": "array", + "x-go-name": "Receivers" + }, + "route": { + "$ref": "#/definitions/Route" + }, + "templates": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Templates" + } + }, + "title": "Config is the top-level configuration for Alertmanager's config files.", + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "CreateAlertNotificationCommand": { + "properties": { + "Result": { + "$ref": "#/definitions/AlertNotification" + }, + "disableResolveMessage": { + "type": "boolean", + "x-go-name": "DisableResolveMessage" + }, + "frequency": { + "type": "string", + "x-go-name": "Frequency" + }, + "isDefault": { + "type": "boolean", + "x-go-name": "IsDefault" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "secureSettings": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "SecureSettings" + }, + "sendReminder": { + "type": "boolean", + "x-go-name": "SendReminder" + }, + "settings": { + "$ref": "#/definitions/Json" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "uid": { + "type": "string", + "x-go-name": "Uid" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/models" + }, + "DateTime": { + "description": "DateTime is a time but it serializes to ISO8601 format with millis\nIt knows how to read 3 different variations of a RFC3339 date time.\nMost APIs we encounter want either millisecond or second precision times.\nThis just tries to make it worry-free.", + "format": "date-time", + "type": "string", + "x-go-package": "github.com/go-openapi/strfmt" + }, + "DiscoveryBase": { + "properties": { + "error": { + "type": "string", + "x-go-name": "Error" + }, + "errorType": { + "$ref": "#/definitions/ErrorType" + }, + "status": { + "type": "string", + "x-go-name": "Status" + } + }, + "required": [ + "status" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "Duration": { + "format": "int64", + "title": "Duration is a type used for marshalling durations.", + "type": "integer" + }, + "EmailConfig": { + "properties": { + "auth_identity": { + "type": "string", + "x-go-name": "AuthIdentity" + }, + "auth_password": { + "$ref": "#/definitions/Secret" + }, + "auth_secret": { + "$ref": "#/definitions/Secret" + }, + "auth_username": { + "type": "string", + "x-go-name": "AuthUsername" + }, + "from": { + "type": "string", + "x-go-name": "From" + }, + "headers": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Headers" + }, + "hello": { + "type": "string", + "x-go-name": "Hello" + }, + "html": { + "type": "string", + "x-go-name": "HTML" + }, + "require_tls": { + "type": "boolean", + "x-go-name": "RequireTLS" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "smarthost": { + "$ref": "#/definitions/HostPort" + }, + "text": { + "type": "string", + "x-go-name": "Text" + }, + "tls_config": { + "$ref": "#/definitions/TLSConfig" + }, + "to": { + "description": "Email address to notify.", + "type": "string", + "x-go-name": "To" + } + }, + "title": "EmailConfig configures notifications via mail.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "ErrorType": { + "title": "ErrorType models the different API error types.", + "type": "string", + "x-go-package": "github.com/prometheus/client_golang/api/prometheus/v1" + }, + "EvalAlertConditionCommand": { + "description": "EvalAlertConditionCommand is the command for evaluating a condition", + "properties": { + "condition": { + "type": "string", + "x-go-name": "Condition" + }, + "data": { + "items": { + "$ref": "#/definitions/AlertQuery" + }, + "type": "array", + "x-go-name": "Data" + }, + "now": { + "format": "date-time", + "type": "string", + "x-go-name": "Now" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/models" + }, + "EvalQueriesPayload": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/AlertQuery" + }, + "type": "array", + "x-go-name": "Data" + }, + "now": { + "format": "date-time", + "type": "string", + "x-go-name": "Now" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "EvalQueriesResponse": {}, + "ExtendedReceiver": { + "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" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "Failure": { + "$ref": "#/definitions/ResponseDetails" + }, + "GettableAlert": { + "$ref": "#/definitions/gettableAlert" + }, + "GettableAlerts": { + "$ref": "#/definitions/gettableAlerts" + }, + "GettableApiAlertingConfig": { + "properties": { + "global": { + "$ref": "#/definitions/GlobalConfig" + }, + "inhibit_rules": { + "items": { + "$ref": "#/definitions/InhibitRule" + }, + "type": "array", + "x-go-name": "InhibitRules" + }, + "receivers": { + "description": "Override with our superset receiver type", + "items": { + "$ref": "#/definitions/GettableApiReceiver" + }, + "type": "array", + "x-go-name": "Receivers" + }, + "route": { + "$ref": "#/definitions/Route" + }, + "templates": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Templates" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GettableApiReceiver": { + "properties": { + "email_configs": { + "items": { + "$ref": "#/definitions/EmailConfig" + }, + "type": "array", + "x-go-name": "EmailConfigs" + }, + "grafana_managed_receiver_configs": { + "items": { + "$ref": "#/definitions/GettableGrafanaReceiver" + }, + "type": "array", + "x-go-name": "GrafanaManagedReceivers" + }, + "name": { + "description": "A unique identifier for this receiver.", + "type": "string", + "x-go-name": "Name" + }, + "opsgenie_configs": { + "items": { + "$ref": "#/definitions/OpsGenieConfig" + }, + "type": "array", + "x-go-name": "OpsGenieConfigs" + }, + "pagerduty_configs": { + "items": { + "$ref": "#/definitions/PagerdutyConfig" + }, + "type": "array", + "x-go-name": "PagerdutyConfigs" + }, + "pushover_configs": { + "items": { + "$ref": "#/definitions/PushoverConfig" + }, + "type": "array", + "x-go-name": "PushoverConfigs" + }, + "slack_configs": { + "items": { + "$ref": "#/definitions/SlackConfig" + }, + "type": "array", + "x-go-name": "SlackConfigs" + }, + "victorops_configs": { + "items": { + "$ref": "#/definitions/VictorOpsConfig" + }, + "type": "array", + "x-go-name": "VictorOpsConfigs" + }, + "webhook_configs": { + "items": { + "$ref": "#/definitions/WebhookConfig" + }, + "type": "array", + "x-go-name": "WebhookConfigs" + }, + "wechat_configs": { + "items": { + "$ref": "#/definitions/WechatConfig" + }, + "type": "array", + "x-go-name": "WechatConfigs" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GettableExtendedRuleNode": { + "properties": { + "alert": { + "type": "string", + "x-go-name": "Alert" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Annotations" + }, + "expr": { + "type": "string", + "x-go-name": "Expr" + }, + "for": { + "$ref": "#/definitions/Duration" + }, + "grafana_alert": { + "$ref": "#/definitions/GettableGrafanaRule" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Labels" + }, + "record": { + "type": "string", + "x-go-name": "Record" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GettableGrafanaReceiver": { + "$ref": "#/definitions/AlertNotification" + }, + "GettableGrafanaReceivers": { + "properties": { + "grafana_managed_receiver_configs": { + "items": { + "$ref": "#/definitions/GettableGrafanaReceiver" + }, + "type": "array", + "x-go-name": "GrafanaManagedReceivers" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GettableGrafanaRule": { + "properties": { + "condition": { + "type": "string", + "x-go-name": "Condition" + }, + "data": { + "items": { + "$ref": "#/definitions/AlertQuery" + }, + "type": "array", + "x-go-name": "Data" + }, + "exec_err_state": { + "enum": [ + "Alerting", + "KeepLastState" + ], + "type": "string", + "x-go-name": "ExecErrState" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "intervalSeconds": { + "format": "int64", + "type": "integer", + "x-go-name": "IntervalSeconds" + }, + "namespace_id": { + "format": "int64", + "type": "integer", + "x-go-name": "NamespaceID" + }, + "namespace_uid": { + "type": "string", + "x-go-name": "NamespaceUID" + }, + "no_data_state": { + "enum": [ + "Alerting", + "NoData", + "KeepLastState", + "OK" + ], + "type": "string", + "x-go-name": "NoDataState" + }, + "orgId": { + "format": "int64", + "type": "integer", + "x-go-name": "OrgID" + }, + "rule_group": { + "type": "string", + "x-go-name": "RuleGroup" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "uid": { + "type": "string", + "x-go-name": "UID" + }, + "updated": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "version": { + "format": "int64", + "type": "integer", + "x-go-name": "Version" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GettableRuleGroupConfig": { + "properties": { + "interval": { + "$ref": "#/definitions/Duration" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "rules": { + "items": { + "$ref": "#/definitions/GettableExtendedRuleNode" + }, + "type": "array", + "x-go-name": "Rules" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GettableSilence": { + "$ref": "#/definitions/gettableSilence" + }, + "GettableSilences": { + "$ref": "#/definitions/gettableSilences" + }, + "GettableUserConfig": { + "properties": { + "alertmanager_config": { + "$ref": "#/definitions/GettableApiAlertingConfig" + }, + "template_files": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "TemplateFiles" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "GlobalConfig": { + "description": "GlobalConfig defines configuration parameters that are valid globally\nunless overwritten.", + "properties": { + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "opsgenie_api_key": { + "$ref": "#/definitions/Secret" + }, + "opsgenie_api_url": { + "$ref": "#/definitions/URL" + }, + "pagerduty_url": { + "$ref": "#/definitions/URL" + }, + "resolve_timeout": { + "$ref": "#/definitions/Duration" + }, + "slack_api_url": { + "$ref": "#/definitions/SecretURL" + }, + "smtp_auth_identity": { + "type": "string", + "x-go-name": "SMTPAuthIdentity" + }, + "smtp_auth_password": { + "$ref": "#/definitions/Secret" + }, + "smtp_auth_secret": { + "$ref": "#/definitions/Secret" + }, + "smtp_auth_username": { + "type": "string", + "x-go-name": "SMTPAuthUsername" + }, + "smtp_from": { + "type": "string", + "x-go-name": "SMTPFrom" + }, + "smtp_hello": { + "type": "string", + "x-go-name": "SMTPHello" + }, + "smtp_require_tls": { + "type": "boolean", + "x-go-name": "SMTPRequireTLS" + }, + "smtp_smarthost": { + "$ref": "#/definitions/HostPort" + }, + "victorops_api_key": { + "$ref": "#/definitions/Secret" + }, + "victorops_api_url": { + "$ref": "#/definitions/URL" + }, + "wechat_api_corp_id": { + "type": "string", + "x-go-name": "WeChatAPICorpID" + }, + "wechat_api_secret": { + "$ref": "#/definitions/Secret" + }, + "wechat_api_url": { + "$ref": "#/definitions/URL" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "HTTPClientConfig": { + "properties": { + "Authorization": { + "$ref": "#/definitions/Authorization" + }, + "BasicAuth": { + "$ref": "#/definitions/BasicAuth" + }, + "BearerToken": { + "$ref": "#/definitions/Secret" + }, + "BearerTokenFile": { + "description": "The bearer token file for the targets. Deprecated in favour of\nAuthorization.CredentialsFile.", + "type": "string" + }, + "FollowRedirects": { + "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" + }, + "ProxyURL": { + "$ref": "#/definitions/URL" + }, + "TLSConfig": { + "$ref": "#/definitions/TLSConfig" + } + }, + "title": "HTTPClientConfig configures an HTTP client.", + "type": "object", + "x-go-package": "github.com/prometheus/common/config" + }, + "HostPort": { + "properties": { + "Host": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "title": "HostPort represents a \"host:port\" network address.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "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.", + "properties": { + "equal": { + "$ref": "#/definitions/LabelNames" + }, + "source_match": { + "additionalProperties": { + "type": "string" + }, + "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", + "x-go-name": "SourceMatch" + }, + "source_match_re": { + "$ref": "#/definitions/MatchRegexps" + }, + "source_matchers": { + "$ref": "#/definitions/Matchers" + }, + "target_match": { + "additionalProperties": { + "type": "string" + }, + "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", + "x-go-name": "TargetMatch" + }, + "target_match_re": { + "$ref": "#/definitions/MatchRegexps" + }, + "target_matchers": { + "$ref": "#/definitions/Matchers" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "Json": { + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/components/simplejson" + }, + "Label": { + "properties": { + "Name": { + "type": "string", + "x-go-name": "Value" + } + }, + "title": "Label is a key/value pair of strings.", + "type": "object", + "x-go-package": "github.com/prometheus/prometheus/pkg/labels" + }, + "LabelName": { + "description": "A LabelName is a key for a LabelSet or Metric. It has a value associated\ntherewith.", + "type": "string", + "x-go-package": "github.com/prometheus/common/model" + }, + "LabelNames": { + "items": { + "$ref": "#/definitions/LabelName" + }, + "title": "LabelNames is a sortable LabelName slice. In implements sort.Interface.", + "type": "array", + "x-go-package": "github.com/prometheus/common/model" + }, + "Labels": { + "description": "Labels is a sorted set of labels. Order has to be guaranteed upon\ninstantiation.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array", + "x-go-package": "github.com/prometheus/prometheus/pkg/labels" + }, + "MatchRegexps": { + "additionalProperties": { + "$ref": "#/definitions/Regexp" + }, + "title": "MatchRegexps represents a map of Regexp.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "MatchType": { + "format": "int64", + "title": "MatchType is an enum for label matching types.", + "type": "integer", + "x-go-package": "github.com/prometheus/alertmanager/pkg/labels" + }, + "Matcher": { + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/MatchType" + }, + "Value": { + "type": "string" + } + }, + "title": "Matcher models the matching of a label.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/pkg/labels" + }, + "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.", + "items": { + "$ref": "#/definitions/Matcher" + }, + "type": "array" + }, + "NamespaceConfigResponse": { + "additionalProperties": { + "items": { + "$ref": "#/definitions/GettableRuleGroupConfig" + }, + "type": "array" + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "NotifierConfig": { + "properties": { + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + } + }, + "title": "NotifierConfig contains base options common across all notifier configurations.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "OpsGenieConfig": { + "properties": { + "api_key": { + "$ref": "#/definitions/Secret" + }, + "api_url": { + "$ref": "#/definitions/URL" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "details": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Details" + }, + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "message": { + "type": "string", + "x-go-name": "Message" + }, + "note": { + "type": "string", + "x-go-name": "Note" + }, + "priority": { + "type": "string", + "x-go-name": "Priority" + }, + "responders": { + "items": { + "$ref": "#/definitions/OpsGenieConfigResponder" + }, + "type": "array", + "x-go-name": "Responders" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "source": { + "type": "string", + "x-go-name": "Source" + }, + "tags": { + "type": "string", + "x-go-name": "Tags" + } + }, + "title": "OpsGenieConfig configures notifications via OpsGenie.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "OpsGenieConfigResponder": { + "properties": { + "id": { + "description": "One of those 3 should be filled.", + "type": "string", + "x-go-name": "ID" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "type": { + "description": "team, user, escalation, schedule etc.", + "type": "string", + "x-go-name": "Type" + }, + "username": { + "type": "string", + "x-go-name": "Username" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "PagerdutyConfig": { + "properties": { + "class": { + "type": "string", + "x-go-name": "Class" + }, + "client": { + "type": "string", + "x-go-name": "Client" + }, + "client_url": { + "type": "string", + "x-go-name": "ClientURL" + }, + "component": { + "type": "string", + "x-go-name": "Component" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "details": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Details" + }, + "group": { + "type": "string", + "x-go-name": "Group" + }, + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "images": { + "items": { + "$ref": "#/definitions/PagerdutyImage" + }, + "type": "array", + "x-go-name": "Images" + }, + "links": { + "items": { + "$ref": "#/definitions/PagerdutyLink" + }, + "type": "array", + "x-go-name": "Links" + }, + "routing_key": { + "$ref": "#/definitions/Secret" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "service_key": { + "$ref": "#/definitions/Secret" + }, + "severity": { + "type": "string", + "x-go-name": "Severity" + }, + "url": { + "$ref": "#/definitions/URL" + } + }, + "title": "PagerdutyConfig configures notifications via PagerDuty.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "PagerdutyImage": { + "description": "PagerdutyImage is an image", + "properties": { + "alt": { + "type": "string", + "x-go-name": "Alt" + }, + "href": { + "type": "string", + "x-go-name": "Href" + }, + "src": { + "type": "string", + "x-go-name": "Src" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "PagerdutyLink": { + "description": "PagerdutyLink is a link", + "properties": { + "href": { + "type": "string", + "x-go-name": "Href" + }, + "text": { + "type": "string", + "x-go-name": "Text" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "Point": { + "properties": { + "T": { + "format": "int64", + "type": "integer" + }, + "V": { + "format": "double", + "type": "number" + } + }, + "title": "Point represents a single data point for a given timestamp.", + "type": "object", + "x-go-package": "github.com/prometheus/prometheus/promql" + }, + "PostableApiAlertingConfig": { + "properties": { + "global": { + "$ref": "#/definitions/GlobalConfig" + }, + "inhibit_rules": { + "items": { + "$ref": "#/definitions/InhibitRule" + }, + "type": "array", + "x-go-name": "InhibitRules" + }, + "receivers": { + "description": "Override with our superset receiver type", + "items": { + "$ref": "#/definitions/PostableApiReceiver" + }, + "type": "array", + "x-go-name": "Receivers" + }, + "route": { + "$ref": "#/definitions/Route" + }, + "templates": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Templates" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PostableApiReceiver": { + "properties": { + "email_configs": { + "items": { + "$ref": "#/definitions/EmailConfig" + }, + "type": "array", + "x-go-name": "EmailConfigs" + }, + "grafana_managed_receiver_configs": { + "items": { + "$ref": "#/definitions/PostableGrafanaReceiver" + }, + "type": "array", + "x-go-name": "GrafanaManagedReceivers" + }, + "name": { + "description": "A unique identifier for this receiver.", + "type": "string", + "x-go-name": "Name" + }, + "opsgenie_configs": { + "items": { + "$ref": "#/definitions/OpsGenieConfig" + }, + "type": "array", + "x-go-name": "OpsGenieConfigs" + }, + "pagerduty_configs": { + "items": { + "$ref": "#/definitions/PagerdutyConfig" + }, + "type": "array", + "x-go-name": "PagerdutyConfigs" + }, + "pushover_configs": { + "items": { + "$ref": "#/definitions/PushoverConfig" + }, + "type": "array", + "x-go-name": "PushoverConfigs" + }, + "slack_configs": { + "items": { + "$ref": "#/definitions/SlackConfig" + }, + "type": "array", + "x-go-name": "SlackConfigs" + }, + "victorops_configs": { + "items": { + "$ref": "#/definitions/VictorOpsConfig" + }, + "type": "array", + "x-go-name": "VictorOpsConfigs" + }, + "webhook_configs": { + "items": { + "$ref": "#/definitions/WebhookConfig" + }, + "type": "array", + "x-go-name": "WebhookConfigs" + }, + "wechat_configs": { + "items": { + "$ref": "#/definitions/WechatConfig" + }, + "type": "array", + "x-go-name": "WechatConfigs" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PostableExtendedRuleNode": { + "properties": { + "alert": { + "type": "string", + "x-go-name": "Alert" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Annotations" + }, + "expr": { + "type": "string", + "x-go-name": "Expr" + }, + "for": { + "$ref": "#/definitions/Duration" + }, + "grafana_alert": { + "$ref": "#/definitions/PostableGrafanaRule" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Labels" + }, + "record": { + "type": "string", + "x-go-name": "Record" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PostableGrafanaReceiver": { + "$ref": "#/definitions/CreateAlertNotificationCommand" + }, + "PostableGrafanaReceivers": { + "properties": { + "grafana_managed_receiver_configs": { + "items": { + "$ref": "#/definitions/PostableGrafanaReceiver" + }, + "type": "array", + "x-go-name": "GrafanaManagedReceivers" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PostableGrafanaRule": { + "properties": { + "condition": { + "type": "string", + "x-go-name": "Condition" + }, + "data": { + "items": { + "$ref": "#/definitions/AlertQuery" + }, + "type": "array", + "x-go-name": "Data" + }, + "exec_err_state": { + "enum": [ + "Alerting", + "KeepLastState" + ], + "type": "string", + "x-go-name": "ExecErrState" + }, + "no_data_state": { + "enum": [ + "Alerting", + "NoData", + "KeepLastState", + "OK" + ], + "type": "string", + "x-go-name": "NoDataState" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "uid": { + "type": "string", + "x-go-name": "UID" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PostableRuleGroupConfig": { + "properties": { + "interval": { + "$ref": "#/definitions/Duration" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "rules": { + "items": { + "$ref": "#/definitions/PostableExtendedRuleNode" + }, + "type": "array", + "x-go-name": "Rules" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PostableSilence": {}, + "PostableUserConfig": { + "properties": { + "alertmanager_config": { + "$ref": "#/definitions/PostableApiAlertingConfig" + }, + "template_files": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "TemplateFiles" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "PushoverConfig": { + "properties": { + "expire": { + "$ref": "#/definitions/duration" + }, + "html": { + "type": "boolean", + "x-go-name": "HTML" + }, + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "message": { + "type": "string", + "x-go-name": "Message" + }, + "priority": { + "type": "string", + "x-go-name": "Priority" + }, + "retry": { + "$ref": "#/definitions/duration" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "sound": { + "type": "string", + "x-go-name": "Sound" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "token": { + "$ref": "#/definitions/Secret" + }, + "url": { + "type": "string", + "x-go-name": "URL" + }, + "url_title": { + "type": "string", + "x-go-name": "URLTitle" + }, + "user_key": { + "$ref": "#/definitions/Secret" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "Receiver": { + "$ref": "#/definitions/receiver", + "properties": { + "email_configs": { + "items": { + "$ref": "#/definitions/EmailConfig" + }, + "type": "array", + "x-go-name": "EmailConfigs" + }, + "name": { + "description": "A unique identifier for this receiver.", + "type": "string", + "x-go-name": "Name" + }, + "opsgenie_configs": { + "items": { + "$ref": "#/definitions/OpsGenieConfig" + }, + "type": "array", + "x-go-name": "OpsGenieConfigs" + }, + "pagerduty_configs": { + "items": { + "$ref": "#/definitions/PagerdutyConfig" + }, + "type": "array", + "x-go-name": "PagerdutyConfigs" + }, + "pushover_configs": { + "items": { + "$ref": "#/definitions/PushoverConfig" + }, + "type": "array", + "x-go-name": "PushoverConfigs" + }, + "slack_configs": { + "items": { + "$ref": "#/definitions/SlackConfig" + }, + "type": "array", + "x-go-name": "SlackConfigs" + }, + "victorops_configs": { + "items": { + "$ref": "#/definitions/VictorOpsConfig" + }, + "type": "array", + "x-go-name": "VictorOpsConfigs" + }, + "webhook_configs": { + "items": { + "$ref": "#/definitions/WebhookConfig" + }, + "type": "array", + "x-go-name": "WebhookConfigs" + }, + "wechat_configs": { + "items": { + "$ref": "#/definitions/WechatConfig" + }, + "type": "array", + "x-go-name": "WechatConfigs" + } + }, + "title": "Receiver configuration provides configuration on how to contact a receiver.", + "type": "object" + }, + "Regexp": { + "description": "A Regexp is safe for concurrent use by multiple goroutines,\nexcept for configuration methods, such as Longest.", + "title": "Regexp is the representation of a compiled regular expression.", + "type": "object", + "x-go-package": "regexp" + }, + "RelativeTimeRange": { + "description": "RelativeTimeRange is the per query start and end time\nfor requests.", + "properties": { + "from": { + "$ref": "#/definitions/Duration" + }, + "to": { + "$ref": "#/definitions/Duration" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/models" + }, + "ResponseDetails": { + "properties": { + "msg": { + "type": "string", + "x-go-name": "Msg" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "Route": { + "properties": { + "continue": { + "type": "boolean", + "x-go-name": "Continue" + }, + "group_by": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "GroupByStr" + }, + "group_interval": { + "$ref": "#/definitions/Duration" + }, + "group_wait": { + "$ref": "#/definitions/Duration" + }, + "match": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Remove before v1.0 release.", + "type": "object", + "x-go-name": "Match" + }, + "match_re": { + "$ref": "#/definitions/MatchRegexps" }, "matchers": { - "description": "Matchers matchers", - "items": { - "$ref": "#/definitions/matcher" - }, - "type": "array", - "x-go-name": "Matchers", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "$ref": "#/definitions/Matchers" }, - "peerStatus": { - "description": "PeerStatus peer status", - "properties": { - "address": { - "description": "address", - "type": "string", - "x-go-name": "Address" - }, - "name": { - "description": "name", - "type": "string", - "x-go-name": "Name" - } - }, - "required": [ - "address", - "name" - ], - "type": "object", - "x-go-name": "PeerStatus", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "postableAlert": { - "description": "PostableAlert postable alert", - "properties": { - "annotations": { - "$ref": "#/definitions/labelSet" - }, - "endsAt": { - "description": "ends at\nFormat: date-time", - "format": "date-time", - "type": "string", - "x-go-name": "EndsAt" - }, - "generatorURL": { - "description": "generator URL\nFormat: uri", - "format": "uri", - "type": "string", - "x-go-name": "GeneratorURL" - }, - "labels": { - "$ref": "#/definitions/labelSet" - }, - "startsAt": { - "description": "starts at\nFormat: date-time", - "format": "date-time", - "type": "string", - "x-go-name": "StartsAt" - } - }, - "required": [ - "labels" - ], - "type": "object", - "x-go-name": "PostableAlert", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "postableAlerts": { - "description": "PostableAlerts postable alerts", - "items": { - "$ref": "#/definitions/postableAlert" - }, - "type": "array", - "x-go-name": "PostableAlerts", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" - }, - "postableSilence": { - "description": "PostableSilence postable silence", - "properties": { - "comment": { - "description": "comment", - "type": "string", - "x-go-name": "Comment" - }, - "createdBy": { - "description": "created by", - "type": "string", - "x-go-name": "CreatedBy" - }, - "endsAt": { - "description": "ends at", - "format": "date-time", - "type": "string", - "x-go-name": "EndsAt" - }, - "id": { - "description": "id", - "type": "string", - "x-go-name": "ID" - }, - "matchers": { - "$ref": "#/definitions/matchers" - }, - "startsAt": { - "description": "starts at", - "format": "date-time", - "type": "string", - "x-go-name": "StartsAt" - } - }, - "required": [ - "comment", - "createdBy", - "endsAt", - "matchers", - "startsAt" - ], - "type": "object", - "x-go-name": "PostableSilence", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "mute_time_intervals": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MuteTimeIntervals" }, "receiver": { - "description": "Receiver receiver", - "properties": { - "name": { - "description": "name", - "type": "string", - "x-go-name": "Name" - } - }, - "required": [ - "name" - ], - "type": "object", - "x-go-name": "Receiver", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "type": "string", + "x-go-name": "Receiver" }, - "silence": { - "description": "Silence silence", - "properties": { - "comment": { - "description": "comment", - "type": "string", - "x-go-name": "Comment" - }, - "createdBy": { - "description": "created by", - "type": "string", - "x-go-name": "CreatedBy" - }, - "endsAt": { - "description": "ends at", - "format": "date-time", - "type": "string", - "x-go-name": "EndsAt" - }, - "matchers": { - "$ref": "#/definitions/matchers" - }, - "startsAt": { - "description": "starts at", - "format": "date-time", - "type": "string", - "x-go-name": "StartsAt" - } - }, - "required": [ - "comment", - "createdBy", - "endsAt", - "matchers", - "startsAt" - ], - "type": "object", - "x-go-name": "Silence", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "repeat_interval": { + "$ref": "#/definitions/Duration" }, - "silenceStatus": { - "description": "SilenceStatus silence status", - "properties": { - "state": { - "description": "state", - "enum": [ - "[expired active pending]" - ], - "type": "string", - "x-go-name": "State" - } - }, - "required": [ - "state" - ], - "type": "object", - "x-go-name": "SilenceStatus", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "routes": { + "items": { + "$ref": "#/definitions/Route" + }, + "type": "array", + "x-go-name": "Routes" + } + }, + "title": "A Route is a node that contains definitions of how to handle alerts.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "Rule": { + "description": "adapted from cortex", + "properties": { + "evaluationTime": { + "format": "double", + "type": "number", + "x-go-name": "EvaluationTime" + }, + "health": { + "type": "string", + "x-go-name": "Health" + }, + "labels": { + "$ref": "#/definitions/labels" + }, + "lastError": { + "type": "string", + "x-go-name": "LastError" + }, + "lastEvaluation": { + "format": "date-time", + "type": "string", + "x-go-name": "LastEvaluation" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "type": { + "$ref": "#/definitions/RuleType" + } + }, + "required": [ + "name", + "query", + "health", + "type" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "RuleDiscovery": { + "properties": { + "groups": { + "items": { + "$ref": "#/definitions/RuleGroup" + }, + "type": "array", + "x-go-name": "RuleGroups" + } + }, + "required": [ + "groups" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "RuleGroup": { + "properties": { + "evaluationTime": { + "format": "double", + "type": "number", + "x-go-name": "EvaluationTime" + }, + "file": { + "type": "string", + "x-go-name": "File" + }, + "interval": { + "format": "double", + "type": "number", + "x-go-name": "Interval" + }, + "lastEvaluation": { + "format": "date-time", + "type": "string", + "x-go-name": "LastEvaluation" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "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.", + "items": { + "$ref": "#/definitions/AlertingRule" + }, + "type": "array", + "x-go-name": "Rules" + } + }, + "required": [ + "name", + "file", + "rules", + "interval" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "RuleGroupConfigResponse": { + "properties": { + "interval": { + "$ref": "#/definitions/Duration" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "rules": { + "items": { + "$ref": "#/definitions/GettableExtendedRuleNode" + }, + "type": "array", + "x-go-name": "Rules" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "RuleResponse": { + "properties": { + "data": { + "$ref": "#/definitions/RuleDiscovery" + }, + "error": { + "type": "string", + "x-go-name": "Error" + }, + "errorType": { + "$ref": "#/definitions/ErrorType" + }, + "status": { + "type": "string", + "x-go-name": "Status" + } + }, + "required": [ + "status" + ], + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "RuleType": { + "title": "RuleType models the type of a rule.", + "type": "string", + "x-go-package": "github.com/prometheus/client_golang/api/prometheus/v1" + }, + "Sample": { + "properties": { + "Metric": { + "$ref": "#/definitions/Labels" + }, + "T": { + "format": "int64", + "type": "integer" + }, + "V": { + "format": "double", + "type": "number" + } + }, + "title": "Sample is a single sample belonging to a metric.", + "type": "object", + "x-go-package": "github.com/prometheus/prometheus/promql" + }, + "Secret": { + "title": "Secret special type for storing secrets.", + "type": "string", + "x-go-package": "github.com/prometheus/common/config" + }, + "SecretURL": { + "$ref": "#/definitions/URL", + "title": "SecretURL is a URL that must not be revealed on marshaling." + }, + "SecureJsonData": { + "additionalProperties": { + "items": { + "format": "uint8", + "type": "integer" + }, + "type": "array" + }, + "description": "SecureJsonData is used to store encrypted data (for example in data_source table). Only values are separately\nencrypted.", + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/components/securejsondata" + }, + "SlackAction": { + "description": "See https://api.slack.com/docs/message-attachments#action_fields and https://api.slack.com/docs/message-buttons\nfor more information.", + "properties": { + "confirm": { + "$ref": "#/definitions/SlackConfirmationField" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "style": { + "type": "string", + "x-go-name": "Style" + }, + "text": { + "type": "string", + "x-go-name": "Text" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "url": { + "type": "string", + "x-go-name": "URL" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "title": "SlackAction configures a single Slack action that is sent with each notification.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "SlackConfig": { + "properties": { + "actions": { + "items": { + "$ref": "#/definitions/SlackAction" + }, + "type": "array", + "x-go-name": "Actions" + }, + "api_url": { + "$ref": "#/definitions/SecretURL" + }, + "callback_id": { + "type": "string", + "x-go-name": "CallbackID" + }, + "channel": { + "description": "Slack channel override, (like #other-channel or @username).", + "type": "string", + "x-go-name": "Channel" + }, + "color": { + "type": "string", + "x-go-name": "Color" + }, + "fallback": { + "type": "string", + "x-go-name": "Fallback" + }, + "fields": { + "items": { + "$ref": "#/definitions/SlackField" + }, + "type": "array", + "x-go-name": "Fields" + }, + "footer": { + "type": "string", + "x-go-name": "Footer" + }, + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "icon_emoji": { + "type": "string", + "x-go-name": "IconEmoji" + }, + "icon_url": { + "type": "string", + "x-go-name": "IconURL" + }, + "image_url": { + "type": "string", + "x-go-name": "ImageURL" + }, + "link_names": { + "type": "boolean", + "x-go-name": "LinkNames" + }, + "mrkdwn_in": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MrkdwnIn" + }, + "pretext": { + "type": "string", + "x-go-name": "Pretext" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "short_fields": { + "type": "boolean", + "x-go-name": "ShortFields" + }, + "text": { + "type": "string", + "x-go-name": "Text" + }, + "thumb_url": { + "type": "string", + "x-go-name": "ThumbURL" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "title_link": { + "type": "string", + "x-go-name": "TitleLink" + }, + "username": { + "type": "string", + "x-go-name": "Username" + } + }, + "title": "SlackConfig configures notifications via Slack.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "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.", + "properties": { + "dismiss_text": { + "type": "string", + "x-go-name": "DismissText" + }, + "ok_text": { + "type": "string", + "x-go-name": "OkText" + }, + "text": { + "type": "string", + "x-go-name": "Text" + }, + "title": { + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "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.", + "properties": { + "short": { + "type": "boolean", + "x-go-name": "Short" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "title": "SlackField configures a single Slack field that is sent with each notification.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "SmtpNotEnabled": { + "$ref": "#/definitions/ResponseDetails" + }, + "Success": { + "$ref": "#/definitions/ResponseDetails" + }, + "TLSConfig": { + "properties": { + "CAFile": { + "description": "The CA cert to use for the targets.", + "type": "string" + }, + "CertFile": { + "description": "The client cert file for the targets.", + "type": "string" + }, + "InsecureSkipVerify": { + "description": "Disable target certificate validation.", + "type": "boolean" + }, + "KeyFile": { + "description": "The client key file for the targets.", + "type": "string" + }, + "ServerName": { + "description": "Used to verify the hostname for the targets.", + "type": "string" + } + }, + "title": "TLSConfig configures the options for TLS connections.", + "type": "object", + "x-go-package": "github.com/prometheus/common/config" + }, + "TestRulePayload": { + "properties": { + "expr": { + "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)", + "type": "string", + "x-go-name": "Expr" + }, + "grafana_condition": { + "$ref": "#/definitions/EvalAlertConditionCommand" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "TestRuleResponse": { + "properties": { + "alerts": { + "$ref": "#/definitions/Vector" + }, + "grafana_alert_instances": { + "$ref": "#/definitions/AlertInstancesResponse" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "URL": { + "description": "The general form represented is:\n\n[scheme:][//[userinfo@]host][/]path[?query][#fragment]\n\nURLs that do not start with a slash after the scheme are interpreted as:\n\nscheme:opaque[?query][#fragment]\n\nNote that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.\nA consequence is that it is impossible to tell which slashes in the Path were\nslashes in the raw URL and which were %2f. This distinction is rarely important,\nbut when it is, the code should use RawPath, an optional field which only gets\nset if the default encoding is different from Path.\n\nURL's String method uses the EscapedPath method to obtain the path. See the\nEscapedPath method for more details.", + "properties": { + "ForceQuery": { + "type": "boolean" + }, + "Fragment": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Opaque": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "RawFragment": { + "type": "string" + }, + "RawPath": { + "type": "string" + }, + "RawQuery": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "User": { + "$ref": "#/definitions/Userinfo" + } + }, + "title": "A URL represents a parsed URL (technically, a URI reference).", + "type": "object", + "x-go-package": "net/url" + }, + "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", + "x-go-package": "net/url" + }, + "ValidationError": { + "properties": { + "msg": { + "type": "string", + "x-go-name": "Msg" + } + }, + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "Vector": { + "description": "Vector is basically only an alias for model.Samples, but the\ncontract is that in a Vector, all Samples have the same timestamp.", + "items": { + "$ref": "#/definitions/Sample" + }, + "type": "array", + "x-go-package": "github.com/prometheus/prometheus/promql" + }, + "VictorOpsConfig": { + "properties": { + "api_key": { + "$ref": "#/definitions/Secret" + }, + "api_url": { + "$ref": "#/definitions/URL" + }, + "custom_fields": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "CustomFields" + }, + "entity_display_name": { + "type": "string", + "x-go-name": "EntityDisplayName" + }, + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "message_type": { + "type": "string", + "x-go-name": "MessageType" + }, + "monitoring_tool": { + "type": "string", + "x-go-name": "MonitoringTool" + }, + "routing_key": { + "type": "string", + "x-go-name": "RoutingKey" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "state_message": { + "type": "string", + "x-go-name": "StateMessage" + } + }, + "title": "VictorOpsConfig configures notifications via VictorOps.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "WebhookConfig": { + "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.", + "format": "uint64", + "type": "integer", + "x-go-name": "MaxAlerts" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "url": { + "$ref": "#/definitions/URL" + } + }, + "title": "WebhookConfig configures notifications via a generic webhook.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "WechatConfig": { + "properties": { + "agent_id": { + "type": "string", + "x-go-name": "AgentID" + }, + "api_secret": { + "$ref": "#/definitions/Secret" + }, + "api_url": { + "$ref": "#/definitions/URL" + }, + "corp_id": { + "type": "string", + "x-go-name": "CorpID" + }, + "http_config": { + "$ref": "#/definitions/HTTPClientConfig" + }, + "message": { + "type": "string", + "x-go-name": "Message" + }, + "message_type": { + "type": "string", + "x-go-name": "MessageType" + }, + "send_resolved": { + "type": "boolean", + "x-go-name": "VSendResolved" + }, + "to_party": { + "type": "string", + "x-go-name": "ToParty" + }, + "to_tag": { + "type": "string", + "x-go-name": "ToTag" + }, + "to_user": { + "type": "string", + "x-go-name": "ToUser" + } + }, + "title": "WechatConfig configures notifications via Wechat.", + "type": "object", + "x-go-package": "github.com/prometheus/alertmanager/config" + }, + "alert": { + "description": "Alert alert", + "properties": { + "generatorURL": { + "description": "generator URL\nFormat: uri", + "format": "uri", + "type": "string", + "x-go-name": "GeneratorURL" + }, + "labels": { + "$ref": "#/definitions/labelSet" + } + }, + "required": [ + "labels" + ], + "type": "object", + "x-go-name": "Alert", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "alertGroup": { + "description": "AlertGroup alert group", + "properties": { + "alerts": { + "description": "alerts", + "items": { + "$ref": "#/definitions/gettableAlert" + }, + "type": "array", + "x-go-name": "Alerts" + }, + "labels": { + "$ref": "#/definitions/labelSet" + }, + "receiver": { + "$ref": "#/definitions/Receiver" + } + }, + "required": [ + "alerts", + "labels", + "receiver" + ], + "type": "object", + "x-go-name": "AlertGroup", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "alertGroups": { + "description": "AlertGroups alert groups", + "items": { + "$ref": "#/definitions/alertGroup" + }, + "type": "array", + "x-go-name": "AlertGroups", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "alertStatus": { + "description": "AlertStatus alert status", + "properties": { + "inhibitedBy": { + "description": "inhibited by", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "InhibitedBy" + }, + "silencedBy": { + "description": "silenced by", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "SilencedBy" + }, + "state": { + "description": "state", + "enum": [ + "[unprocessed active suppressed]" + ], + "type": "string", + "x-go-name": "State" + } + }, + "required": [ + "inhibitedBy", + "silencedBy", + "state" + ], + "type": "object", + "x-go-name": "AlertStatus", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "alertmanagerConfig": { + "description": "AlertmanagerConfig alertmanager config", + "properties": { + "original": { + "description": "original", + "type": "string", + "x-go-name": "Original" + } + }, + "required": [ + "original" + ], + "type": "object", + "x-go-name": "AlertmanagerConfig", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "alertmanagerStatus": { + "description": "AlertmanagerStatus alertmanager status", + "properties": { + "cluster": { + "$ref": "#/definitions/clusterStatus" + }, + "config": { + "$ref": "#/definitions/alertmanagerConfig" + }, + "uptime": { + "description": "uptime", + "format": "date-time", + "type": "string", + "x-go-name": "Uptime" }, "versionInfo": { - "description": "VersionInfo version info", - "properties": { - "branch": { - "description": "branch", - "type": "string", - "x-go-name": "Branch" - }, - "buildDate": { - "description": "build date", - "type": "string", - "x-go-name": "BuildDate" - }, - "buildUser": { - "description": "build user", - "type": "string", - "x-go-name": "BuildUser" - }, - "goVersion": { - "description": "go version", - "type": "string", - "x-go-name": "GoVersion" - }, - "revision": { - "description": "revision", - "type": "string", - "x-go-name": "Revision" - }, - "version": { - "description": "version", - "type": "string", - "x-go-name": "Version" - } - }, - "required": [ - "branch", - "buildDate", - "buildUser", - "goVersion", - "revision", - "version" - ], - "type": "object", - "x-go-name": "VersionInfo", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "$ref": "#/definitions/versionInfo" } + }, + "required": [ + "cluster", + "config", + "uptime", + "versionInfo" + ], + "type": "object", + "x-go-name": "AlertmanagerStatus", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, - "info": { - "description": "Package definitions includes the types required for generating or consuming an OpenAPI\nspec for the Unified Alerting API.\nDocumentation of the API.", - "title": "Unified Alerting API", - "version": "1.1.0" - }, - "paths": { - "/api/alertmanager/{Recipient}/api/v2/alerts": { - "get": { - "description": "get alertmanager alerts", - "operationId": "RouteGetAMAlerts", - "parameters": [ - { - "default": true, - "description": "Show active alerts", - "in": "query", - "name": "active", - "type": "boolean", - "x-go-name": "Active" - }, - { - "default": true, - "description": "Show silenced alerts", - "in": "query", - "name": "silenced", - "type": "boolean", - "x-go-name": "Silenced" - }, - { - "default": true, - "description": "Show inhibited alerts", - "in": "query", - "name": "inhibited", - "type": "boolean", - "x-go-name": "Inhibited" - }, - { - "description": "A list of matchers to filter alerts by", - "in": "query", - "items": { - "type": "string" - }, - "name": "filter", - "type": "array", - "x-go-name": "Matchers" - }, - { - "description": "A regex matching receivers to filter alerts by", - "in": "query", - "name": "receiver", - "type": "string", - "x-go-name": "Receivers" - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "GettableAlerts", - "schema": { - "$ref": "#/definitions/GettableAlerts" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - }, - "post": { - "description": "create alertmanager alerts", - "operationId": "RoutePostAMAlerts", - "parameters": [ - { - "in": "body", - "name": "PostableAlerts", - "schema": { - "items": { - "$ref": "#/definitions/postableAlert" - }, - "type": "array" - } - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - } + "clusterStatus": { + "description": "ClusterStatus cluster status", + "properties": { + "name": { + "description": "name", + "type": "string", + "x-go-name": "Name" }, - "/api/alertmanager/{Recipient}/api/v2/alerts/groups": { - "get": { - "description": "get alertmanager alerts", - "operationId": "RouteGetAMAlertGroups", - "parameters": [ - { - "default": true, - "description": "Show active alerts", - "in": "query", - "name": "active", - "type": "boolean", - "x-go-name": "Active" - }, - { - "default": true, - "description": "Show silenced alerts", - "in": "query", - "name": "silenced", - "type": "boolean", - "x-go-name": "Silenced" - }, - { - "default": true, - "description": "Show inhibited alerts", - "in": "query", - "name": "inhibited", - "type": "boolean", - "x-go-name": "Inhibited" - }, - { - "description": "A list of matchers to filter alerts by", - "in": "query", - "items": { - "type": "string" - }, - "name": "filter", - "type": "array", - "x-go-name": "Matchers" - }, - { - "description": "A regex matching receivers to filter alerts by", - "in": "query", - "name": "receiver", - "type": "string", - "x-go-name": "Receivers" - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "AlertGroups", - "schema": { - "$ref": "#/definitions/AlertGroups" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - } + "peers": { + "description": "peers", + "items": { + "$ref": "#/definitions/peerStatus" + }, + "type": "array", + "x-go-name": "Peers" }, - "/api/alertmanager/{Recipient}/api/v2/silence/{SilenceId}": { - "delete": { - "description": "delete silence", - "operationId": "RouteDeleteSilence", - "parameters": [ - { - "in": "path", - "name": "SilenceId", - "required": true, - "type": "string" - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - }, - "get": { - "description": "get silence", - "operationId": "RouteGetSilence", - "parameters": [ - { - "in": "path", - "name": "SilenceId", - "required": true, - "type": "string" - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "GettableSilence", - "schema": { - "$ref": "#/definitions/GettableSilence" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - } - }, - "/api/alertmanager/{Recipient}/api/v2/silences": { - "get": { - "description": "get silences", - "operationId": "RouteGetSilences", - "parameters": [ - { - "in": "query", - "items": { - "type": "string" - }, - "name": "filter", - "type": "array", - "x-go-name": "Filter" - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "GettableSilences", - "schema": { - "$ref": "#/definitions/GettableSilences" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - }, - "post": { - "description": "create silence", - "operationId": "RouteCreateSilence", - "parameters": [ - { - "in": "body", - "name": "Silence", - "schema": { - "$ref": "#/definitions/postableSilence" - } - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "201": { - "description": "GettableSilence", - "schema": { - "$ref": "#/definitions/GettableSilence" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - } - }, - "/api/alertmanager/{Recipient}/config/api/v1/alerts": { - "delete": { - "description": "deletes the Alerting config for a tenant", - "operationId": "RouteDeleteAlertingConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - }, - "get": { - "description": "gets an Alerting config", - "operationId": "RouteGetAlertingConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "GettableUserConfig", - "schema": { - "$ref": "#/definitions/GettableUserConfig" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - }, - "post": { - "description": "sets an Alerting config", - "operationId": "RoutePostAlertingConfig", - "parameters": [ - { - "in": "body", - "name": "Body", - "schema": { - "$ref": "#/definitions/PostableUserConfig" - } - }, - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "201": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - }, - "400": { - "description": "ValidationError", - "schema": { - "$ref": "#/definitions/ValidationError" - } - } - }, - "tags": [ - "alertmanager" - ] - } - }, - "/api/prometheus/{Recipient}/api/v1/alerts": { - "get": { - "description": "gets the current alerts", - "operationId": "RouteGetAlertStatuses", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "AlertResponse", - "schema": { - "$ref": "#/definitions/AlertResponse" - } - } - }, - "tags": [ - "prometheus" - ] - } - }, - "/api/prometheus/{Recipient}/api/v1/rules": { - "get": { - "description": "gets the evaluation statuses of all rules", - "operationId": "RouteGetRuleStatuses", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "RuleResponse", - "schema": { - "$ref": "#/definitions/RuleResponse" - } - } - }, - "tags": [ - "prometheus" - ] - } - }, - "/api/ruler/{Recipient}/api/v1/rules": { - "get": { - "description": "List rule groups", - "operationId": "RouteGetRulesConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "202": { - "description": "NamespaceConfigResponse", - "schema": { - "$ref": "#/definitions/NamespaceConfigResponse" - } - } - }, - "tags": [ - "ruler" - ] - } - }, - "/api/ruler/{Recipient}/api/v1/rules/{Namespace}": { - "delete": { - "description": "Delete namespace", - "operationId": "RouteDeleteNamespaceRulesConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Namespace", - "required": true, - "type": "string" - } - ], - "responses": { - "202": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - } - }, - "tags": [ - "ruler" - ] - }, - "get": { - "description": "Get rule groups by namespace", - "operationId": "RouteGetNamespaceRulesConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Namespace", - "required": true, - "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "202": { - "description": "NamespaceConfigResponse", - "schema": { - "$ref": "#/definitions/NamespaceConfigResponse" - } - } - }, - "tags": [ - "ruler" - ] - }, - "post": { - "consumes": [ - "application/json", - "application/yaml" - ], - "description": "Creates or updates a rule group", - "operationId": "RoutePostNameRulesConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Namespace", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "Body", - "schema": { - "$ref": "#/definitions/PostableRuleGroupConfig" - } - } - ], - "responses": { - "202": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - } - }, - "tags": [ - "ruler" - ] - } - }, - "/api/ruler/{Recipient}/api/v1/rules/{Namespace}/{Groupname}": { - "delete": { - "description": "Delete rule group", - "operationId": "RouteDeleteRuleGroupConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Namespace", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Groupname", - "required": true, - "type": "string" - } - ], - "responses": { - "202": { - "description": "Ack", - "schema": { - "$ref": "#/definitions/Ack" - } - } - }, - "tags": [ - "ruler" - ] - }, - "get": { - "description": "Get rule group", - "operationId": "RouteGetRulegGroupConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Namespace", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "Groupname", - "required": true, - "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "202": { - "description": "RuleGroupConfigResponse", - "schema": { - "$ref": "#/definitions/RuleGroupConfigResponse" - } - } - }, - "tags": [ - "ruler" - ] - } - }, - "/api/v1/eval": { - "post": { - "consumes": [ - "application/json" - ], - "description": "Test rule", - "operationId": "RouteEvalQueries", - "parameters": [ - { - "in": "body", - "name": "Body", - "schema": { - "$ref": "#/definitions/EvalQueriesPayload" - } - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "EvalQueriesResponse", - "schema": { - "$ref": "#/definitions/EvalQueriesResponse" - } - } - }, - "tags": [ - "testing" - ] - } - }, - "/api/v1/receiver/test/{Recipient}": { - "post": { - "consumes": [ - "application/json" - ], - "description": "Test receiver", - "operationId": "RouteTestReceiverConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "Body", - "schema": { - "$ref": "#/definitions/ExtendedReceiver" - } - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/Success" - } - }, - "412": { - "description": "SmtpNotEnabled", - "schema": { - "$ref": "#/definitions/SmtpNotEnabled" - } - }, - "500": { - "description": "Failure", - "schema": { - "$ref": "#/definitions/Failure" - } - } - }, - "tags": [ - "testing" - ] - } - }, - "/api/v1/rule/test/{Recipient}": { - "post": { - "consumes": [ - "application/json" - ], - "description": "Test rule", - "operationId": "RouteTestRuleConfig", - "parameters": [ - { - "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", - "in": "path", - "name": "Recipient", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "Body", - "schema": { - "$ref": "#/definitions/TestRulePayload" - } - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "TestRuleResponse", - "schema": { - "$ref": "#/definitions/TestRuleResponse" - } - } - }, - "tags": [ - "testing" - ] - } + "status": { + "description": "status", + "enum": [ + "[ready settling disabled]" + ], + "type": "string", + "x-go-name": "Status" } + }, + "required": [ + "status" + ], + "type": "object", + "x-go-name": "ClusterStatus", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, - "swagger": "2.0" + "duration": { + "$ref": "#/definitions/Duration" + }, + "gettableAlert": { + "description": "GettableAlert gettable alert", + "properties": { + "annotations": { + "$ref": "#/definitions/labelSet" + }, + "endsAt": { + "description": "ends at", + "format": "date-time", + "type": "string", + "x-go-name": "EndsAt" + }, + "fingerprint": { + "description": "fingerprint", + "type": "string", + "x-go-name": "Fingerprint" + }, + "generatorURL": { + "description": "generator URL\nFormat: uri", + "format": "uri", + "type": "string", + "x-go-name": "GeneratorURL" + }, + "labels": { + "$ref": "#/definitions/labelSet" + }, + "receivers": { + "description": "receivers", + "items": { + "$ref": "#/definitions/Receiver" + }, + "type": "array", + "x-go-name": "Receivers" + }, + "startsAt": { + "description": "starts at", + "format": "date-time", + "type": "string", + "x-go-name": "StartsAt" + }, + "status": { + "$ref": "#/definitions/alertStatus" + }, + "updatedAt": { + "description": "updated at", + "format": "date-time", + "type": "string", + "x-go-name": "UpdatedAt" + } + }, + "required": [ + "labels", + "annotations", + "endsAt", + "fingerprint", + "receivers", + "startsAt", + "status", + "updatedAt" + ], + "type": "object", + "x-go-name": "GettableAlert", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "gettableAlerts": { + "description": "GettableAlerts gettable alerts", + "items": { + "$ref": "#/definitions/gettableAlert" + }, + "type": "array", + "x-go-name": "GettableAlerts", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "gettableSilence": { + "description": "GettableSilence gettable silence", + "properties": { + "comment": { + "description": "comment", + "type": "string", + "x-go-name": "Comment" + }, + "createdBy": { + "description": "created by", + "type": "string", + "x-go-name": "CreatedBy" + }, + "endsAt": { + "description": "ends at", + "format": "date-time", + "type": "string", + "x-go-name": "EndsAt" + }, + "id": { + "description": "id", + "type": "string", + "x-go-name": "ID" + }, + "matchers": { + "$ref": "#/definitions/matchers" + }, + "startsAt": { + "description": "starts at", + "format": "date-time", + "type": "string", + "x-go-name": "StartsAt" + }, + "status": { + "$ref": "#/definitions/silenceStatus" + }, + "updatedAt": { + "description": "updated at", + "format": "date-time", + "type": "string", + "x-go-name": "UpdatedAt" + } + }, + "required": [ + "comment", + "createdBy", + "endsAt", + "matchers", + "startsAt", + "id", + "status", + "updatedAt" + ], + "type": "object", + "x-go-name": "GettableSilence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "gettableSilences": { + "description": "GettableSilences gettable silences", + "items": { + "$ref": "#/definitions/gettableSilence" + }, + "type": "array", + "x-go-name": "GettableSilences", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "labelSet": { + "additionalProperties": { + "type": "string" + }, + "description": "LabelSet label set", + "type": "object", + "x-go-name": "LabelSet", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The custom marshaling for labels.Labels ends up doing this anyways.", + "title": "override the labels type with a map for generation.", + "type": "object", + "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" + }, + "matcher": { + "description": "Matcher matcher", + "properties": { + "isEqual": { + "description": "is equal", + "type": "boolean", + "x-go-name": "IsEqual" + }, + "isRegex": { + "description": "is regex", + "type": "boolean", + "x-go-name": "IsRegex" + }, + "name": { + "description": "name", + "type": "string", + "x-go-name": "Name" + }, + "value": { + "description": "value", + "type": "string", + "x-go-name": "Value" + } + }, + "required": [ + "isRegex", + "name", + "value" + ], + "type": "object", + "x-go-name": "Matcher", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "matchers": { + "description": "Matchers matchers", + "items": { + "$ref": "#/definitions/matcher" + }, + "type": "array", + "x-go-name": "Matchers", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "peerStatus": { + "description": "PeerStatus peer status", + "properties": { + "address": { + "description": "address", + "type": "string", + "x-go-name": "Address" + }, + "name": { + "description": "name", + "type": "string", + "x-go-name": "Name" + } + }, + "required": [ + "address", + "name" + ], + "type": "object", + "x-go-name": "PeerStatus", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "postableAlert": { + "description": "PostableAlert postable alert", + "properties": { + "annotations": { + "$ref": "#/definitions/labelSet" + }, + "endsAt": { + "description": "ends at\nFormat: date-time", + "format": "date-time", + "type": "string", + "x-go-name": "EndsAt" + }, + "generatorURL": { + "description": "generator URL\nFormat: uri", + "format": "uri", + "type": "string", + "x-go-name": "GeneratorURL" + }, + "labels": { + "$ref": "#/definitions/labelSet" + }, + "startsAt": { + "description": "starts at\nFormat: date-time", + "format": "date-time", + "type": "string", + "x-go-name": "StartsAt" + } + }, + "required": [ + "labels" + ], + "type": "object", + "x-go-name": "PostableAlert", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "postableAlerts": { + "description": "PostableAlerts postable alerts", + "items": { + "$ref": "#/definitions/postableAlert" + }, + "type": "array", + "x-go-name": "PostableAlerts", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "postableSilence": { + "description": "PostableSilence postable silence", + "properties": { + "comment": { + "description": "comment", + "type": "string", + "x-go-name": "Comment" + }, + "createdBy": { + "description": "created by", + "type": "string", + "x-go-name": "CreatedBy" + }, + "endsAt": { + "description": "ends at", + "format": "date-time", + "type": "string", + "x-go-name": "EndsAt" + }, + "id": { + "description": "id", + "type": "string", + "x-go-name": "ID" + }, + "matchers": { + "$ref": "#/definitions/matchers" + }, + "startsAt": { + "description": "starts at", + "format": "date-time", + "type": "string", + "x-go-name": "StartsAt" + } + }, + "required": [ + "comment", + "createdBy", + "endsAt", + "matchers", + "startsAt" + ], + "type": "object", + "x-go-name": "PostableSilence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "receiver": { + "description": "Receiver receiver", + "properties": { + "name": { + "description": "name", + "type": "string", + "x-go-name": "Name" + } + }, + "required": [ + "name" + ], + "type": "object", + "x-go-name": "Receiver", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "silence": { + "description": "Silence silence", + "properties": { + "comment": { + "description": "comment", + "type": "string", + "x-go-name": "Comment" + }, + "createdBy": { + "description": "created by", + "type": "string", + "x-go-name": "CreatedBy" + }, + "endsAt": { + "description": "ends at", + "format": "date-time", + "type": "string", + "x-go-name": "EndsAt" + }, + "matchers": { + "$ref": "#/definitions/matchers" + }, + "startsAt": { + "description": "starts at", + "format": "date-time", + "type": "string", + "x-go-name": "StartsAt" + } + }, + "required": [ + "comment", + "createdBy", + "endsAt", + "matchers", + "startsAt" + ], + "type": "object", + "x-go-name": "Silence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "silenceStatus": { + "description": "SilenceStatus silence status", + "properties": { + "state": { + "description": "state", + "enum": [ + "[expired active pending]" + ], + "type": "string", + "x-go-name": "State" + } + }, + "required": [ + "state" + ], + "type": "object", + "x-go-name": "SilenceStatus", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + }, + "versionInfo": { + "description": "VersionInfo version info", + "properties": { + "branch": { + "description": "branch", + "type": "string", + "x-go-name": "Branch" + }, + "buildDate": { + "description": "build date", + "type": "string", + "x-go-name": "BuildDate" + }, + "buildUser": { + "description": "build user", + "type": "string", + "x-go-name": "BuildUser" + }, + "goVersion": { + "description": "go version", + "type": "string", + "x-go-name": "GoVersion" + }, + "revision": { + "description": "revision", + "type": "string", + "x-go-name": "Revision" + }, + "version": { + "description": "version", + "type": "string", + "x-go-name": "Version" + } + }, + "required": [ + "branch", + "buildDate", + "buildUser", + "goVersion", + "revision", + "version" + ], + "type": "object", + "x-go-name": "VersionInfo", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + } + }, + "info": { + "description": "Package definitions includes the types required for generating or consuming an OpenAPI\nspec for the Unified Alerting API.\nDocumentation of the API.", + "title": "Unified Alerting API", + "version": "1.1.0" + }, + "paths": { + "/api/alertmanager/{Recipient}/api/v2/alerts": { + "get": { + "description": "get alertmanager alerts", + "operationId": "RouteGetAMAlerts", + "parameters": [ + { + "default": true, + "description": "Show active alerts", + "in": "query", + "name": "active", + "type": "boolean", + "x-go-name": "Active" + }, + { + "default": true, + "description": "Show silenced alerts", + "in": "query", + "name": "silenced", + "type": "boolean", + "x-go-name": "Silenced" + }, + { + "default": true, + "description": "Show inhibited alerts", + "in": "query", + "name": "inhibited", + "type": "boolean", + "x-go-name": "Inhibited" + }, + { + "description": "A list of matchers to filter alerts by", + "in": "query", + "items": { + "type": "string" + }, + "name": "filter", + "type": "array", + "x-go-name": "Matchers" + }, + { + "description": "A regex matching receivers to filter alerts by", + "in": "query", + "name": "receiver", + "type": "string", + "x-go-name": "Receivers" + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "GettableAlerts", + "schema": { + "$ref": "#/definitions/GettableAlerts" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + }, + "post": { + "description": "create alertmanager alerts", + "operationId": "RoutePostAMAlerts", + "parameters": [ + { + "in": "body", + "name": "PostableAlerts", + "schema": { + "items": { + "$ref": "#/definitions/postableAlert" + }, + "type": "array" + } + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + } + }, + "/api/alertmanager/{Recipient}/api/v2/alerts/groups": { + "get": { + "description": "get alertmanager alerts", + "operationId": "RouteGetAMAlertGroups", + "parameters": [ + { + "default": true, + "description": "Show active alerts", + "in": "query", + "name": "active", + "type": "boolean", + "x-go-name": "Active" + }, + { + "default": true, + "description": "Show silenced alerts", + "in": "query", + "name": "silenced", + "type": "boolean", + "x-go-name": "Silenced" + }, + { + "default": true, + "description": "Show inhibited alerts", + "in": "query", + "name": "inhibited", + "type": "boolean", + "x-go-name": "Inhibited" + }, + { + "description": "A list of matchers to filter alerts by", + "in": "query", + "items": { + "type": "string" + }, + "name": "filter", + "type": "array", + "x-go-name": "Matchers" + }, + { + "description": "A regex matching receivers to filter alerts by", + "in": "query", + "name": "receiver", + "type": "string", + "x-go-name": "Receivers" + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "AlertGroups", + "schema": { + "$ref": "#/definitions/alertGroups" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + } + }, + "/api/alertmanager/{Recipient}/api/v2/silence/{SilenceId}": { + "delete": { + "description": "delete silence", + "operationId": "RouteDeleteSilence", + "parameters": [ + { + "in": "path", + "name": "SilenceId", + "required": true, + "type": "string" + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + }, + "get": { + "description": "get silence", + "operationId": "RouteGetSilence", + "parameters": [ + { + "in": "path", + "name": "SilenceId", + "required": true, + "type": "string" + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "GettableSilence", + "schema": { + "$ref": "#/definitions/GettableSilence" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + } + }, + "/api/alertmanager/{Recipient}/api/v2/silences": { + "get": { + "description": "get silences", + "operationId": "RouteGetSilences", + "parameters": [ + { + "in": "query", + "items": { + "type": "string" + }, + "name": "filter", + "type": "array", + "x-go-name": "Filter" + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "GettableSilences", + "schema": { + "$ref": "#/definitions/gettableSilences" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + }, + "post": { + "description": "create silence", + "operationId": "RouteCreateSilence", + "parameters": [ + { + "in": "body", + "name": "Silence", + "schema": { + "$ref": "#/definitions/postableSilence" + } + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "201": { + "description": "GettableSilence", + "schema": { + "$ref": "#/definitions/GettableSilence" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + } + }, + "/api/alertmanager/{Recipient}/config/api/v1/alerts": { + "delete": { + "description": "deletes the Alerting config for a tenant", + "operationId": "RouteDeleteAlertingConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + }, + "get": { + "description": "gets an Alerting config", + "operationId": "RouteGetAlertingConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "GettableUserConfig", + "schema": { + "$ref": "#/definitions/GettableUserConfig" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + }, + "post": { + "description": "sets an Alerting config", + "operationId": "RoutePostAlertingConfig", + "parameters": [ + { + "in": "body", + "name": "Body", + "schema": { + "$ref": "#/definitions/PostableUserConfig" + } + }, + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + }, + "400": { + "description": "ValidationError", + "schema": { + "$ref": "#/definitions/ValidationError" + } + } + }, + "tags": [ + "alertmanager" + ] + } + }, + "/api/prometheus/{Recipient}/api/v1/alerts": { + "get": { + "description": "gets the current alerts", + "operationId": "RouteGetAlertStatuses", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "AlertResponse", + "schema": { + "$ref": "#/definitions/AlertResponse" + } + } + }, + "tags": [ + "prometheus" + ] + } + }, + "/api/prometheus/{Recipient}/api/v1/rules": { + "get": { + "description": "gets the evaluation statuses of all rules", + "operationId": "RouteGetRuleStatuses", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "RuleResponse", + "schema": { + "$ref": "#/definitions/RuleResponse" + } + } + }, + "tags": [ + "prometheus" + ] + } + }, + "/api/ruler/{Recipient}/api/v1/rules": { + "get": { + "description": "List rule groups", + "operationId": "RouteGetRulesConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "202": { + "description": "NamespaceConfigResponse", + "schema": { + "$ref": "#/definitions/NamespaceConfigResponse" + } + } + }, + "tags": [ + "ruler" + ] + } + }, + "/api/ruler/{Recipient}/api/v1/rules/{Namespace}": { + "delete": { + "description": "Delete namespace", + "operationId": "RouteDeleteNamespaceRulesConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Namespace", + "required": true, + "type": "string" + } + ], + "responses": { + "202": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + } + }, + "tags": [ + "ruler" + ] + }, + "get": { + "description": "Get rule groups by namespace", + "operationId": "RouteGetNamespaceRulesConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "202": { + "description": "NamespaceConfigResponse", + "schema": { + "$ref": "#/definitions/NamespaceConfigResponse" + } + } + }, + "tags": [ + "ruler" + ] + }, + "post": { + "consumes": [ + "application/json", + "application/yaml" + ], + "description": "Creates or updates a rule group", + "operationId": "RoutePostNameRulesConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Namespace", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "Body", + "schema": { + "$ref": "#/definitions/PostableRuleGroupConfig" + } + } + ], + "responses": { + "202": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + } + }, + "tags": [ + "ruler" + ] + } + }, + "/api/ruler/{Recipient}/api/v1/rules/{Namespace}/{Groupname}": { + "delete": { + "description": "Delete rule group", + "operationId": "RouteDeleteRuleGroupConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Groupname", + "required": true, + "type": "string" + } + ], + "responses": { + "202": { + "description": "Ack", + "schema": { + "$ref": "#/definitions/Ack" + } + } + }, + "tags": [ + "ruler" + ] + }, + "get": { + "description": "Get rule group", + "operationId": "RouteGetRulegGroupConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "Groupname", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "202": { + "description": "RuleGroupConfigResponse", + "schema": { + "$ref": "#/definitions/RuleGroupConfigResponse" + } + } + }, + "tags": [ + "ruler" + ] + } + }, + "/api/v1/eval": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Test rule", + "operationId": "RouteEvalQueries", + "parameters": [ + { + "in": "body", + "name": "Body", + "schema": { + "$ref": "#/definitions/EvalQueriesPayload" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "EvalQueriesResponse", + "schema": { + "$ref": "#/definitions/EvalQueriesResponse" + } + } + }, + "tags": [ + "testing" + ] + } + }, + "/api/v1/receiver/test/{Recipient}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Test receiver", + "operationId": "RouteTestReceiverConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "Body", + "schema": { + "$ref": "#/definitions/ExtendedReceiver" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Success" + } + }, + "412": { + "description": "SmtpNotEnabled", + "schema": { + "$ref": "#/definitions/SmtpNotEnabled" + } + }, + "500": { + "description": "Failure", + "schema": { + "$ref": "#/definitions/Failure" + } + } + }, + "tags": [ + "testing" + ] + } + }, + "/api/v1/rule/test/{Recipient}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Test rule", + "operationId": "RouteTestRuleConfig", + "parameters": [ + { + "description": "Recipient should be \"grafana\" for requests to be handled by grafana\nand the numeric datasource id for requests to be forwarded to a datasource", + "in": "path", + "name": "Recipient", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "Body", + "schema": { + "$ref": "#/definitions/TestRulePayload" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "TestRuleResponse", + "schema": { + "$ref": "#/definitions/TestRuleResponse" + } + } + }, + "tags": [ + "testing" + ] + } + } + }, + "produces": [ + "application/json" + ], + "schemes": [ + "http", + "https" + ], + "securityDefinitions": { + "basic": { + "type": "basic" + } + }, + "swagger": "2.0" } \ No newline at end of file diff --git a/pkg/services/ngalert/api/tooling/spec.json b/pkg/services/ngalert/api/tooling/spec.json index f46c5cb5a65..881081a4e83 100644 --- a/pkg/services/ngalert/api/tooling/spec.json +++ b/pkg/services/ngalert/api/tooling/spec.json @@ -1,4 +1,14 @@ { + "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 Unified Alerting API.\nDocumentation of the API.", @@ -180,7 +190,7 @@ "200": { "description": "AlertGroups", "schema": { - "$ref": "#/definitions/AlertGroups" + "$ref": "#/definitions/alertGroups" } }, "400": { @@ -295,7 +305,7 @@ "200": { "description": "GettableSilences", "schema": { - "$ref": "#/definitions/GettableSilences" + "$ref": "#/definitions/gettableSilences" } }, "400": { @@ -971,6 +981,11 @@ "type": "object", "title": "AlertQuery represents a single query associated with an alert definition.", "properties": { + "datasourceUid": { + "description": "Grafana data source unique identifer; it should be '-100' for a Server Side Expression operation.", + "type": "string", + "x-go-name": "DatasourceUID" + }, "model": { "description": "JSON is the raw JSON query and includes the above properties as well as custom properties.", "type": "object", @@ -1415,7 +1430,7 @@ "$ref": "#/definitions/gettableAlert" }, "GettableAlerts": { - "$ref": "#/definitions/GettableAlerts" + "$ref": "#/definitions/gettableAlerts" }, "GettableApiAlertingConfig": { "type": "object", @@ -1681,10 +1696,10 @@ "x-go-package": "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" }, "GettableSilence": { - "$ref": "#/definitions/GettableSilence" + "$ref": "#/definitions/gettableSilence" }, "GettableSilences": { - "$ref": "#/definitions/GettableSilences" + "$ref": "#/definitions/gettableSilences" }, "GettableUserConfig": { "type": "object", @@ -3247,7 +3262,7 @@ "description": "alerts", "type": "array", "items": { - "$ref": "#/definitions/GettableAlert" + "$ref": "#/definitions/gettableAlert" }, "x-go-name": "Alerts" }, @@ -3455,7 +3470,7 @@ "description": "GettableAlerts gettable alerts", "type": "array", "items": { - "$ref": "#/definitions/GettableAlert" + "$ref": "#/definitions/gettableAlert" }, "x-go-name": "GettableAlerts", "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" @@ -3818,5 +3833,10 @@ "x-go-name": "VersionInfo", "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" } + }, + "securityDefinitions": { + "basic": { + "type": "basic" + } } } \ No newline at end of file diff --git a/pkg/services/ngalert/models/alert_query.go b/pkg/services/ngalert/models/alert_query.go index f2ed1acb9bb..516a967bfc1 100644 --- a/pkg/services/ngalert/models/alert_query.go +++ b/pkg/services/ngalert/models/alert_query.go @@ -68,6 +68,7 @@ type AlertQuery struct { // RelativeTimeRange is the relative Start and End of the query as sent by the frontend. RelativeTimeRange RelativeTimeRange `json:"relativeTimeRange"` + // Grafana data source unique identifier; it should be '-100' for a Server Side Expression operation. DatasourceUID string `json:"datasourceUid"` // JSON is the raw JSON query and includes the above properties as well as custom properties.