@pulumiverse/grafana
Version:
A Pulumi package for creating and managing grafana.
1,381 lines (1,380 loc) • 282 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export declare namespace alerting {
interface AlertEnrichmentMetadata {
/**
* Annotations of the resource.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
*/
folderUid?: pulumi.Input<string>;
/**
* The unique identifier of the resource.
*/
uid: pulumi.Input<string>;
/**
* The full URL of the resource.
*/
url?: pulumi.Input<string>;
/**
* The globally unique identifier of a resource, used by the API for tracking.
*/
uuid?: pulumi.Input<string>;
/**
* The version of the resource.
*/
version?: pulumi.Input<string>;
}
interface AlertEnrichmentOptions {
/**
* Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
*/
managerIdentity?: pulumi.Input<string>;
/**
* Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
*/
overwrite?: pulumi.Input<boolean>;
}
interface AlertEnrichmentSpec {
/**
* UIDs of alert rules this enrichment applies to. If empty, applies to all alert rules.
*/
alertRuleUids?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Annotation matchers that an alert must satisfy for this enrichment to apply. Each matcher is an object with: 'type' (string, one of: =, !=, =~, !~), 'name' (string, annotation key to match), 'value' (string, annotation value to compare against, supports regex for =~/!~ operators).
*/
annotationMatchers?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecAnnotationMatcher>[]>;
/**
* Description of the alert enrichment.
*/
description?: pulumi.Input<string>;
/**
* Allow modifying alert enrichment outside of Terraform
*/
disableProvenance?: pulumi.Input<boolean>;
/**
* Label matchers that an alert must satisfy for this enrichment to apply. Each matcher is an object with: 'type' (string, one of: =, !=, =~, !~), 'name' (string, label key to match), 'value' (string, label value to compare against, supports regex for =~/!~ operators).
*/
labelMatchers?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecLabelMatcher>[]>;
/**
* Receiver names to match. If empty, applies to all receivers.
*/
receivers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Enrichment step. Can be repeated multiple times to define a sequence of steps. Each step must contain exactly one enrichment block.
*/
steps?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecStep>[]>;
/**
* The title of the alert enrichment.
*/
title: pulumi.Input<string>;
}
interface AlertEnrichmentSpecAnnotationMatcher {
name: pulumi.Input<string>;
type: pulumi.Input<string>;
value: pulumi.Input<string>;
}
interface AlertEnrichmentSpecLabelMatcher {
name: pulumi.Input<string>;
type: pulumi.Input<string>;
value: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStep {
/**
* Integrate with Grafana Asserts for enrichment.
*/
asserts?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepAsserts>;
/**
* Assign annotations to an alert.
*/
assign?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepAssign>;
/**
* Use AI assistant to investigate alerts and add insights.
*/
assistantInvestigations?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepAssistantInvestigations>;
/**
* Conditional step with if/then/else.
*/
conditional?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditional>;
/**
* Query Grafana data sources and add results to alerts.
*/
dataSource?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepDataSource>;
/**
* Generate AI explanation and store in an annotation.
*/
explain?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepExplain>;
/**
* Call an external HTTP service for enrichment.
*/
external?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepExternal>;
/**
* Analyze alerts for patterns and insights.
*/
sift?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepSift>;
}
interface AlertEnrichmentSpecStepAsserts {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepAssign {
/**
* Map of annotation names to values to set on matching alerts.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepAssistantInvestigations {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditional {
/**
* Steps when condition is false.
*/
else?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElse>;
/**
* Condition to evaluate.
*/
if?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalIf>;
/**
* Steps when condition is true.
*/
then?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThen>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElse {
steps?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStep>[]>;
}
interface AlertEnrichmentSpecStepConditionalElseStep {
/**
* Integrate with Grafana Asserts for enrichment.
*/
asserts?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepAsserts>;
/**
* Assign annotations to an alert.
*/
assign?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepAssign>;
/**
* Use AI assistant to investigate alerts and add insights.
*/
assistantInvestigations?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepAssistantInvestigations>;
/**
* Query Grafana data sources and add results to alerts.
*/
dataSource?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepDataSource>;
/**
* Generate AI explanation and store in an annotation.
*/
explain?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepExplain>;
/**
* Call an external HTTP service for enrichment.
*/
external?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepExternal>;
/**
* Analyze alerts for patterns and insights.
*/
sift?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepSift>;
}
interface AlertEnrichmentSpecStepConditionalElseStepAsserts {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepAssign {
/**
* Map of annotation names to values to set on matching alerts.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepAssistantInvestigations {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepDataSource {
/**
* Logs query configuration for querying log data sources.
*/
logsQuery?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepDataSourceLogsQuery>;
/**
* Raw query configuration for advanced data source queries.
*/
rawQuery?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalElseStepDataSourceRawQuery>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepDataSourceLogsQuery {
/**
* Data source type (e.g., 'loki').
*/
dataSourceType?: pulumi.Input<string>;
/**
* UID of the data source to query.
*/
dataSourceUid?: pulumi.Input<string>;
/**
* Log query expression to execute.
*/
expr?: pulumi.Input<string>;
/**
* Maximum number of log lines to include. Defaults to 3.
*/
maxLines?: pulumi.Input<number>;
}
interface AlertEnrichmentSpecStepConditionalElseStepDataSourceRawQuery {
/**
* Reference ID for correlating queries.
*/
refId?: pulumi.Input<string>;
/**
* Raw request payload for the data source query.
*/
request?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepExplain {
/**
* Annotation name to set the explanation in. Defaults to 'ai_explanation'.
*/
annotation?: pulumi.Input<string>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepExternal {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
/**
* HTTP endpoint URL to call for enrichment
*/
url?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalElseStepSift {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalIf {
/**
* Annotation matchers for the condition.
*/
annotationMatchers?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalIfAnnotationMatcher>[]>;
/**
* Data source condition.
*/
dataSourceCondition?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalIfDataSourceCondition>;
/**
* Label matchers for the condition.
*/
labelMatchers?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalIfLabelMatcher>[]>;
}
interface AlertEnrichmentSpecStepConditionalIfAnnotationMatcher {
name: pulumi.Input<string>;
type: pulumi.Input<string>;
value: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalIfDataSourceCondition {
/**
* Data source request payload.
*/
request?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalIfLabelMatcher {
name: pulumi.Input<string>;
type: pulumi.Input<string>;
value: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThen {
steps?: pulumi.Input<pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStep>[]>;
}
interface AlertEnrichmentSpecStepConditionalThenStep {
/**
* Integrate with Grafana Asserts for enrichment.
*/
asserts?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepAsserts>;
/**
* Assign annotations to an alert.
*/
assign?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepAssign>;
/**
* Use AI assistant to investigate alerts and add insights.
*/
assistantInvestigations?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepAssistantInvestigations>;
/**
* Query Grafana data sources and add results to alerts.
*/
dataSource?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepDataSource>;
/**
* Generate AI explanation and store in an annotation.
*/
explain?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepExplain>;
/**
* Call an external HTTP service for enrichment.
*/
external?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepExternal>;
/**
* Analyze alerts for patterns and insights.
*/
sift?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepSift>;
}
interface AlertEnrichmentSpecStepConditionalThenStepAsserts {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepAssign {
/**
* Map of annotation names to values to set on matching alerts.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepAssistantInvestigations {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepDataSource {
/**
* Logs query configuration for querying log data sources.
*/
logsQuery?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepDataSourceLogsQuery>;
/**
* Raw query configuration for advanced data source queries.
*/
rawQuery?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepConditionalThenStepDataSourceRawQuery>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepDataSourceLogsQuery {
/**
* Data source type (e.g., 'loki').
*/
dataSourceType?: pulumi.Input<string>;
/**
* UID of the data source to query.
*/
dataSourceUid?: pulumi.Input<string>;
/**
* Log query expression to execute.
*/
expr?: pulumi.Input<string>;
/**
* Maximum number of log lines to include. Defaults to 3.
*/
maxLines?: pulumi.Input<number>;
}
interface AlertEnrichmentSpecStepConditionalThenStepDataSourceRawQuery {
/**
* Reference ID for correlating queries.
*/
refId?: pulumi.Input<string>;
/**
* Raw request payload for the data source query.
*/
request?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepExplain {
/**
* Annotation name to set the explanation in. Defaults to 'ai_explanation'.
*/
annotation?: pulumi.Input<string>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepExternal {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
/**
* HTTP endpoint URL to call for enrichment
*/
url?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepConditionalThenStepSift {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepDataSource {
/**
* Logs query configuration for querying log data sources.
*/
logsQuery?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepDataSourceLogsQuery>;
/**
* Raw query configuration for advanced data source queries.
*/
rawQuery?: pulumi.Input<inputs.alerting.AlertEnrichmentSpecStepDataSourceRawQuery>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepDataSourceLogsQuery {
/**
* Data source type (e.g., 'loki').
*/
dataSourceType?: pulumi.Input<string>;
/**
* UID of the data source to query.
*/
dataSourceUid?: pulumi.Input<string>;
/**
* Log query expression to execute.
*/
expr?: pulumi.Input<string>;
/**
* Maximum number of log lines to include. Defaults to 3.
*/
maxLines?: pulumi.Input<number>;
}
interface AlertEnrichmentSpecStepDataSourceRawQuery {
/**
* Reference ID for correlating queries.
*/
refId?: pulumi.Input<string>;
/**
* Raw request payload for the data source query.
*/
request?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepExplain {
/**
* Annotation name to set the explanation in. Defaults to 'ai_explanation'.
*/
annotation?: pulumi.Input<string>;
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepExternal {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
/**
* HTTP endpoint URL to call for enrichment
*/
url?: pulumi.Input<string>;
}
interface AlertEnrichmentSpecStepSift {
/**
* Maximum execution time (e.g., '30s', '1m')
*/
timeout?: pulumi.Input<string>;
}
interface AlertRuleV0Alpha1Metadata {
/**
* Annotations of the resource.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
*/
folderUid?: pulumi.Input<string>;
/**
* The unique identifier of the resource.
*/
uid: pulumi.Input<string>;
/**
* The full URL of the resource.
*/
url?: pulumi.Input<string>;
/**
* The globally unique identifier of a resource, used by the API for tracking.
*/
uuid?: pulumi.Input<string>;
/**
* The version of the resource.
*/
version?: pulumi.Input<string>;
}
interface AlertRuleV0Alpha1Options {
/**
* Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
*/
managerIdentity?: pulumi.Input<string>;
/**
* Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
*/
overwrite?: pulumi.Input<boolean>;
}
interface AlertRuleV0Alpha1Spec {
/**
* Key-value pairs of metadata to attach to the alert rule. They add additional information, such as a `summary` or `runbookUrl`, to help identify and investigate alerts.
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.
*/
execErrState: pulumi.Input<string>;
/**
* A sequence of stages that describe the contents of the rule. Each value is a JSON string representing an expression object.
*/
expressions: pulumi.Input<{
[key: string]: 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.
*/
for?: pulumi.Input<string>;
/**
* The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.
*/
keepFiringFor?: pulumi.Input<string>;
/**
* Key-value pairs to attach to the alert rule that can be used in matching, grouping, and routing.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The number of missing series evaluations that must occur before the rule is considered to be resolved.
*/
missingSeriesEvalsToResolve?: pulumi.Input<number>;
/**
* Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting.
*/
noDataState: pulumi.Input<string>;
/**
* Notification settings for the rule. If specified, it overrides the notification policies. The flat configuration is deprecated, please specify one of named*routing*tree or simplified*routing
*/
notificationSettings?: pulumi.Input<inputs.alerting.AlertRuleV0Alpha1SpecNotificationSettings>;
/**
* Reference to a panel that this alert rule is associated with. Should be an object with 'dashboard*uid' (string) and 'panel*id' (number) fields.
*/
panelRef?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Sets whether the rule should be paused or not.
*/
paused?: pulumi.Input<boolean>;
/**
* The title of the alert rule.
*/
title: pulumi.Input<string>;
/**
* The trigger configuration for the alert rule.
*/
trigger?: pulumi.Input<inputs.alerting.AlertRuleV0Alpha1SpecTrigger>;
}
interface AlertRuleV0Alpha1SpecNotificationSettings {
/**
* Deprecated. A list of time interval names to apply to alerts that match this policy.
*
* @deprecated Use `simplified_routing.active_timings` instead.
*/
activeTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Deprecated. The contact point to route notifications that match this rule to.
*
* @deprecated Use `simplified_routing.contact_point` instead.
*/
contactPoint?: pulumi.Input<string>;
/**
* Deprecated. A list of alert labels to group alerts into notifications by.
*
* @deprecated Use `simplified_routing.group_by` instead.
*/
groupBies?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Deprecated. Minimum time interval between two notifications for the same group.
*
* @deprecated Use `simplified_routing.group_interval` instead.
*/
groupInterval?: pulumi.Input<string>;
/**
* Deprecated. Time to wait to buffer alerts of the same group before sending a notification.
*
* @deprecated Use `simplified_routing.group_wait` instead.
*/
groupWait?: pulumi.Input<string>;
/**
* Deprecated. A list of mute timing names to apply to alerts that match this policy.
*
* @deprecated Use `simplified_routing.mute_timings` instead.
*/
muteTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Route notifications to a specific routing tree.
*/
namedRoutingTree?: pulumi.Input<inputs.alerting.AlertRuleV0Alpha1SpecNotificationSettingsNamedRoutingTree>;
/**
* Deprecated. Minimum time interval for re-sending a notification if an alert is still firing.
*
* @deprecated Use `simplified_routing.repeat_interval` instead.
*/
repeatInterval?: pulumi.Input<string>;
/**
* Simplified routing to a contact point with optional grouping and timing overrides.
*/
simplifiedRouting?: pulumi.Input<inputs.alerting.AlertRuleV0Alpha1SpecNotificationSettingsSimplifiedRouting>;
}
interface AlertRuleV0Alpha1SpecNotificationSettingsNamedRoutingTree {
/**
* The name of the routing tree to use.
*/
routingTree?: pulumi.Input<string>;
}
interface AlertRuleV0Alpha1SpecNotificationSettingsSimplifiedRouting {
/**
* A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time.
*/
activeTimings?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The contact point to route notifications that match this rule to.
*/
contactPoint?: pulumi.Input<string>;
/**
* A list of alert labels to group alerts into notifications by.
*/
groupBies?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Minimum time interval between two notifications for the same group.
*/
groupInterval?: pulumi.Input<string>;
/**
* Time to wait to buffer alerts of the same group before sending a notification.
*/
groupWait?: pulumi.Input<string>;
/**
* 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.
*/
repeatInterval?: pulumi.Input<string>;
}
interface AlertRuleV0Alpha1SpecTrigger {
/**
* The interval at which the alert rule should be evaluated.
*/
interval: pulumi.Input<string>;
}
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>;
}
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>;
}
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>;
}
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>;
}
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>;
}
interface ContactPointJira {
/**
* Personal Access Token that is used as a bearer authorization header.
*/
apiToken?: pulumi.Input<string>;
/**
* The URL of the Jira REST API (v2 or v3).
*/
apiUrl: pulumi.Input<string>;
/**
* Custom field ID for storing deduplication keys. Must be numeric.
*/
dedupKeyField?: pulumi.Input<string>;
/**
* The templated description of the Jira issue. Maximum length is 32767 characters.
*/
description?: pulumi.Input<string>;
/**
* Whether to disable sending resolve messages. Defaults to `false`.
*/
disableResolveMessage?: pulumi.Input<boolean>;
/**
* Custom Jira issue fields.
*/
fields?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The type of issue to create (e.g., Bug, Task, Story).
*/
issueType: pulumi.Input<string>;
/**
* Labels to assign to the Jira issue.
*/
labels?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Password to use for Jira authentication.
*/
password?: pulumi.Input<string>;
/**
* The priority level of the issue (e.g., High, Medium, Low).
*/
priority?: pulumi.Input<string>;
/**
* The project key in Jira.
*/
project: pulumi.Input<string>;
/**
* Duration to consider reopening issues (e.g., '10m').
*/
reopenDuration?: pulumi.Input<string>;
/**
* The name of the workflow transition to reopen an issue.
*/
reopenTransition?: pulumi.Input<string>;
/**
* The name of the workflow transition to resolve an issue.
*/
resolveTransition?: pulumi.Input<string>;
/**
* Additional custom properties to attach to the notifier. Defaults to `map[]`.
*/
settings?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The templated summary of the Jira issue. Maximum length is 255 characters.
*/
summary?: pulumi.Input<string>;
/**
* The UID of the contact point.
*/
uid?: pulumi.Input<string>;
/**
* Username to use for Jira authentication.
*/
user?: pulumi.Input<string>;
/**
* Resolution status to exclude from reopening/updating.
*/
wontFixResolution?: pulumi.Input<string>;
}
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>;
}
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>;
}
interface ContactPointOncall {
/**
* 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>;
}
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>;
/**
* 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?: pulumi.Input<pulumi.Input<inputs.alerting.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?: 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>;
}
interface ContactPointOpsgenyResponder {
/**
* ID of the responder. Must be specified if name and username are empty.
*/
id?: pulumi.Input<string>;
/**
* Name of the responder. Must be specified if username and id are empty.
*/
name?: pulumi.Input<string>;
/**
* Type of the responder. Supported: team, teams, user, escalation, schedule or a template that is expanded to one of these values.
*/
type: pulumi.Input<string>;
/**
* User name of the responder. Must be specified if name and id are empty.
*/
username?: pulumi.Input<string>;
}
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>;
/**
* The URL to send API requests to
*/
url?: pulumi.Input<string>;
}
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>;
}
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>;
}
interface ContactPointSlack {
/**
* Templated color of the slack message.
*/
color?: pulumi.Input<string>;
/**
* 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>;
}
interface ContactPointSn {
/**
* AWS access key ID used to authenticate with Amazon SNS.
*/
accessKey?: pulumi.Input<string>;
/**
* The Amazon Resource Name (ARN) of the role to assume to send notifications to Amazon SNS.