@pulumiverse/grafana
Version:
A Pulumi package for creating and managing grafana.
1,771 lines • 225 kB
TypeScript
import * as outputs from "../types/output";
export interface CloudAccessPolicyCondition {
/**
* Conditions that apply to the access policy,such as IP Allow lists.
*/
allowedSubnets: string[];
}
export interface CloudAccessPolicyRealm {
/**
* The identifier of the org or stack. For orgs, this is the slug, for stacks, this is the stack ID.
*/
identifier: string;
labelPolicies?: outputs.CloudAccessPolicyRealmLabelPolicy[];
/**
* Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
*/
type: string;
}
export interface CloudAccessPolicyRealmLabelPolicy {
/**
* The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
*/
selector: string;
}
export interface ContactPointAlertmanager {
/**
* The password component of the basic auth credentials to use.
*/
basicAuthPassword?: string;
/**
* The username component of the basic auth credentials to use.
*/
basicAuthUser?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The UID of the contact point.
*/
uid: string;
/**
* The URL of the Alertmanager instance.
*/
url: string;
}
export interface ContactPointDingding {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated content of the message.
*/
message?: string;
/**
* The format of message to send - either 'link' or 'actionCard'
*/
messageType?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated title of the message.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The DingDing webhook URL.
*/
url: string;
}
export interface ContactPointDiscord {
/**
* The URL of a custom avatar image to use. Defaults to ``.
*/
avatarUrl?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated content of the message. Defaults to ``.
*/
message?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated content of the title.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The discord webhook URL.
*/
url: string;
/**
* Whether to use the bot account's plain username instead of "Grafana." Defaults to `false`.
*/
useDiscordUsername?: boolean;
}
export interface ContactPointEmail {
/**
* The addresses to send emails to.
*/
addresses: string[];
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated content of the email. Defaults to ``.
*/
message?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* Whether to send a single email CC'ing all addresses, rather than a separate email to each address. Defaults to `false`.
*/
singleEmail?: boolean;
/**
* The templated subject line of the email. Defaults to ``.
*/
subject?: string;
/**
* The UID of the contact point.
*/
uid: string;
}
export interface ContactPointGooglechat {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated content of the message.
*/
message?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated content of the title.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The Google Chat webhook URL.
*/
url: string;
}
export interface ContactPointKafka {
/**
* The API version to use when contacting the Kafka REST Server. Supported: v2 (default) and v3. Defaults to `v2`.
*/
apiVersion?: string;
/**
* The Id of cluster to use when contacting the Kafka REST Server. Required apiVersion to be 'v3'
*/
clusterId?: string;
/**
* The templated description of the Kafka message.
*/
description?: string;
/**
* The templated details to include with the message.
*/
details?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The password to use when making a call to the Kafka REST Proxy
*/
password?: string;
/**
* The URL of the Kafka REST proxy to send requests to.
*/
restProxyUrl: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The name of the Kafka topic to publish to.
*/
topic: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The user name to use when making a call to the Kafka REST Proxy
*/
username?: string;
}
export interface ContactPointLine {
/**
* The templated description of the message.
*/
description?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated title of the message.
*/
title?: string;
/**
* The bearer token used to authorize the client.
*/
token: string;
/**
* The UID of the contact point.
*/
uid: string;
}
export interface ContactPointOncall {
/**
* Allows a custom authorization scheme - attaches an auth header with this value. Do not use in conjunction with basic auth parameters.
*/
authorizationCredentials?: string;
/**
* Allows a custom authorization scheme - attaches an auth header with this name. Do not use in conjunction with basic auth parameters.
*/
authorizationScheme?: string;
/**
* The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
*/
basicAuthPassword?: string;
/**
* The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
*/
basicAuthUser?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The HTTP method to use in the request. Defaults to `POST`.
*/
httpMethod?: string;
/**
* The maximum number of alerts to send in a single request. This can be helpful in limiting the size of the request body. The default is 0, which indicates no limit.
*/
maxAlerts?: number;
/**
* Custom message. You can use template variables.
*/
message?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* Templated title of the message.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The URL to send webhook requests to.
*/
url: string;
}
export interface ContactPointOpsgeny {
/**
* The OpsGenie API key to use.
*/
apiKey: string;
/**
* Whether to auto-close alerts in OpsGenie when they resolve in the Alertmanager.
*/
autoClose?: boolean;
/**
* A templated high-level description to use for the alert.
*/
description?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated content of the message.
*/
message?: string;
/**
* Whether to allow the alert priority to be configured via the value of the `ogPriority` annotation on the alert.
*/
overridePriority?: boolean;
/**
* Teams, users, escalations and schedules that the alert will be routed to send notifications. If the API Key belongs to a team integration, this field will be overwritten with the owner team. This feature is available from Grafana 10.3+.
*/
responders?: outputs.ContactPointOpsgenyResponder[];
/**
* Whether to send annotations to OpsGenie as Tags, Details, or both. Supported values are `tags`, `details`, `both`, or empty to use the default behavior of Tags.
*/
sendTagsAs?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The UID of the contact point.
*/
uid: string;
/**
* Allows customization of the OpsGenie API URL.
*/
url?: string;
}
export interface ContactPointOpsgenyResponder {
/**
* ID of the responder. Must be specified if name and username are empty.
*/
id?: string;
/**
* Name of the responder. Must be specified if username and id are empty.
*/
name?: string;
/**
* Type of the responder. Supported: team, teams, user, escalation, schedule or a template that is expanded to one of these values.
*/
type: string;
/**
* User name of the responder. Must be specified if name and id are empty.
*/
username?: string;
}
export interface ContactPointPagerduty {
/**
* The class or type of event, for example `ping failure`.
*/
class?: string;
/**
* The name of the monitoring client that is triggering this event.
*/
client?: string;
/**
* The URL of the monitoring client that is triggering this event.
*/
clientUrl?: string;
/**
* The component being affected by the event.
*/
component?: string;
/**
* A set of arbitrary key/value pairs that provide further detail about the incident.
*/
details?: {
[key: string]: string;
};
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The group to which the provided component belongs to.
*/
group?: string;
/**
* The PagerDuty API key.
*/
integrationKey: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The PagerDuty event severity level. Default is `critical`.
*/
severity?: string;
/**
* The unique location of the affected system.
*/
source?: string;
/**
* The templated summary message of the event.
*/
summary?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The URL to send API requests to
*/
url?: string;
}
export interface ContactPointPushover {
/**
* The Pushover API token.
*/
apiToken: string;
/**
* Comma-separated list of devices to which the event is associated.
*/
device?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* How many seconds for which the notification will continue to be retried by Pushover.
*/
expire?: number;
/**
* The templated notification message content.
*/
message?: string;
/**
* The priority level of the resolved event.
*/
okPriority?: number;
/**
* The sound associated with the resolved notification.
*/
okSound?: string;
/**
* The priority level of the event.
*/
priority?: number;
/**
* How often, in seconds, the Pushover servers will send the same notification to the user.
*/
retry?: number;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The sound associated with the notification.
*/
sound?: string;
/**
* The templated title of the message.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* Whether to send images in the notification or not. Default is true. Requires Grafana to be configured to send images in notifications.
*/
uploadImage?: boolean;
/**
* The Pushover user key.
*/
userKey: string;
}
export interface ContactPointSensugo {
/**
* The SensuGo API key.
*/
apiKey: string;
/**
* The SensuGo check to which the event should be routed.
*/
check?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The entity being monitored.
*/
entity?: string;
/**
* A custom handler to execute in addition to the check.
*/
handler?: string;
/**
* Templated message content describing the alert.
*/
message?: string;
/**
* The namespace in which the check resides.
*/
namespace?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The UID of the contact point.
*/
uid: string;
/**
* The SensuGo URL to send requests to.
*/
url: string;
}
export interface ContactPointSlack {
/**
* Templated color of the slack message.
*/
color?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* Use this to override the Slack API endpoint URL to send requests to.
*/
endpointUrl?: string;
/**
* The name of a Slack workspace emoji to use as the bot icon.
*/
iconEmoji?: string;
/**
* A URL of an image to use as the bot icon.
*/
iconUrl?: string;
/**
* Describes how to ping the slack channel that messages are being sent to. Options are `here` for an @here ping, `channel` for @channel, or empty for no ping.
*/
mentionChannel?: string;
/**
* Comma-separated list of groups to mention in the message.
*/
mentionGroups?: string;
/**
* Comma-separated list of users to mention in the message.
*/
mentionUsers?: string;
/**
* Channel, private group, or IM channel (can be an encoded ID or a name) to send messages to.
*/
recipient?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* Templated content of the message.
*/
text?: string;
/**
* Templated title of the message.
*/
title?: string;
/**
* A Slack API token,for sending messages directly without the webhook method.
*/
token?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* A Slack webhook URL,for sending messages via the webhook method.
*/
url?: string;
/**
* Username for the bot to use.
*/
username?: string;
}
export interface ContactPointSn {
/**
* AWS access key ID used to authenticate with Amazon SNS.
*/
accessKey?: string;
/**
* The Amazon Resource Name (ARN) of the role to assume to send notifications to Amazon SNS.
*/
assumeRoleArn?: string;
/**
* The authentication provider to use. Valid values are `default`, `arn` and `keys`. Default is `default`. Defaults to `default`.
*/
authProvider?: string;
body?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The external ID to use when assuming the role.
*/
externalId?: string;
/**
* The format of the message to send. Valid values are `text`, `body` and `json`. Default is `text`. Defaults to `text`.
*/
messageFormat?: string;
/**
* AWS secret access key used to authenticate with Amazon SNS.
*/
secretKey?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
subject?: string;
/**
* The Amazon SNS topic to send notifications to.
*/
topic: string;
/**
* The UID of the contact point.
*/
uid: string;
}
export interface ContactPointTeam {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated message content to send.
*/
message?: string;
/**
* The templated subtitle for each message section.
*/
sectionTitle?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated title of the message.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* A Teams webhook URL.
*/
url: string;
}
export interface ContactPointTelegram {
/**
* The chat ID to send messages to.
*/
chatId: string;
/**
* When set users will receive a notification with no sound.
*/
disableNotifications?: boolean;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* When set it disables link previews for links in the message.
*/
disableWebPagePreview?: boolean;
/**
* The templated content of the message.
*/
message?: string;
/**
* The ID of the message thread to send the message to.
*/
messageThreadId?: string;
/**
* Mode for parsing entities in the message text. Supported: None, Markdown, MarkdownV2, and HTML. HTML is the default.
*/
parseMode?: string;
/**
* When set it protects the contents of the message from forwarding and saving.
*/
protectContent?: boolean;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The Telegram bot token.
*/
token: string;
/**
* The UID of the contact point.
*/
uid: string;
}
export interface ContactPointThreema {
/**
* The Threema API key.
*/
apiSecret: string;
/**
* The templated description of the message.
*/
description?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The Threema gateway ID.
*/
gatewayId: string;
/**
* The ID of the recipient of the message.
*/
recipientId: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated title of the message.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
}
export interface ContactPointVictorop {
/**
* Templated description of the message.
*/
description?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The VictorOps alert state - typically either `CRITICAL` or `RECOVERY`.
*/
messageType?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* Templated title to display.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The VictorOps webhook URL.
*/
url: string;
}
export interface ContactPointWebex {
/**
* The URL to send webhook requests to.
*/
apiUrl?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated title of the message to send.
*/
message?: string;
/**
* ID of the Webex Teams room where to send the messages.
*/
roomId?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The bearer token used to authorize the client.
*/
token?: string;
/**
* The UID of the contact point.
*/
uid: string;
}
export interface ContactPointWebhook {
/**
* Allows a custom authorization scheme - attaches an auth header with this value. Do not use in conjunction with basic auth parameters.
*/
authorizationCredentials?: string;
/**
* Allows a custom authorization scheme - attaches an auth header with this name. Do not use in conjunction with basic auth parameters.
*/
authorizationScheme?: string;
/**
* The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
*/
basicAuthPassword?: string;
/**
* The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
*/
basicAuthUser?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The HTTP method to use in the request. Defaults to `POST`.
*/
httpMethod?: string;
/**
* The maximum number of alerts to send in a single request. This can be helpful in limiting the size of the request body. The default is 0, which indicates no limit.
*/
maxAlerts?: number;
/**
* Custom message. You can use template variables.
*/
message?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* Templated title of the message.
*/
title?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The URL to send webhook requests to.
*/
url: string;
}
export interface ContactPointWecom {
/**
* Agent ID added to the request payload when using APIAPP.
*/
agentId?: string;
/**
* Corp ID used to get token when using APIAPP.
*/
corpId?: string;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: boolean;
/**
* The templated content of the message to send.
*/
message?: string;
/**
* The type of them message. Supported: markdown, text. Default: text.
*/
msgType?: string;
/**
* The secret key required to obtain access token when using APIAPP. See https://work.weixin.qq.com/wework_admin/frame#apps to create APIAPP.
*/
secret?: string;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: {
[key: string]: string;
};
/**
* The templated title of the message to send.
*/
title?: string;
/**
* The ID of user that should receive the message. Multiple entries should be separated by '|'. Default: @all.
*/
toUser?: string;
/**
* The UID of the contact point.
*/
uid: string;
/**
* The WeCom webhook URL. Required if using GroupRobot.
*/
url?: string;
}
export interface DashboardPermissionPermission {
/**
* Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
*/
permission: string;
/**
* Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
*/
role?: string;
/**
* ID of the team to manage permissions for. Defaults to `0`.
*/
teamId?: string;
/**
* ID of the user or service account to manage permissions for. Defaults to `0`.
*/
userId?: string;
}
export interface DataSourcePermissionPermission {
/**
* Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
*/
builtInRole?: string;
/**
* Permission to associate with item. Options: `Query`, `Edit` or `Admin` (`Admin` can only be used with Grafana v10.3.0+).
*/
permission: string;
/**
* ID of the team to manage permissions for. Defaults to `0`.
*/
teamId?: string;
/**
* ID of the user or service account to manage permissions for. Defaults to `0`.
*/
userId?: string;
}
export interface FolderPermissionPermission {
/**
* Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
*/
permission: string;
/**
* Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
*/
role?: string;
/**
* ID of the team to manage permissions for. Defaults to `0`.
*/
teamId?: string;
/**
* ID of the user or service account to manage permissions for. Defaults to `0`.
*/
userId?: string;
}
export interface GetDashboardsDashboard {
folderTitle: string;
title: string;
uid: string;
}
export interface GetFoldersFolder {
/**
* The folder ID.
*/
id: number;
/**
* The folder title.
*/
title: string;
/**
* The folder's unique identifier.
*/
uid: string;
/**
* The folder's URL
*/
url: string;
}
export interface GetLibraryPanelsPanel {
description: string;
folderUid: string;
modelJson: string;
name: string;
uid: string;
}
export interface GetRolePermission {
/**
* Specific action users granted with the role will be allowed to perform (for example: `users:read`)
*/
action: string;
/**
* Scope to restrict the action to a set of resources (for example: `users:*` or `roles:customrole1`)
*/
scope?: string;
}
export interface GetSlosSlo {
/**
* Configures the alerting rules that will be generated for each
* time window associated with the SLO. Grafana SLOs can generate
* alerts when the short-term error budget burn is very high, the
* long-term error budget burn rate is high, or when the remaining
* error budget is below a certain threshold. Annotations and Labels support templating.
*/
alertings: outputs.GetSlosSloAlerting[];
/**
* Description is a free-text field that can provide more context to an SLO.
*/
description: string;
/**
* Destination Datasource sets the datasource defined for an SLO
*/
destinationDatasources: outputs.GetSlosSloDestinationDatasource[];
/**
* UID for the SLO folder
*/
folderUid: string;
/**
* Additional labels that will be attached to all metrics generated from the query. These labels are useful for grouping SLOs in dashboard views that you create by hand. Labels must adhere to Prometheus label name schema - "^[a-zA-Z_][a-zA-Z0-9_]*$"
*/
labels: outputs.GetSlosSloLabel[];
/**
* Name should be a short description of your indicator. Consider names like "API Availability"
*/
name: string;
/**
* Over each rolling time window, the remaining error budget will be calculated, and separate alerts can be generated for each time window based on the SLO burn rate or remaining error budget.
*/
objectives: outputs.GetSlosSloObjective[];
/**
* Query describes the indicator that will be measured against the objective. Freeform Query types are currently supported.
*/
queries: outputs.GetSlosSloQuery[];
/**
* The name of a search expression in Grafana Asserts. This is used in the SLO UI to open the Asserts RCA workbench and in alerts to link to the RCA workbench.
*/
searchExpression: string;
/**
* A unique, random identifier. This value will also be the name of the resource stored in the API server. This value is read-only.
*/
uuid: string;
}
export interface GetSlosSloAlerting {
/**
* Advanced Options for Alert Rules
*/
advancedOptions?: outputs.GetSlosSloAlertingAdvancedOptions;
/**
* Annotations will be attached to all alerts generated by any of these rules.
*/
annotations?: outputs.GetSlosSloAlertingAnnotation[];
/**
* Alerting Rules generated for Fast Burn alerts
*/
fastburn?: outputs.GetSlosSloAlertingFastburn;
/**
* Labels will be attached to all alerts generated by any of these rules.
*/
labels?: outputs.GetSlosSloAlertingLabel[];
/**
* Alerting Rules generated for Slow Burn alerts
*/
slowburn?: outputs.GetSlosSloAlertingSlowburn;
}
export interface GetSlosSloAlertingAdvancedOptions {
/**
* Minimum number of failed events to trigger an alert
*/
minFailures?: number;
}
export interface GetSlosSloAlertingAnnotation {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloAlertingFastburn {
/**
* Annotations to attach only to Fast Burn alerts.
*/
annotations?: outputs.GetSlosSloAlertingFastburnAnnotation[];
/**
* Labels to attach only to Fast Burn alerts.
*/
labels?: outputs.GetSlosSloAlertingFastburnLabel[];
}
export interface GetSlosSloAlertingFastburnAnnotation {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloAlertingFastburnLabel {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloAlertingLabel {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloAlertingSlowburn {
/**
* Annotations to attach only to Slow Burn alerts.
*/
annotations?: outputs.GetSlosSloAlertingSlowburnAnnotation[];
/**
* Labels to attach only to Slow Burn alerts.
*/
labels?: outputs.GetSlosSloAlertingSlowburnLabel[];
}
export interface GetSlosSloAlertingSlowburnAnnotation {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloAlertingSlowburnLabel {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloDestinationDatasource {
/**
* UID for the Datasource
*/
uid: string;
}
export interface GetSlosSloLabel {
/**
* Key for filtering and identification
*/
key: string;
/**
* Templatable value
*/
value: string;
}
export interface GetSlosSloObjective {
/**
* Value between 0 and 1. If the value of the query is above the objective, the SLO is met.
*/
value: number;
/**
* A Prometheus-parsable time duration string like 24h, 60m. This is the time window the objective is measured over.
*/
window: string;
}
export interface GetSlosSloQuery {
freeform?: outputs.GetSlosSloQueryFreeform;
/**
* Array for holding a set of grafana queries
*/
grafanaQueries?: outputs.GetSlosSloQueryGrafanaQueries;
ratio?: outputs.GetSlosSloQueryRatio;
/**
* Query type must be one of: "freeform", "query", "ratio", "grafanaQueries" or "threshold"
*/
type: string;
}
export interface GetSlosSloQueryFreeform {
/**
* Freeform Query Field - valid promQl
*/
query: string;
}
export interface GetSlosSloQueryGrafanaQueries {
/**
* Query Object - Array of Grafana Query JSON objects
*/
grafanaQueries: string;
}
export interface GetSlosSloQueryRatio {
/**
* Defines Group By Labels used for per-label alerting. These appear as variables on SLO dashboards to enable filtering and aggregation. Labels must adhere to Prometheus label name schema - "^[a-zA-Z_][a-zA-Z0-9_]*$"
*/
groupByLabels?: string[];
/**
* Counter metric for success events (numerator)
*/
successMetric: string;
/**
* Metric for total events (denominator)
*/
totalMetric: string;
}
export interface GetTeamPreference {
/**
* The UID of the dashboard to display when a team member logs in.
*/
homeDashboardUid?: string;
/**
* The default theme for this team. Available themes are `light`, `dark`, `system`, or an empty string for the default theme.
*/
theme?: string;
/**
* The default timezone for this team. Available values are `utc`, `browser`, or an empty string for the default.
*/
timezone?: string;
/**
* The default week start day for this team. Available values are `sunday`, `monday`, `saturday`, or an empty string for the default.
*/
weekStart?: string;
}
export interface GetTeamTeamSync {
groups?: string[];
}
export interface GetUsersUser {
/**
* The user's email.
*/
email: string;
/**
* The user ID.
*/
id: number;
/**
* Whether the user is admin or not.
*/
isAdmin: boolean;
/**
* The user's login.
*/
login: string;
/**
* The user's name.
*/
name: string;
}
export interface MachineLearningHolidayCustomPeriod {
endTime: string;
/**
* The name of the custom period.
*/
name?: string;
startTime: string;
}
export interface MachineLearningOutlierDetectorAlgorithm {
/**
* For DBSCAN only, specify the configuration map
*/
config?: outputs.MachineLearningOutlierDetectorAlgorithmConfig;
/**
* The name of the algorithm to use ('mad' or 'dbscan').
*/
name: string;
/**
* Specify the sensitivity of the detector (in range [0,1]).
*/
sensitivity: number;
}
export interface MachineLearningOutlierDetectorAlgorithmConfig {
/**
* Specify the epsilon parameter (positive float)
*/
epsilon: number;
}
export interface MuteTimingInterval {
/**
* An inclusive range of days, 1-31, within a month, e.g. "1" or "14:16". Negative values can be used to represent days counting from the end of a month, e.g. "-1".
*/
daysOfMonths?: string[];
/**
* Provides the time zone for the time interval. Must be a location in the IANA time zone database, e.g "America/New_York"
*/
location?: string;
/**
* An inclusive range of months, either numerical or full calendar month, e.g. "1:3", "december", or "may:august".
*/
months?: string[];
/**
* The time ranges, represented in minutes, during which to mute in a given day.
*/
times?: outputs.MuteTimingIntervalTime[];
/**
* An inclusive range of weekdays, e.g. "monday" or "tuesday:thursday".
*/
weekdays?: string[];
/**
* A positive inclusive range of years, e.g. "2030" or "2025:2026".
*/
years?: string[];
}
export interface MuteTimingIntervalTime {
/**
* The time, in hh:mm format, of when the interval should end exclusively.
*/
end: string;
/**
* The time, in hh:mm format, of when the interval should begin inclusively.
*/
start: string;
}
export interface NotificationPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint?: string;
/**
* Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
*/
continue?: boolean;
/**
* A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
*/
groupBies?: string[];
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: string;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: string;
/**
* Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
*/
matchers?: outputs.NotificationPolicyPolicyMatcher[];
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: string[];
/**
* Routing rules for specific label sets.
*/
policies?: outputs.NotificationPolicyPolicyPolicy[];
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: string;
}
export interface NotificationPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: string;
/**
* The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
*/
match: string;
/**
* The label value to match against.
*/
value: string;
}
export interface NotificationPolicyPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint?: string;
/**
* Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
*/
continue?: boolean;
/**
* A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
*/
groupBies?: string[];
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: string;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: string;
/**
* Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
*/
matchers?: outputs.NotificationPolicyPolicyPolicyMatcher[];
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: string[];
/**
* Routing rules for specific label sets.
*/
policies?: outputs.NotificationPolicyPolicyPolicyPolicy[];
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: string;
}
export interface NotificationPolicyPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: string;
/**
* The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
*/
match: string;
/**
* The label value to match against.
*/
value: string;
}
export interface NotificationPolicyPolicyPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint?: string;
/**
* Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
*/
continue?: boolean;
/**
* A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
*/
groupBies?: string[];
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: string;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: string;
/**
* Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
*/
matchers?: outputs.NotificationPolicyPolicyPolicyPolicyMatcher[];
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: string[];
/**
* Routing rules for specific label sets.
*/
policies?: outputs.NotificationPolicyPolicyPolicyPolicyPolicy[];
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: string;
}
export interface NotificationPolicyPolicyPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: string;
/**
* The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
*/
match: string;
/**
* The label value to match against.
*/
value: string;
}
export interface NotificationPolicyPolicyPolicyPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint?: string;
/**
* Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
*/
continue?: boolean;
/**
* A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
*/
groupBies: string[];
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: string;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: string;
/**
* Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
*/
matchers?: outputs.NotificationPolicyPolicyPolicyPolicyPolicyMatcher[];
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: string[];
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: string;
}
export interface NotificationPolicyPolicyPolicyPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: string;
/**
* The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
*/
match: string;
/**
* The label value to match against.
*/
value: string;
}
export interface OncallIntegrationDefaultRoute {
/**
* The ID of the escalation chain.
*/
escalationChainId?: string;
id: string;
/**
* MS teams-specific settings for a route.
*/
msteams?: outputs.OncallIntegrationDefaultRouteMsteams;
/**
* Slack-specific settings for a route.
*/
slack?: outputs.OncallIntegrationDefaultRouteSlack;
/**
* Telegram-specific settings for a route.
*/
telegram?: outputs.OncallIntegrationDefaultRouteTelegram;
}
export interface OncallIntegrationDefaultRouteMsteams {
/**
* Enable notification in MS teams. Defaults to `true`.
*/
enabled?: boolean;
/**
* MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
*/
id?: string;
}
export interface OncallIntegrationDefaultRouteSlack {
/**
* Slack channel id. Alerts will be directed to this channel in Slack.
*/
channelId?: string;
/**
* Enable notification in Slack. Defaults to `true`.
*/
enabled?: boolean;
}
export interface OncallIntegrationDefaultRouteTelegram {
/**
* Enable notification in Telegram. Defaults to `true`.
*/
enabled?: boolean;
/**
* Telegram channel id. Alerts will be directed to this channel in Telegram.
*/
id?: string;
}
export interface OncallIntegrationTemplates {
/**
* Template for sending a signal to acknowledge the Incident.
*/
acknowledgeSignal?: string;
/**
* Templates for Email.
*/
email?: outputs.OncallIntegrationTemplatesEmail;
/**
* Template for the key by which alerts are grouped.
*/
groupingKey?: string;
/**
* Templates for Microsoft Teams. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
*/
microsoftTeams?: outputs.OncallIntegrationTemplatesMicrosoftTeams;
/**
* Templates for Mobile app push notifications.
*/
mobileApp?: outputs.OncallIntegrationTemplatesMobileApp;
/**
* Templates for Phone Call.
*/
phoneCall?: outputs.OncallIntegrationTemplatesPhoneCall;
/**
* Template for sending a signal to resolve the Incident.
*/
resolveSignal?: string;
/**
* Templates for Slack.
*/
slack?: outputs.OncallIntegrationTemplatesSlack;
/**
* Templates for SMS.
*/
sms?: outputs.OncallIntegrationTemplatesSms;
/**
* Template for a source link.
*/
sourceLink?: string;
/**
* Templates for Telegram.
*/
telegram?: outputs.OncallIntegrationTemplatesTelegram;
/**
* Templates for Web.
*/
web?: outputs.OncallIntegrationTemplatesWeb;
}
export interface OncallIntegrationTemplatesEmail {
/**
* Template for Alert message.
*/
message?: string;
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesMicrosoftTeams {
/**
* Template for Alert image url.
*/
imageUrl?: string;
/**
* Template for Alert message.
*/
message?: string;
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesMobileApp {
/**
* Template for Alert message.
*/
message?: string;
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesPhoneCall {
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesSlack {
/**
* Template for Alert image url.
*/
imageUrl?: string;
/**
* Template for Alert message.
*/
message?: string;
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesSms {
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesTelegram {
/**
* Template for Alert image url.
*/
imageUrl?: string;
/**
* Template for Alert message.
*/
message?: string;
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallIntegrationTemplatesWeb {
/**
* Template for Alert image url.
*/
imageUrl?: string;
/**
* Template for Alert message.
*/
message?: string;
/**
* Template for Alert title.
*/
title?: string;
}
export interface OncallRouteMsteams {
/**
* Enable notification in MS teams. Defaults to `true`.
*/
enabled?: boolean;
/**
* MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
*/
id?: string;
}
export interface OncallRouteSlack {
/**
* Slack channel id. Alerts will be directed to this channel in Slack.
*/
channelId?: string;
/**
* Enable notification in Slack. Defaults to `true`.
*/
enabled?: boolean;
}
export interface OncallRouteTelegram {
/**
* Enable notification in Telegram. Defau