@lbrlabs/pulumi-grafana
Version:
A Pulumi package for creating and managing grafana.
1,569 lines (1,568 loc) • 61.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface CloudAccessPolicyRealm {
/**
* The identifier of the org or stack. For orgs, this is the slug, for stacks, this is the stack ID.
*/
identifier: pulumi.Input<string>;
labelPolicies?: pulumi.Input<pulumi.Input<inputs.CloudAccessPolicyRealmLabelPolicy>[]>;
/**
* Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
*/
type: pulumi.Input<string>;
}
export interface CloudAccessPolicyRealmLabelPolicy {
/**
* The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
*/
selector: pulumi.Input<string>;
}
export interface ContactPointAlertmanager {
/**
* The password component of the basic auth credentials to use.
*/
basicAuthPassword?: pulumi.Input<string>;
/**
* The username component of the basic auth credentials to use.
*/
basicAuthUser?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The URL of the Alertmanager instance.
*/
url: pulumi.Input<string>;
}
export interface ContactPointDingding {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated content of the message.
*/
message?: pulumi.Input<string>;
/**
* The format of message to send - either 'link' or 'actionCard'
*/
messageType?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The DingDing webhook URL.
*/
url: pulumi.Input<string>;
}
export interface ContactPointDiscord {
/**
* The URL of a custom avatar image to use. Defaults to ``.
*/
avatarUrl?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated content of the message. Defaults to ``.
*/
message?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated content of the title.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The discord webhook URL.
*/
url: pulumi.Input<string>;
/**
* Whether to use the bot account's plain username instead of "Grafana." Defaults to `false`.
*/
useDiscordUsername?: pulumi.Input<boolean>;
}
export interface ContactPointEmail {
/**
* The addresses to send emails to.
*/
addresses: pulumi.Input<pulumi.Input<string>[]>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated content of the email. Defaults to ``.
*/
message?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Whether to send a single email CC'ing all addresses, rather than a separate email to each address. Defaults to `false`.
*/
singleEmail?: pulumi.Input<boolean>;
/**
* The templated subject line of the email. Defaults to ``.
*/
subject?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
}
export interface ContactPointGooglechat {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated content of the message.
*/
message?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated content of the title.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The Google Chat webhook URL.
*/
url: pulumi.Input<string>;
}
export interface ContactPointKafka {
/**
* The API version to use when contacting the Kafka REST Server. Supported: v2 (default) and v3. Defaults to `v2`.
*/
apiVersion?: pulumi.Input<string>;
/**
* The Id of cluster to use when contacting the Kafka REST Server. Required apiVersion to be 'v3'
*/
clusterId?: pulumi.Input<string>;
/**
* The templated description of the Kafka message.
*/
description?: pulumi.Input<string>;
/**
* The templated details to include with the message.
*/
details?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The password to use when making a call to the Kafka REST Proxy
*/
password?: pulumi.Input<string>;
/**
* The URL of the Kafka REST proxy to send requests to.
*/
restProxyUrl: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The name of the Kafka topic to publish to.
*/
topic: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The user name to use when making a call to the Kafka REST Proxy
*/
username?: pulumi.Input<string>;
}
export interface ContactPointLine {
/**
* The templated description of the message.
*/
description?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* The bearer token used to authorize the client.
*/
token: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
}
export interface ContactPointOpsgeny {
/**
* The OpsGenie API key to use.
*/
apiKey: pulumi.Input<string>;
/**
* Whether to auto-close alerts in OpsGenie when they resolve in the Alertmanager.
*/
autoClose?: pulumi.Input<boolean>;
/**
* A templated high-level description to use for the alert.
*/
description?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated content of the message.
*/
message?: pulumi.Input<string>;
/**
* Whether to allow the alert priority to be configured via the value of the `ogPriority` annotation on the alert.
*/
overridePriority?: pulumi.Input<boolean>;
/**
* 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?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* Allows customization of the OpsGenie API URL.
*/
url?: pulumi.Input<string>;
}
export interface ContactPointPagerduty {
/**
* The class or type of event, for example `ping failure`.
*/
class?: pulumi.Input<string>;
/**
* The name of the monitoring client that is triggering this event.
*/
client?: pulumi.Input<string>;
/**
* The URL of the monitoring client that is triggering this event.
*/
clientUrl?: pulumi.Input<string>;
/**
* The component being affected by the event.
*/
component?: pulumi.Input<string>;
/**
* A set of arbitrary key/value pairs that provide further detail about the incident.
*/
details?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The group to which the provided component belongs to.
*/
group?: pulumi.Input<string>;
/**
* The PagerDuty API key.
*/
integrationKey: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The PagerDuty event severity level. Default is `critical`.
*/
severity?: pulumi.Input<string>;
/**
* The unique location of the affected system.
*/
source?: pulumi.Input<string>;
/**
* The templated summary message of the event.
*/
summary?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
}
export interface ContactPointPushover {
/**
* The Pushover API token.
*/
apiToken: pulumi.Input<string>;
/**
* Comma-separated list of devices to which the event is associated.
*/
device?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* How many seconds for which the notification will continue to be retried by Pushover.
*/
expire?: pulumi.Input<number>;
/**
* The templated notification message content.
*/
message?: pulumi.Input<string>;
/**
* The priority level of the resolved event.
*/
okPriority?: pulumi.Input<number>;
/**
* The sound associated with the resolved notification.
*/
okSound?: pulumi.Input<string>;
/**
* The priority level of the event.
*/
priority?: pulumi.Input<number>;
/**
* How often, in seconds, the Pushover servers will send the same notification to the user.
*/
retry?: pulumi.Input<number>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The sound associated with the notification.
*/
sound?: pulumi.Input<string>;
/**
* The templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* Whether to send images in the notification or not. Default is true. Requires Grafana to be configured to send images in notifications.
*/
uploadImage?: pulumi.Input<boolean>;
/**
* The Pushover user key.
*/
userKey: pulumi.Input<string>;
}
export interface ContactPointSensugo {
/**
* The SensuGo API key.
*/
apiKey: pulumi.Input<string>;
/**
* The SensuGo check to which the event should be routed.
*/
check?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The entity being monitored.
*/
entity?: pulumi.Input<string>;
/**
* A custom handler to execute in addition to the check.
*/
handler?: pulumi.Input<string>;
/**
* Templated message content describing the alert.
*/
message?: pulumi.Input<string>;
/**
* The namespace in which the check resides.
*/
namespace?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The SensuGo URL to send requests to.
*/
url: pulumi.Input<string>;
}
export interface ContactPointSlack {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* Use this to override the Slack API endpoint URL to send requests to.
*/
endpointUrl?: pulumi.Input<string>;
/**
* The name of a Slack workspace emoji to use as the bot icon.
*/
iconEmoji?: pulumi.Input<string>;
/**
* A URL of an image to use as the bot icon.
*/
iconUrl?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Comma-separated list of groups to mention in the message.
*/
mentionGroups?: pulumi.Input<string>;
/**
* Comma-separated list of users to mention in the message.
*/
mentionUsers?: pulumi.Input<string>;
/**
* Channel, private group, or IM channel (can be an encoded ID or a name) to send messages to.
*/
recipient?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Templated content of the message.
*/
text?: pulumi.Input<string>;
/**
* Templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* A Slack API token,for sending messages directly without the webhook method.
*/
token?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* A Slack webhook URL,for sending messages via the webhook method.
*/
url?: pulumi.Input<string>;
/**
* Username for the bot to use.
*/
username?: pulumi.Input<string>;
}
export interface ContactPointTeam {
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated message content to send.
*/
message?: pulumi.Input<string>;
/**
* The templated subtitle for each message section.
*/
sectionTitle?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* A Teams webhook URL.
*/
url: pulumi.Input<string>;
}
export interface ContactPointTelegram {
/**
* The chat ID to send messages to.
*/
chatId: pulumi.Input<string>;
/**
* When set users will receive a notification with no sound.
*/
disableNotifications?: pulumi.Input<boolean>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* When set it disables link previews for links in the message.
*/
disableWebPagePreview?: pulumi.Input<boolean>;
/**
* The templated content of the message.
*/
message?: pulumi.Input<string>;
/**
* Mode for parsing entities in the message text. Supported: None, Markdown, MarkdownV2, and HTML. HTML is the default.
*/
parseMode?: pulumi.Input<string>;
/**
* When set it protects the contents of the message from forwarding and saving.
*/
protectContent?: pulumi.Input<boolean>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The Telegram bot token.
*/
token: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
}
export interface ContactPointThreema {
/**
* The Threema API key.
*/
apiSecret: pulumi.Input<string>;
/**
* The templated description of the message.
*/
description?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The Threema gateway ID.
*/
gatewayId: pulumi.Input<string>;
/**
* The ID of the recipient of the message.
*/
recipientId: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
}
export interface ContactPointVictorop {
/**
* Templated description of the message.
*/
description?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The VictorOps alert state - typically either `CRITICAL` or `RECOVERY`.
*/
messageType?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Templated title to display.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The VictorOps webhook URL.
*/
url: pulumi.Input<string>;
}
export interface ContactPointWebex {
/**
* The URL to send webhook requests to.
*/
apiUrl?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated title of the message to send.
*/
message?: pulumi.Input<string>;
/**
* ID of the Webex Teams room where to send the messages.
*/
roomId?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The bearer token used to authorize the client.
*/
token?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Allows a custom authorization scheme - attaches an auth header with this name. Do not use in conjunction with basic auth parameters.
*/
authorizationScheme?: pulumi.Input<string>;
/**
* The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
*/
basicAuthPassword?: pulumi.Input<string>;
/**
* The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
*/
basicAuthUser?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The HTTP method to use in the request. Defaults to `POST`.
*/
httpMethod?: pulumi.Input<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?: pulumi.Input<number>;
/**
* Custom message. You can use template variables.
*/
message?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Templated title of the message.
*/
title?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The URL to send webhook requests to.
*/
url: pulumi.Input<string>;
}
export interface ContactPointWecom {
/**
* Agent ID added to the request payload when using APIAPP.
*/
agentId?: pulumi.Input<string>;
/**
* Corp ID used to get token when using APIAPP.
*/
corpId?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* The templated content of the message to send.
*/
message?: pulumi.Input<string>;
/**
* The type of them message. Supported: markdown, text. Default: text.
*/
msgType?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated title of the message to send.
*/
title?: pulumi.Input<string>;
/**
* The ID of user that should receive the message. Multiple entries should be separated by '|'. Default: @all.
*/
toUser?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* The WeCom webhook URL. Required if using GroupRobot.
*/
url?: pulumi.Input<string>;
}
export interface DashboardPermissionPermission {
/**
* Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
*/
permission: pulumi.Input<string>;
/**
* Manage permissions for `Viewer` or `Editor` roles.
*/
role?: pulumi.Input<string>;
/**
* ID of the team to manage permissions for. Defaults to `0`.
*/
teamId?: pulumi.Input<string>;
/**
* ID of the user or service account to manage permissions for. Defaults to `0`.
*/
userId?: pulumi.Input<string>;
}
export interface DataSourcePermissionPermission {
/**
* Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`. Can only be set from Grafana v9.2.3+. Defaults to ``.
*/
builtInRole?: pulumi.Input<string>;
/**
* Permission to associate with item. Options: `Query` or `Edit` (`Edit` can only be used with Grafana v9.2.3+).
*/
permission: pulumi.Input<string>;
/**
* ID of the team to manage permissions for. Defaults to `0`.
*/
teamId?: pulumi.Input<string>;
/**
* ID of the user or service account to manage permissions for. Defaults to `0`.
*/
userId?: pulumi.Input<string>;
}
export interface FolderPermissionPermission {
/**
* Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
*/
permission: pulumi.Input<string>;
/**
* Manage permissions for `Viewer` or `Editor` roles.
*/
role?: pulumi.Input<string>;
/**
* ID of the team to manage permissions for. Defaults to `0`.
*/
teamId?: pulumi.Input<string>;
/**
* ID of the user or service account to manage permissions for. Defaults to `0`.
*/
userId?: pulumi.Input<string>;
}
export interface MachineLearningHolidayCustomPeriod {
endTime: pulumi.Input<string>;
/**
* The name of the custom period.
*/
name?: pulumi.Input<string>;
startTime: pulumi.Input<string>;
}
export interface MachineLearningOutlierDetectorAlgorithm {
/**
* For DBSCAN only, specify the configuration map
*/
config?: pulumi.Input<inputs.MachineLearningOutlierDetectorAlgorithmConfig>;
/**
* The name of the algorithm to use ('mad' or 'dbscan').
*/
name: pulumi.Input<string>;
/**
* Specify the sensitivity of the detector (in range [0,1]).
*/
sensitivity: pulumi.Input<number>;
}
export interface MachineLearningOutlierDetectorAlgorithmConfig {
/**
* Specify the epsilon parameter (positive float)
*/
epsilon: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[]>;
/**
* An inclusive range of months, either numerical or full calendar month, e.g. "1:3", "december", or "may:august".
*/
months?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The time ranges, represented in minutes, during which to mute in a given day.
*/
times?: pulumi.Input<pulumi.Input<inputs.MuteTimingIntervalTime>[]>;
/**
* An inclusive range of weekdays, e.g. "monday" or "tuesday:thursday".
*/
weekdays?: pulumi.Input<pulumi.Input<string>[]>;
/**
* A positive inclusive range of years, e.g. "2030" or "2025:2026".
*/
years?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface MuteTimingIntervalTime {
/**
* The time, in hh:mm format, of when the interval should end exclusively.
*/
end: pulumi.Input<string>;
/**
* The time, in hh:mm format, of when the interval should begin inclusively.
*/
start: pulumi.Input<string>;
}
export interface NotificationPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: pulumi.Input<string>;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: pulumi.Input<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?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyMatcher>[]>;
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Routing rules for specific label sets.
*/
policies?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyPolicy>[]>;
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: pulumi.Input<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: pulumi.Input<string>;
/**
* The label value to match against.
*/
value: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: pulumi.Input<string>;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: pulumi.Input<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?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyPolicyMatcher>[]>;
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Routing rules for specific label sets.
*/
policies?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyPolicyPolicy>[]>;
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: pulumi.Input<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: pulumi.Input<string>;
/**
* The label value to match against.
*/
value: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: pulumi.Input<string>;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: pulumi.Input<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?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyPolicyPolicyMatcher>[]>;
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Routing rules for specific label sets.
*/
policies?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyPolicyPolicyPolicy>[]>;
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: pulumi.Input<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: pulumi.Input<string>;
/**
* The label value to match against.
*/
value: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyPolicyPolicyPolicy {
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint: pulumi.Input<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?: pulumi.Input<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: pulumi.Input<pulumi.Input<string>[]>;
/**
* Minimum time interval between two notifications for the same group. Default is 5 minutes.
*/
groupInterval?: pulumi.Input<string>;
/**
* Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
*/
groupWait?: pulumi.Input<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?: pulumi.Input<pulumi.Input<inputs.NotificationPolicyPolicyPolicyPolicyPolicyMatcher>[]>;
/**
* A list of mute timing names to apply to alerts that match this policy.
*/
muteTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
*/
repeatInterval?: pulumi.Input<string>;
}
export interface NotificationPolicyPolicyPolicyPolicyPolicyMatcher {
/**
* The name of the label to match against.
*/
label: pulumi.Input<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: pulumi.Input<string>;
/**
* The label value to match against.
*/
value: pulumi.Input<string>;
}
export interface OncallIntegrationDefaultRoute {
/**
* The ID of the escalation chain.
*/
escalationChainId?: pulumi.Input<string>;
/**
* The ID of this resource.
*/
id?: pulumi.Input<string>;
/**
* MS teams-specific settings for a route.
*/
msteams?: pulumi.Input<inputs.OncallIntegrationDefaultRouteMsteams>;
/**
* Slack-specific settings for a route.
*/
slack?: pulumi.Input<inputs.OncallIntegrationDefaultRouteSlack>;
/**
* Telegram-specific settings for a route.
*/
telegram?: pulumi.Input<inputs.OncallIntegrationDefaultRouteTelegram>;
}
export interface OncallIntegrationDefaultRouteMsteams {
/**
* Enable notification in MS teams. Defaults to `true`.
*/
enabled?: pulumi.Input<boolean>;
/**
* The ID of this resource.
*/
id?: pulumi.Input<string>;
}
export interface OncallIntegrationDefaultRouteSlack {
/**
* Slack channel id. Alerts will be directed to this channel in Slack.
*/
channelId?: pulumi.Input<string>;
/**
* Enable notification in MS teams. Defaults to `true`.
*/
enabled?: pulumi.Input<boolean>;
}
export interface OncallIntegrationDefaultRouteTelegram {
/**
* Enable notification in MS teams. Defaults to `true`.
*/
enabled?: pulumi.Input<boolean>;
/**
* The ID of this resource.
*/
id?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplates {
/**
* Template for sending a signal to acknowledge the Incident.
*/
acknowledgeSignal?: pulumi.Input<string>;
/**
* Templates for Email.
*/
email?: pulumi.Input<inputs.OncallIntegrationTemplatesEmail>;
/**
* Template for the key by which alerts are grouped.
*/
groupingKey?: pulumi.Input<string>;
/**
* Templates for Microsoft Teams.
*/
microsoftTeams?: pulumi.Input<inputs.OncallIntegrationTemplatesMicrosoftTeams>;
/**
* Templates for Phone Call.
*/
phoneCall?: pulumi.Input<inputs.OncallIntegrationTemplatesPhoneCall>;
/**
* Template for sending a signal to resolve the Incident.
*/
resolveSignal?: pulumi.Input<string>;
/**
* Templates for Slack.
*/
slack?: pulumi.Input<inputs.OncallIntegrationTemplatesSlack>;
/**
* Templates for SMS.
*/
sms?: pulumi.Input<inputs.OncallIntegrationTemplatesSms>;
/**
* Template for a source link.
*/
sourceLink?: pulumi.Input<string>;
/**
* Templates for Telegram.
*/
telegram?: pulumi.Input<inputs.OncallIntegrationTemplatesTelegram>;
/**
* Templates for Web.
*/
web?: pulumi.Input<inputs.OncallIntegrationTemplatesWeb>;
}
export interface OncallIntegrationTemplatesEmail {
/**
* Template for Alert message.
*/
message?: pulumi.Input<string>;
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplatesMicrosoftTeams {
/**
* Template for Alert image url.
*/
imageUrl?: pulumi.Input<string>;
/**
* Template for Alert message.
*/
message?: pulumi.Input<string>;
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplatesPhoneCall {
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplatesSlack {
/**
* Template for Alert image url.
*/
imageUrl?: pulumi.Input<string>;
/**
* Template for Alert message.
*/
message?: pulumi.Input<string>;
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplatesSms {
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplatesTelegram {
/**
* Template for Alert image url.
*/
imageUrl?: pulumi.Input<string>;
/**
* Template for Alert message.
*/
message?: pulumi.Input<string>;
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallIntegrationTemplatesWeb {
/**
* Template for Alert image url.
*/
imageUrl?: pulumi.Input<string>;
/**
* Template for Alert message.
*/
message?: pulumi.Input<string>;
/**
* Template for Alert title.
*/
title?: pulumi.Input<string>;
}
export interface OncallRouteMsteams {
/**
* Enable notification in MS teams. Defaults to `true`.
*/
enabled?: pulumi.Input<boolean>;
/**
* MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
*/
id?: pulumi.Input<string>;
}
export interface OncallRouteSlack {
/**
* Slack channel id. Alerts will be directed to this channel in Slack.
*/
channelId?: pulumi.Input<string>;
/**
* Enable notification in Slack. Defaults to `true`.
*/
enabled?: pulumi.Input<boolean>;
}
export interface OncallRouteTelegram {
/**
* Enable notification in Telegram. Defaults to `true`.
*/
enabled?: pulumi.Input<boolean>;
/**
* Telegram channel id. Alerts will be directed to this channel in Telegram.
*/
id?: pulumi.Input<string>;
}
export interface OncallScheduleSlack {
/**
* Slack channel id. Reminder about schedule shifts will be directed to this channel in Slack.
*/
channelId?: pulumi.Input<string>;
/**
* Slack user group id. Members of user group will be updated when on-call users change.
*/
userGroupId?: pulumi.Input<string>;
}
export interface PlaylistItem {
/**
* The ID of this resource.
*/
id?: pulumi.Input<string>;
order: pulumi.Input<number>;
title: pulumi.Input<string>;
type?: pulumi.Input<string>;
value?: pulumi.Input<string>;
}
export interface ReportSchedule {
/**
* Custom interval of the report.
* **Note:** This field is only available when frequency is set to `custom`.
*/
customInterval?: pulumi.Input<string>;
/**
* End time of the report. If empty, the report will be sent indefinitely (according to frequency). Note that times will be saved as UTC in Grafana.
*/
endTime?: pulumi.Input<string>;
/**
* Frequency of the report. Allowed values: `never`, `once`, `hourly`, `daily`, `weekly`, `monthly`, `custom`.
*/
frequency: pulumi.Input<string>;
/**
* Send the report on the last day of the month Defaults to `false`.
*/
lastDayOfMonth?: pulumi.Input<boolean>;
/**
* Start time of the report. If empty, the start date will be set to the creation time. Note that times will be saved as UTC in Grafana.
*/
startTime?: pulumi.Input<string>;
/**
* Whether to send the report only on work days. Defaults to `false`.
*/
workdaysOnly?: pulumi.Input<boolean>;
}
export interface ReportTimeRange {
/**
* Start of the time range.
*/
from?: pulumi.Input<string>;
/**
* End of the time range.
*/
to?: pulumi.Input<string>;
}
export interface RolePermission {
/**
* Specific action users granted with the role will be allowed to perform (for example: `users:read`)
*/
action: pulumi.Input<string>;
/**
* Scope to restrict the action to a set of resources (for example: `users:*` or `roles:customrole1`) Defaults to ``.
*/
scope?: pulumi.Input<string>;
}
export interface RuleGroupRule {
/**
* Key-value pairs of metadata to attach to the alert rule that may add user-defined context, but cannot be used for matching, grouping, or routing. Defaults to `map[]`.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The `refId` of the query node in the `data` field to use as the alert condition.
*/
condition: pulumi.Input<string>;
/**
* A sequence of stages that describe the contents of the rule.
*/
datas: pulumi.Input<pulumi.Input<inputs.RuleGroupRuleData>[]>;
/**
* Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, and Alerting. Defaults to `Alerting`.
*/
execErrState?: pulumi.Input<string>;
/**
* The amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to `0`.
*/
for?: pulumi.Input<string>;
/**
* Sets whether the alert should be paused or not. Defaults to `false`.
*/
isPaused?: pulumi.Input<boolean>;
/**
* Key-value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to `map[]`.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The name of the alert rule.
*/
name: pulumi.Input<string>;
/**
* Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, and Alerting. Defaults to `NoData`.
*/
noDataState?: pulumi.Input<string>;
/**
* The unique identifier of the alert rule.
*/
uid?: pulumi.Input<string>;
}
export interface RuleGroupRuleData {
/**
* The UID of the datasource being queried, or "-100" if this stage is an expression stage.
*/
datasourceUid: pulumi.Input<string>;
/**
* Custom JSON data to send to the specified datasource when querying.
*/
model: pulumi.Input<string>;
/**
* An optional identifier for the type of query being executed. Defaults to ``.
*/
queryType?: pulumi.Input<string>;
/**
* A unique string to identify this query stage within a rule.
*/
refId: pulumi.Input<string>;
/**
* The time range, relative to when the query is executed, across which to query.
*/
relativeTimeRange: pulumi.Input<inputs.RuleGroupRuleDataRelativeTimeRange>;
}
export interface RuleGroupRuleDataRelativeTimeRange {
/**
* The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.
*/
from: pulumi.Input<number>;
/**
* The number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.
*/
to: pulumi.Input<number>;
}
export interface SLOAlerting {
/**
* Annotations will be attached to all alerts generated by any of these rules.
*/
annotations?: pulumi.Input<pulumi.Input<inputs.SLOAlertingAnnotation>[]>;
/**
* Alerting Rules generated for Fast Burn alerts
*/
fastburns?: pulumi.Input<pulumi.Input<inputs.SLOAlertingFastburn>[]>;
/**
* Labels will be attached to all alerts generated by any of these rules.
*/
labels?: pulumi.Input<pulumi.Input<inputs.SLOAlertingLabel>[]>;
/**
* Alerting Rules generated for Slow Burn alerts
*/
slowburns?: pulumi.Input<pulumi.Input<inputs.SLOAlertingSlowburn>[]>;
}
export interface SLOAlertingAnnotation {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOAlertingFastburn {
/**
* Annotations will be attached to all alerts generated by any of these rules.
*/
annotations?: pulumi.Input<pulumi.Input<inputs.SLOAlertingFastburnAnnotation>[]>;
/**
* Labels to attach only to Fast Burn alerts.
*/
labels?: pulumi.Input<pulumi.Input<inputs.SLOAlertingFastburnLabel>[]>;
}
export interface SLOAlertingFastburnAnnotation {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOAlertingFastburnLabel {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOAlertingLabel {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOAlertingSlowburn {
/**
* Annotations will be attached to all alerts generated by any of these rules.
*/
annotations?: pulumi.Input<pulumi.Input<inputs.SLOAlertingSlowburnAnnotation>[]>;
/**
* Labels to attach only to Fast Burn alerts.
*/
labels?: pulumi.Input<pulumi.Input<inputs.SLOAlertingSlowburnLabel>[]>;
}
export interface SLOAlertingSlowburnAnnotation {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOAlertingSlowburnLabel {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOLabel {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface SLOObjective {
/**
* Value between 0 and 1. If the value of the query is above the objective, the SLO is met.
*/
value: pulumi.Input<number>;
/**
* A Prometheus-parsable time duration string like 24h, 60m. This is the time window the objective is measured over.
*/
window: pulumi.Input<string>;
}
export interface SLOQuery {
freeform?: pulumi.Input<inputs.SLOQueryFreeform>;
ratio?: pulumi.Input<inputs.SLOQueryRatio>;
/**
* Query type must be one of: "freeform", "query", "ratio", or "threshold"
*/
type: pulumi.Input<string>;
}
export interface SLOQueryFreeform {
/**
* Freeform Query Field
*/
query: pulumi.Input<string>;
}
export interface SLOQueryRatio {
/**
* 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?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Counter metric for success events (numerator)
*/