import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface CloudAccessPolicyCondition {
    /**
     * Conditions that apply to the access policy,such as IP Allow lists.
     */
    allowedSubnets: pulumi.Input<pulumi.Input<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: 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 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>;
}
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>;
    /**
     * 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.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>;
}
export 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>;
}
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>;
    /**
     * The URL to send API requests to
     */
    url?: 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 {
    /**
     * 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>;
}
export 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.
     */
    assumeRoleArn?: pulumi.Input<string>;
    /**
     * The authentication provider to use. Valid values are `default`, `arn` and `keys`. Default is `default`. Defaults to `default`.
     */
    authProvider?: pulumi.Input<string>;
    body?: pulumi.Input<string>;
    /**
     * Whether to disable sending resolve messages. Defaults to `false`.
     */
    disableResolveMessage?: pulumi.Input<boolean>;
    /**
     * The external ID to use when assuming the role.
     */
    externalId?: pulumi.Input<string>;
    /**
     * The format of the message to send. Valid values are `text`, `body` and `json`. Default is `text`. Defaults to `text`.
     */
    messageFormat?: pulumi.Input<string>;
    /**
     * AWS secret access key used to authenticate with Amazon SNS.
     */
    secretKey?: pulumi.Input<string>;
    /**
     * Additional custom properties to attach to the notifier. Defaults to `map[]`.
     */
    settings?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    subject?: pulumi.Input<string>;
    /**
     * The Amazon SNS topic to send notifications to.
     */
    topic: pulumi.Input<string>;
    /**
     * The UID of the contact point.
     */
    uid?: 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>;
    /**
     * The ID of the message thread to send the message to.
     */
    messageThreadId?: 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>;
    /**
     * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
     */
    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`.
     */
    builtInRole?: pulumi.Input<string>;
    /**
     * Permission to associate with item. Options: `Query`, `Edit` or `Admin` (`Admin` can only be used with Grafana v10.3.0+).
     */
    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>;
    /**
     * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
     */
    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>[]>;
    /**
     * Provides the time zone for the time interval. Must be a location in the IANA time zone database, e.g "America/New_York"
     */
    location?: 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>;
    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>;
    /**
     * MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
     */
    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 Slack. Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean>;
}
export interface OncallIntegrationDefaultRouteTelegram {
    /**
     * 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 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. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
     */
    microsoftTeams?: pulumi.Input<inputs.OncallIntegrationTemplatesMicrosoftTeams>;
    /**
     * Templates for Mobile app push notifications.
     */
    mobileApp?: pulumi.Input<inputs.OncallIntegrationTemplatesMobileApp>;
    /**
     * 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 OncallIntegrationTemplatesMobileApp {
    /**
     * 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 {
    id?: pulumi.Input<string>;
    order: pulumi.Input<number>;
    title: pulumi.Input<string>;
    type?: pulumi.Input<string>;
    value?: pulumi.Input<string>;
}
export interface ReportDashboard {
    /**
     * Add report variables to the dashboard. Values should be separated by commas.
     */
    reportVariables?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Time range of the report.
     */
    timeRange?: pulumi.Input<inputs.ReportDashboardTimeRange>;
    /**
     * Dashboard uid.
     */
    uid: pulumi.Input<string>;
}
export interface ReportDashboardTimeRange {
    /**
     * Start of the time range.
     */
    from?: pulumi.Input<string>;
    /**
     * End of the time range.
     */
    to?: 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. Use 2006-01-02T15:04:05 format if you want to set a custom timezone
     */
    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. Use 2006-01-02T15:04:05 format if you want to set a custom timezone
     */
    startTime?: pulumi.Input<string>;
    /**
     * Set the report time zone. Defaults to `GMT`.
     */
    timezone?: pulumi.Input<string>;
    /**
     * Whether to send the report only on work days. Defaults to `false`.
     */
    workdaysOnly?: pulumi.Input<boolean>;
}
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. They add additional information, such as a `summary` or `runbookUrl`, to help identify and investigate alerts. The `dashboardUId` and `panelId` annotations, which link alerts to a panel, must be set together. 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, KeepLast, and Alerting.  Defaults to Alerting if not set.
     */
    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, KeepLast, and Alerting. Defaults to NoData if not set.
     */
    noDataState?: pulumi.Input<string>;
    /**
     * Notification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled.
     */
    notificationSettings?: pulumi.Input<inputs.RuleGroupRuleNotificationSettings>;
    /**
     * Settings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled.
     */
    record?: pulumi.Input<inputs.RuleGroupRuleRecord>;
    /**
     * 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 RuleGroupRuleNotificationSettings {
    /**
     * 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. Use the special label `...` to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.
     */
    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>;
    /**
     * 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 RuleGroupRuleRecord {
    /**
     * The ref id of the query node in the data field to use as the source of the metric.
     */
    from: pulumi.Input<string>;
    /**
     * The name of the metric to write to.
     */
    metric: pulumi.Input<string>;
}
export interface SLOAlerting {
    /**
     * Advanced Options for Alert Rules
     */
    advancedOptions?: pulumi.Input<inputs.SLOAlertingAdvancedOptions>;
    /**
     * 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 SLOAlertingAdvancedOptions {
    /**
     * Minimum number of failed events to trigger an alert
     */
    minFailures?: pulumi.Input<number>;
}
export interface SLOAlertingAnnotation {
    /**
     * Key for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    value: pulumi.Input<string>;
}
export interface SLOAlertingFastburn {
    /**
     * Annotations to attach only to Fast Burn alerts.
     */
    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 for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    value: pulumi.Input<string>;
}
export interface SLOAlertingFastburnLabel {
    /**
     * Key for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    value: pulumi.Input<string>;
}
export interface SLOAlertingLabel {
    /**
     * Key for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    value: pulumi.Input<string>;
}
export interface SLOAlertingSlowburn {
    /**
     * Annotations to attach only to Slow Burn alerts.
     */
    annotations?: pulumi.Input<pulumi.Input<inputs.SLOAlertingSlowburnAnnotation>[]>;
    /**
     * Labels to attach only to Slow Burn alerts.
     */
    labels?: pulumi.Input<pulumi.Input<inputs.SLOAlertingSlowburnLabel>[]>;
}
export interface SLOAlertingSlowburnAnnotation {
    /**
     * Key for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    value: pulumi.Input<string>;
}
export interface SLOAlertingSlowburnLabel {
    /**
     * Key for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    value: pulumi.Input<string>;
}
export interface SLODestinationDatasource {
    /**
     * UID for the Datasource
     */
    uid: pulumi.Input<string>;
}
export interface SLOLabel {
    /**
     * Key for filtering and identification
     */
    key: pulumi.Input<string>;
    /**
     * Templatable value
     */
    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>;
    /**
     * Array for holding a set of grafana queries
     */
    grafanaQueries?: pulumi.Input<inputs.SLOQueryGrafanaQueries>;
    ratio?: pulumi.Input<inputs.SLOQueryRatio>;
    /**
     * Query type must be one of: "freeform", "query", "ratio", "grafanaQueries" or "threshold"
     */
    type: pulumi.Input<string>;
}
export interface SLOQueryFreeform {
    /**
     * Freeform Query Field - valid promQl
     */
    query: pulumi.Input<string>;
}
export interface SLOQueryGrafanaQueries {
    /**
     * Query Object - Array of Grafana Query JSON objects
     */
    grafanaQueries: 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)
     */
    successMetric: pulumi.Input<string>;
    /**
     * Metric for total events (denominator)
     */
    totalMetric: pulumi.Input<string>;
}
export interface ServiceAccountPermissionPermission {
    /**
     * Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
     */
    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 SsoSettingsLdapSettings {
    /**
     * Whether to allow new Grafana user creation through LDAP login. If set to false, then only existing Grafana users can log in with LDAP.
     */
    allowSignUp?: pulumi.Input<boolean>;
    /**
     * The LDAP configuration.
     */
    config: pulumi.Input<inputs.SsoSettingsLdapSettingsConfig>;
    /**
     * Define whether this configuration is enabled for LDAP. Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean>;
    /**
     * Prevent synchronizing users’ organization roles from LDAP.
     */
    skipOrgRoleSync?: pulumi.Input<boolean>;
}
export interface SsoSettingsLdapSettingsConfig {
    /**
     * The LDAP servers configuration.
     */
    servers: pulumi.Input<pulumi.Input<inputs.SsoSettingsLdapSettingsConfigServer>[]>;
}
export interface SsoSettingsLdapSettingsConfigServer {
    /**
     * The LDAP server attributes. The following attributes can be configured: email, member_of, name, surname, username.
     */
    attributes?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The search user bind DN.
     */
    bindDn?: pulumi.Input<string>;
    /**
     * The search user bind password.
     */
    bindPassword?: pulumi.Input<string>;
    /**
     * The path to the client certificate.
     */
    clientCert?: pulumi.Input<string>;
    /**
     * The Base64 encoded value of the client certificate.
     */
    clientCertValue?: pulumi.Input<string>;
    /**
     * The path to the client private key.
     */
    clientKey?: pulumi.Input<string>;
    /**
     * The Base64 encoded value of the client private key.
     */
    clientKeyValue?: pulumi.Input<string>;
    /**
     * For mapping an LDAP group to a Grafana organization and role.
     */
    groupMappings?: pulumi.Input<pulumi.Input<inputs.SsoSettingsLdapSettingsConfigServerGroupMapping>[]>;
    /**
     * An array of the base DNs to search through for groups. Typically uses ou=groups.
     */
    groupSearchBaseDns?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Group search filter, to retrieve the groups of which the user is a member (only set if memberOf attribute is not available).
     */
    groupSearchFilter?: pulumi.Input<string>;
    /**
     * The %s in the search filter will be replaced with the attribute defined in this field.
     */
    groupSearchFilterUserAttribute?: pulumi.Input<string>;
    /**
     * The LDAP server host.
     */
    host: pulumi.Input<string>;
    /**
     * Minimum TLS version allowed. Accepted values are: TLS1.2, TLS1.3.
     */
    minTlsVersion?: pulumi.Input<string>;
    /**
     * The LDAP server port.
     */
    port?: pulumi.Input<number>;
    /**
     * The path to the root CA certificate.
     */
    rootCaCert?: pulumi.Input<string>;
    /**
     * The Base64 encoded values of the root CA certificates.
     */
    rootCaCertValues?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * An array of base DNs to search through.
     */
    searchBaseDns: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The user search filter, for example "(cn=%s)" or "(sAMAccountName=%s)" or "(uid=%s)".
     */
    searchFilter: pulumi.Input<string>;
    /**
     * If set to true, the SSL cert validation will be skipped.
     */
    sslSkipVerify?: pulumi.Input<boolean>;
    /**
     * If set to true, use LDAP with STARTTLS instead of LDAPS.
     */
    startTls?: pulumi.Input<boolean>;
    /**
     * The timeout in seconds for connecting to the LDAP host.
     */
    timeout?: pulumi.Input<number>;
    /**
     * Accepted TLS ciphers. For a complete list of supported ciphers, refer to: https://go.dev/src/crypto/tls/cipher_suites.go.
     */
    tlsCiphers?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Set to true if LDAP server should use an encrypted TLS connection (either with STARTTLS or LDAPS).
     */
    useSsl?: pulumi.Input<boolean>;
}
export interface SsoSettingsLdapSettingsConfigServerGroupMapping {
    /**
     * If set to true, it makes the user of groupDn Grafana server admin.
     */
    grafanaAdmin?: pulumi.Input<boolean>;
    /**
     * LDAP distinguished name (DN) of LDAP group. If you want to match all (or no LDAP groups) then you can use wildcard ("*").
     */
    groupDn: pulumi.Input<string>;
    /**
     * The Grafana organization database id.
     */
    orgId?: pulumi.Input<number>;
    /**
     * Assign users of groupDn the organization role Admin, Editor, or Viewer.
     */
    orgRole: pulumi.Input<string>;
}
export interface SsoSettingsOauth2Settings {
    /**
     * If enabled, it will automatically sync the Grafana server administrator role.
     */
    allowAssignGrafanaAdmin?: pulumi.Input<boolean>;
    /**
     * If not enabled, only existing Grafana users can log in using OAuth.
     */
    allowSignUp?: pulumi.Input<boolean>;
    /**
     * List of comma- or space-separated domains. The user should belong to at least one domain to log in.
     */
    allowedDomains?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated groups. The user should be a member of at least one group to log in. For Generic OAuth, if you configure allowed*groups, you must also configure groups*attribute_path.
     */
    allowedGroups?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated organizations. The user should be a member of at least one organization to log in.
     */
    allowedOrganizations?: pulumi.Input<string>;
    /**
     * The user information endpoint of your OAuth2 provider. Required for okta and genericOauth providers.
     */
    apiUrl?: pulumi.Input<string>;
    /**
     * It determines how client*id and client*secret are sent to Oauth2 provider. Possible values are AutoDetect, InParams, InHeader. Default is AutoDetect.
     */
    authStyle?: pulumi.Input<string>;
    /**
     * The authorization endpoint of your OAuth2 provider. Required for azuread, okta and genericOauth providers.
     */
    authUrl?: pulumi.Input<string>;
    /**
     * Log in automatically, skipping the login screen.
     */
    autoLogin?: pulumi.Input<boolean>;
    /**
     * The client Id of your OAuth2 app.
     */
    clientId: pulumi.Input<string>;
    /**
     * The client secret of your OAuth2 app.
     */
    clientSecret?: pulumi.Input<string>;
    /**
     * Custom fields to configure for OAuth2 such as the [force*use*graph_api](https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/azuread/#force-fetching-groups-from-microsoft-graph-api) field.
     */
    custom?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Define allowed groups.
     */
    defineAllowedGroups?: pulumi.Input<boolean>;
    /**
     * Define allowed teams ids.
     */
    defineAllowedTeamsIds?: pulumi.Input<boolean>;
    /**
     * Name of the key to use for user email lookup within the attributes map of OAuth2 ID token. Only applicable to Generic OAuth.
     */
    emailAttributeName?: pulumi.Input<string>;
    /**
     * JMESPath expression to use for user email lookup from the user information. Only applicable to Generic OAuth.
     */
    emailAttributePath?: pulumi.Input<string>;
    /**
     * If enabled, no scopes will be sent to the OAuth2 provider.
     */
    emptyScopes?: pulumi.Input<boolean>;
    /**
     * Define whether this configuration is enabled for the specified provider. Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean>;
    /**
     * JMESPath expression to use for user group lookup. If you configure allowed*groups, you must also configure groups*attribute_path.
     */
    groupsAttributePath?: pulumi.Input<string>;
    /**
     * The name of the key used to extract the ID token from the returned OAuth2 token. Only applicable to Generic OAuth.
     */
    idTokenAttributeName?: pulumi.Input<string>;
    /**
     * JMESPath expression to use for user login lookup from the user ID token. Only applicable to Generic OAuth.
     */
    loginAttributePath?: pulumi.Input<string>;
    /**
     * Helpful if you use more than one identity providers or SSO protocols.
     */
    name?: pulumi.Input<string>;
    /**
     * JMESPath expression to use for user name lookup from the user ID token. This name will be used as the user’s display name. Only applicable to Generic OAuth.
     */
    nameAttributePath?: pulumi.Input<string>;
    /**
     * JMESPath expression to use for the organization mapping lookup from the user ID token. The extracted list will be used for the organization mapping (to match "Organization" in the "orgMapping"). Only applicable to Generic OAuth and Okta.
     */
    orgAttributePath?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated Organization:OrgIdOrOrgName:Role mappings. Organization can be * meaning “All users”. Role is optional and can have the following values: None, Viewer, Editor or Admin.
     */
    orgMapping?: pulumi.Input<string>;
    /**
     * JMESPath expression to use for Grafana role lookup.
     */
    roleAttributePath?: pulumi.Input<string>;
    /**
     * If enabled, denies user login if the Grafana role cannot be extracted using Role attribute path.
     */
    roleAttributeStrict?: pulumi.Input<boolean>;
    /**
     * List of comma- or space-separated OAuth2 scopes.
     */
    scopes?: pulumi.Input<string>;
    /**
     * The URL to redirect the user to after signing out from Grafana.
     */
    signoutRedirectUrl?: pulumi.Input<string>;
    /**
     * Prevent synchronizing users’ organization roles from your IdP.
     */
    skipOrgRoleSync?: pulumi.Input<boolean>;
    /**
     * String list of Team Ids. If set, the user must be a member of one of the given teams to log in. If you configure team*ids, you must also configure teams*url and team*ids*attribute_path.
     */
    teamIds?: pulumi.Input<string>;
    /**
     * The JMESPath expression to use for Grafana Team Id lookup within the results returned by the teamsUrl endpoint. Only applicable to Generic OAuth.
     */
    teamIdsAttributePath?: pulumi.Input<string>;
    /**
     * The URL used to query for Team Ids. If not set, the default value is /teams. If you configure teams*url, you must also configure team*ids*attribute*path. Only applicable to Generic OAuth.
     */
    teamsUrl?: pulumi.Input<string>;
    /**
     * The path to the trusted certificate authority list. Is not applicable on Grafana Cloud.
     */
    tlsClientCa?: pulumi.Input<string>;
    /**
     * The path to the certificate. Is not applicable on Grafana Cloud.
     */
    tlsClientCert?: pulumi.Input<string>;
    /**
     * The path to the key. Is not applicable on Grafana Cloud.
     */
    tlsClientKey?: pulumi.Input<string>;
    /**
     * If enabled, the client accepts any certificate presented by the server and any host name in that certificate. You should only use this for testing, because this mode leaves SSL/TLS susceptible to man-in-the-middle attacks.
     */
    tlsSkipVerifyInsecure?: pulumi.Input<boolean>;
    /**
     * The token endpoint of your OAuth2 provider. Required for azuread, okta and genericOauth providers.
     */
    tokenUrl?: pulumi.Input<string>;
    /**
     * If enabled, Grafana will use Proof Key for Code Exchange (PKCE) with the OAuth2 Authorization Code Grant.
     */
    usePkce?: pulumi.Input<boolean>;
    /**
     * If enabled, Grafana will fetch a new access token using the refresh token provided by the OAuth2 provider.
     */
    useRefreshToken?: pulumi.Input<boolean>;
}
export interface SsoSettingsSamlSettings {
    /**
     * Whether SAML IdP-initiated login is allowed.
     */
    allowIdpInitiated?: pulumi.Input<boolean>;
    /**
     * Whether to allow new Grafana user creation through SAML login. If set to false, then only existing Grafana users can log in with SAML.
     */
    allowSignUp?: pulumi.Input<boolean>;
    /**
     * List of comma- or space-separated organizations. User should be a member of at least one organization to log in.
     */
    allowedOrganizations?: pulumi.Input<string>;
    /**
     * Friendly name or name of the attribute within the SAML assertion to use as the user email.
     */
    assertionAttributeEmail?: pulumi.Input<string>;
    /**
     * Friendly name or name of the attribute within the SAML assertion to use as the user groups.
     */
    assertionAttributeGroups?: pulumi.Input<string>;
    /**
     * Friendly name or name of the attribute within the SAML assertion to use as the user login handle.
     */
    assertionAttributeLogin?: pulumi.Input<string>;
    /**
     * Friendly name or name of the attribute within the SAML assertion to use as the user name. Alternatively, this can be a template with variables that match the names of attributes within the SAML assertion.
     */
    assertionAttributeName?: pulumi.Input<string>;
    /**
     * Friendly name or name of the attribute within the SAML assertion to use as the user organization.
     */
    assertionAttributeOrg?: pulumi.Input<string>;
    /**
     * Friendly name or name of the attribute within the SAML assertion to use as the user roles.
     */
    assertionAttributeRole?: pulumi.Input<string>;
    /**
     * Whether SAML auto login is enabled.
     */
    autoLogin?: pulumi.Input<boolean>;
    /**
     * Base64-encoded string for the SP X.509 certificate.
     */
    certificate?: pulumi.Input<string>;
    /**
     * Path for the SP X.509 certificate.
     */
    certificatePath?: pulumi.Input<string>;
    /**
     * The client Id of your OAuth2 app.
     */
    clientId?: pulumi.Input<string>;
    /**
     * The client secret of your OAuth2 app.
     */
    clientSecret?: pulumi.Input<string>;
    /**
     * Define whether this configuration is enabled for SAML. Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean>;
    /**
     * The entity ID is a globally unique identifier for the service provider. It is used to identify the service provider to the identity provider. Defaults to the URL of the Grafana instance if not set.
     */
    entityId?: pulumi.Input<string>;
    /**
     * If enabled, Grafana will fetch groups from Microsoft Graph API instead of using the groups claim from the ID token.
     */
    forceUseGraphApi?: pulumi.Input<boolean>;
    /**
     * Base64-encoded string for the IdP SAML metadata XML.
     */
    idpMetadata?: pulumi.Input<string>;
    /**
     * Path for the IdP SAML metadata XML.
     */
    idpMetadataPath?: pulumi.Input<string>;
    /**
     * URL for the IdP SAML metadata XML.
     */
    idpMetadataUrl?: pulumi.Input<string>;
    /**
     * Duration, since the IdP issued a response and the SP is allowed to process it. For example: 90s, 1h.
     */
    maxIssueDelay?: pulumi.Input<string>;
    /**
     * Duration, for how long the SP metadata is valid. For example: 48h, 5d.
     */
    metadataValidDuration?: pulumi.Input<string>;
    /**
     * Name used to refer to the SAML authentication.
     */
    name?: pulumi.Input<string>;
    /**
     * The Name ID Format to request within the SAML assertion. Defaults to urn:oasis:names:tc:SAML:2.0:nameid-format:transient
     */
    nameIdFormat?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated Organization:OrgId:Role mappings. Organization can be * meaning “All users”. Role is optional and can have the following values: Viewer, Editor or Admin.
     */
    orgMapping?: pulumi.Input<string>;
    /**
     * Base64-encoded string for the SP private key.
     */
    privateKey?: pulumi.Input<string>;
    /**
     * Path for the SP private key.
     */
    privateKeyPath?: pulumi.Input<string>;
    /**
     * Relay state for IdP-initiated login. Should match relay state configured in IdP.
     */
    relayState?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated roles which will be mapped into the Admin role.
     */
    roleValuesAdmin?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated roles which will be mapped into the Editor role.
     */
    roleValuesEditor?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated roles which will be mapped into the Grafana Admin (Super Admin) role.
     */
    roleValuesGrafanaAdmin?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated roles which will be mapped into the None role.
     */
    roleValuesNone?: pulumi.Input<string>;
    /**
     * List of comma- or space-separated roles which will be mapped into the Viewer role.
     */
    roleValuesViewer?: pulumi.Input<string>;
    /**
     * Signature algorithm used for signing requests to the IdP. Supported values are rsa-sha1, rsa-sha256, rsa-sha512.
     */
    signatureAlgorithm?: pulumi.Input<string>;
    /**
     * Whether SAML Single Logout is enabled.
     */
    singleLogout?: pulumi.Input<boolean>;
    /**
     * Prevent synchronizing users’ organization roles from your IdP.
     */
    skipOrgRoleSync?: pulumi.Input<boolean>;
    /**
     * The token endpoint of your OAuth2 provider. Required for Azure AD providers.
     */
    tokenUrl?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettings {
    /**
     * Settings for browser check. See https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/k6-browser/.
     */
    browser?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsBrowser>;
    /**
     * Settings for DNS check. The target must be a valid hostname (or IP address for `PTR` records).
     */
    dns?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsDns>;
    /**
     * Settings for gRPC Health check. The target must be of the form `<host>:<port>`, where the host portion must be a valid hostname or IP address.
     */
    grpc?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsGrpc>;
    /**
     * Settings for HTTP check. The target must be a URL (http or https).
     */
    http?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsHttp>;
    /**
     * Settings for MultiHTTP check. The target must be a URL (http or https)
     */
    multihttp?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttp>;
    /**
     * Settings for ping (ICMP) check. The target must be a valid hostname or IP address.
     */
    ping?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsPing>;
    /**
     * Settings for scripted check. See https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/k6/.
     */
    scripted?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsScripted>;
    /**
     * Settings for TCP check. The target must be of the form `<host>:<port>`, where the host portion must be a valid hostname or IP address.
     */
    tcp?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsTcp>;
    /**
     * Settings for traceroute check. The target must be a valid hostname or IP address
     */
    traceroute?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsTraceroute>;
}
export interface SyntheticMonitoringCheckSettingsBrowser {
    script: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsDns {
    /**
     * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
     */
    ipVersion?: pulumi.Input<string>;
    /**
     * Port to target. Defaults to `53`.
     */
    port?: pulumi.Input<number>;
    /**
     * `TCP` or `UDP`. Defaults to `UDP`.
     */
    protocol?: pulumi.Input<string>;
    /**
     * One of `ANY`, `A`, `AAAA`, `CNAME`, `MX`, `NS`, `PTR`, `SOA`, `SRV`, `TXT`. Defaults to `A`.
     */
    recordType?: pulumi.Input<string>;
    /**
     * DNS server address to target. Defaults to `8.8.8.8`.
     */
    server?: pulumi.Input<string>;
    /**
     * Source IP address.
     */
    sourceIpAddress?: pulumi.Input<string>;
    /**
     * List of valid response codes. Options include `NOERROR`, `BADALG`, `BADMODE`, `BADKEY`, `BADCOOKIE`, `BADNAME`, `BADSIG`, `BADTIME`, `BADTRUNC`, `BADVERS`, `FORMERR`, `NOTIMP`, `NOTAUTH`, `NOTZONE`, `NXDOMAIN`, `NXRRSET`, `REFUSED`, `SERVFAIL`, `YXDOMAIN`, `YXRRSET`.
     */
    validRCodes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Validate additional matches.
     */
    validateAdditionalRrs?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsDnsValidateAdditionalRr>[]>;
    /**
     * Validate response answer.
     */
    validateAnswerRrs?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsDnsValidateAnswerRrs>;
    /**
     * Validate response authority.
     */
    validateAuthorityRrs?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrs>;
}
export interface SyntheticMonitoringCheckSettingsDnsValidateAdditionalRr {
    /**
     * Fail if value matches regex.
     */
    failIfMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Fail if value does not match regex.
     */
    failIfNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface SyntheticMonitoringCheckSettingsDnsValidateAnswerRrs {
    /**
     * Fail if value matches regex.
     */
    failIfMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Fail if value does not match regex.
     */
    failIfNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrs {
    /**
     * Fail if value matches regex.
     */
    failIfMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Fail if value does not match regex.
     */
    failIfNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface SyntheticMonitoringCheckSettingsGrpc {
    /**
     * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
     */
    ipVersion?: pulumi.Input<string>;
    /**
     * gRPC service.
     */
    service?: pulumi.Input<string>;
    /**
     * Whether or not TLS is used when the connection is initiated. Defaults to `false`.
     */
    tls?: pulumi.Input<boolean>;
    /**
     * TLS config.
     */
    tlsConfig?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsGrpcTlsConfig>;
}
export interface SyntheticMonitoringCheckSettingsGrpcTlsConfig {
    /**
     * CA certificate in PEM format.
     */
    caCert?: pulumi.Input<string>;
    /**
     * Client certificate in PEM format.
     */
    clientCert?: pulumi.Input<string>;
    /**
     * Client key in PEM format.
     */
    clientKey?: pulumi.Input<string>;
    /**
     * Disable target certificate validation. Defaults to `false`.
     */
    insecureSkipVerify?: pulumi.Input<boolean>;
    /**
     * Used to verify the hostname for the targets.
     */
    serverName?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsHttp {
    /**
     * Basic auth settings.
     */
    basicAuth?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsHttpBasicAuth>;
    /**
     * Token for use with bearer authorization header.
     */
    bearerToken?: pulumi.Input<string>;
    /**
     * The body of the HTTP request used in probe.
     */
    body?: pulumi.Input<string>;
    /**
     * The name of the query parameter used to prevent the server from using a cached response. Each probe will assign a random value to this parameter each time a request is made.
     */
    cacheBustingQueryParamName?: pulumi.Input<string>;
    /**
     * Check fails if the response body is not compressed using this compression algorithm. One of `none`, `identity`, `br`, `gzip`, `deflate`.
     */
    compression?: pulumi.Input<string>;
    /**
     * List of regexes. If any match the response body, the check will fail.
     */
    failIfBodyMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * List of regexes. If any do not match the response body, the check will fail.
     */
    failIfBodyNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Check fails if headers match.
     */
    failIfHeaderMatchesRegexps?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexp>[]>;
    /**
     * Check fails if headers do not match.
     */
    failIfHeaderNotMatchesRegexps?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsHttpFailIfHeaderNotMatchesRegexp>[]>;
    /**
     * Fail if SSL is not present. Defaults to `false`.
     */
    failIfNotSsl?: pulumi.Input<boolean>;
    /**
     * Fail if SSL is present. Defaults to `false`.
     */
    failIfSsl?: pulumi.Input<boolean>;
    /**
     * The HTTP headers set for the probe.
     */
    headers?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
     */
    ipVersion?: pulumi.Input<string>;
    /**
     * Request method. One of `GET`, `CONNECT`, `DELETE`, `HEAD`, `OPTIONS`, `POST`, `PUT`, `TRACE` Defaults to `GET`.
     */
    method?: pulumi.Input<string>;
    /**
     * Do not follow redirects. Defaults to `false`.
     */
    noFollowRedirects?: pulumi.Input<boolean>;
    /**
     * The HTTP headers sent to the proxy URL
     */
    proxyConnectHeaders?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Proxy URL.
     */
    proxyUrl?: pulumi.Input<string>;
    /**
     * TLS config.
     */
    tlsConfig?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsHttpTlsConfig>;
    /**
     * List of valid HTTP versions. Options include `HTTP/1.0`, `HTTP/1.1`, `HTTP/2.0`
     */
    validHttpVersions?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Accepted status codes. If unset, defaults to 2xx.
     */
    validStatusCodes?: pulumi.Input<pulumi.Input<number>[]>;
}
export interface SyntheticMonitoringCheckSettingsHttpBasicAuth {
    /**
     * Basic auth password.
     */
    password: pulumi.Input<string>;
    /**
     * Basic auth username.
     */
    username: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexp {
    /**
     * Allow header to be missing from responses. Defaults to `false`.
     */
    allowMissing?: pulumi.Input<boolean>;
    /**
     * Header name.
     */
    header: pulumi.Input<string>;
    /**
     * Regex that header value should match.
     */
    regexp: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsHttpFailIfHeaderNotMatchesRegexp {
    /**
     * Allow header to be missing from responses. Defaults to `false`.
     */
    allowMissing?: pulumi.Input<boolean>;
    /**
     * Header name.
     */
    header: pulumi.Input<string>;
    /**
     * Regex that header value should match.
     */
    regexp: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsHttpTlsConfig {
    /**
     * CA certificate in PEM format.
     */
    caCert?: pulumi.Input<string>;
    /**
     * Client certificate in PEM format.
     */
    clientCert?: pulumi.Input<string>;
    /**
     * Client key in PEM format.
     */
    clientKey?: pulumi.Input<string>;
    /**
     * Disable target certificate validation. Defaults to `false`.
     */
    insecureSkipVerify?: pulumi.Input<boolean>;
    /**
     * Used to verify the hostname for the targets.
     */
    serverName?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsMultihttp {
    entries?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntry>[]>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntry {
    /**
     * Assertions to make on the request response
     */
    assertions?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntryAssertion>[]>;
    /**
     * An individual MultiHTTP request
     */
    request?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntryRequest>;
    /**
     * Variables to extract from the request response
     */
    variables?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntryVariable>[]>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntryAssertion {
    /**
     * The condition of the assertion: NOT*CONTAINS, EQUALS, STARTS*WITH, ENDS*WITH, TYPE*OF, CONTAINS
     */
    condition?: pulumi.Input<string>;
    /**
     * The expression of the assertion. Should start with $.
     */
    expression?: pulumi.Input<string>;
    /**
     * The subject of the assertion: RESPONSE*HEADERS, HTTP*STATUS*CODE, RESPONSE*BODY
     */
    subject?: pulumi.Input<string>;
    /**
     * The type of assertion to make: TEXT, JSON*PATH*VALUE, JSON*PATH*ASSERTION, REGEX_ASSERTION
     */
    type: pulumi.Input<string>;
    /**
     * The value of the assertion
     */
    value?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntryRequest {
    /**
     * The body of the HTTP request used in probe.
     */
    bodies?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntryRequestBody>[]>;
    /**
     * The headers to send with the request
     */
    headers?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntryRequestHeader>[]>;
    /**
     * The HTTP method to use
     */
    method: pulumi.Input<string>;
    /**
     * Query fields to send with the request
     */
    queryFields?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsMultihttpEntryRequestQueryField>[]>;
    /**
     * The URL for the request
     */
    url: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntryRequestBody {
    /**
     * The content encoding of the body
     */
    contentEncoding?: pulumi.Input<string>;
    /**
     * The content type of the body
     */
    contentType?: pulumi.Input<string>;
    /**
     * The body payload
     */
    payload?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntryRequestHeader {
    /**
     * Name of the header to send
     */
    name: pulumi.Input<string>;
    /**
     * Value of the header to send
     */
    value: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntryRequestQueryField {
    /**
     * Name of the query field to send
     */
    name: pulumi.Input<string>;
    /**
     * Value of the query field to send
     */
    value: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsMultihttpEntryVariable {
    /**
     * The attribute to use when finding the variable value. Only used when type is CSS_SELECTOR
     */
    attribute?: pulumi.Input<string>;
    /**
     * The expression to when finding the variable. Should start with $. Only use when type is JSON_PATH or REGEX
     */
    expression?: pulumi.Input<string>;
    /**
     * The name of the variable to extract
     */
    name?: pulumi.Input<string>;
    /**
     * The method of finding the variable value to extract. JSON*PATH, REGEX, CSS*SELECTOR
     */
    type: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsPing {
    /**
     * Set the DF-bit in the IP-header. Only works with ipV4. Defaults to `false`.
     */
    dontFragment?: pulumi.Input<boolean>;
    /**
     * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
     */
    ipVersion?: pulumi.Input<string>;
    /**
     * Payload size. Defaults to `0`.
     */
    payloadSize?: pulumi.Input<number>;
    /**
     * Source IP address.
     */
    sourceIpAddress?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsScripted {
    script: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsTcp {
    /**
     * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
     */
    ipVersion?: pulumi.Input<string>;
    /**
     * The query sent in the TCP probe and the expected associated response.
     */
    queryResponses?: pulumi.Input<pulumi.Input<inputs.SyntheticMonitoringCheckSettingsTcpQueryResponse>[]>;
    /**
     * Source IP address.
     */
    sourceIpAddress?: pulumi.Input<string>;
    /**
     * Whether or not TLS is used when the connection is initiated. Defaults to `false`.
     */
    tls?: pulumi.Input<boolean>;
    /**
     * TLS config.
     */
    tlsConfig?: pulumi.Input<inputs.SyntheticMonitoringCheckSettingsTcpTlsConfig>;
}
export interface SyntheticMonitoringCheckSettingsTcpQueryResponse {
    /**
     * Response to expect.
     */
    expect: pulumi.Input<string>;
    /**
     * Data to send.
     */
    send: pulumi.Input<string>;
    /**
     * Upgrade TCP connection to TLS. Defaults to `false`.
     */
    startTls?: pulumi.Input<boolean>;
}
export interface SyntheticMonitoringCheckSettingsTcpTlsConfig {
    /**
     * CA certificate in PEM format.
     */
    caCert?: pulumi.Input<string>;
    /**
     * Client certificate in PEM format.
     */
    clientCert?: pulumi.Input<string>;
    /**
     * Client key in PEM format.
     */
    clientKey?: pulumi.Input<string>;
    /**
     * Disable target certificate validation. Defaults to `false`.
     */
    insecureSkipVerify?: pulumi.Input<boolean>;
    /**
     * Used to verify the hostname for the targets.
     */
    serverName?: pulumi.Input<string>;
}
export interface SyntheticMonitoringCheckSettingsTraceroute {
    /**
     * Maximum TTL for the trace Defaults to `64`.
     */
    maxHops?: pulumi.Input<number>;
    /**
     * Maximum number of hosts to travers that give no response Defaults to `15`.
     */
    maxUnknownHops?: pulumi.Input<number>;
    /**
     * Reverse lookup hostnames from IP addresses Defaults to `true`.
     */
    ptrLookup?: pulumi.Input<boolean>;
}
export interface TeamPreferences {
    /**
     * The UID of the dashboard to display when a team member logs in.
     */
    homeDashboardUid?: pulumi.Input<string>;
    /**
     * The default theme for this team. Available themes are `light`, `dark`, `system`, or an empty string for the default theme.
     */
    theme?: pulumi.Input<string>;
    /**
     * The default timezone for this team. Available values are `utc`, `browser`, or an empty string for the default.
     */
    timezone?: pulumi.Input<string>;
    /**
     * The default week start day for this team. Available values are `sunday`, `monday`, `saturday`, or an empty string for the default.
     */
    weekStart?: pulumi.Input<string>;
}
export interface TeamTeamSync {
    groups?: pulumi.Input<pulumi.Input<string>[]>;
}
export declare namespace alerting {
    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 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.
         */
        assumeRoleArn?: pulumi.Input<string>;
        /**
         * The authentication provider to use. Valid values are `default`, `arn` and `keys`. Default is `default`. Defaults to `default`.
         */
        authProvider?: pulumi.Input<string>;
        body?: pulumi.Input<string>;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: pulumi.Input<boolean>;
        /**
         * The external ID to use when assuming the role.
         */
        externalId?: pulumi.Input<string>;
        /**
         * The format of the message to send. Valid values are `text`, `body` and `json`. Default is `text`. Defaults to `text`.
         */
        messageFormat?: pulumi.Input<string>;
        /**
         * AWS secret access key used to authenticate with Amazon SNS.
         */
        secretKey?: pulumi.Input<string>;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        subject?: pulumi.Input<string>;
        /**
         * The Amazon SNS topic to send notifications to.
         */
        topic: pulumi.Input<string>;
        /**
         * The UID of the contact point.
         */
        uid?: pulumi.Input<string>;
    }
    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>;
    }
    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>;
        /**
         * The ID of the message thread to send the message to.
         */
        messageThreadId?: 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>;
    }
    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>;
    }
    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>;
    }
    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>;
    }
    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>;
    }
    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>;
    }
    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>[]>;
        /**
         * Provides the time zone for the time interval. Must be a location in the IANA time zone database, e.g "America/New_York"
         */
        location?: 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.alerting.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>[]>;
    }
    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>;
    }
    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.alerting.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.alerting.NotificationPolicyPolicyPolicy>[]>;
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: pulumi.Input<string>;
    }
    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>;
    }
    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.alerting.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.alerting.NotificationPolicyPolicyPolicyPolicy>[]>;
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: pulumi.Input<string>;
    }
    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>;
    }
    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.alerting.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.alerting.NotificationPolicyPolicyPolicyPolicyPolicy>[]>;
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: pulumi.Input<string>;
    }
    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>;
    }
    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.alerting.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>;
    }
    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>;
    }
    interface RuleGroupRule {
        /**
         * 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. The `dashboardUId` and `panelId` annotations, which link alerts to a panel, must be set together. 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.alerting.RuleGroupRuleData>[]>;
        /**
         * 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.  Defaults to Alerting if not set.
         */
        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, KeepLast, and Alerting. Defaults to NoData if not set.
         */
        noDataState?: pulumi.Input<string>;
        /**
         * Notification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled.
         */
        notificationSettings?: pulumi.Input<inputs.alerting.RuleGroupRuleNotificationSettings>;
        /**
         * Settings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled.
         */
        record?: pulumi.Input<inputs.alerting.RuleGroupRuleRecord>;
        /**
         * The unique identifier of the alert rule.
         */
        uid?: pulumi.Input<string>;
    }
    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.alerting.RuleGroupRuleDataRelativeTimeRange>;
    }
    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>;
    }
    interface RuleGroupRuleNotificationSettings {
        /**
         * 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. Use the special label `...` to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.
         */
        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>;
        /**
         * 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>;
    }
    interface RuleGroupRuleRecord {
        /**
         * The ref id of the query node in the data field to use as the source of the metric.
         */
        from: pulumi.Input<string>;
        /**
         * The name of the metric to write to.
         */
        metric: pulumi.Input<string>;
    }
}
export declare namespace cloud {
    interface AccessPolicyCondition {
        /**
         * Conditions that apply to the access policy,such as IP Allow lists.
         */
        allowedSubnets: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface AccessPolicyRealm {
        /**
         * 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.cloud.AccessPolicyRealmLabelPolicy>[]>;
        /**
         * Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
         */
        type: pulumi.Input<string>;
    }
    interface AccessPolicyRealmLabelPolicy {
        /**
         * The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
         */
        selector: pulumi.Input<string>;
    }
    interface GetProviderAwsCloudwatchScrapeJobCustomNamespace {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name?: string;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: number;
    }
    interface GetProviderAwsCloudwatchScrapeJobCustomNamespaceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs>[]>;
        /**
         * The name of the custom namespace to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
    }
    interface GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetProviderAwsCloudwatchScrapeJobService {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobServiceMetric[];
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: string;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter[];
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: number;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: string[];
    }
    interface GetProviderAwsCloudwatchScrapeJobServiceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobServiceMetricArgs>[]>;
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: pulumi.Input<string>;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs>[]>;
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetProviderAwsCloudwatchScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetProviderAwsCloudwatchScrapeJobServiceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key?: string;
        /**
         * The value of the tag filter.
         */
        value?: string;
    }
    interface GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs {
        /**
         * The key of the tag filter.
         */
        key?: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value?: pulumi.Input<string>;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJob {
        /**
         * The ID assigned by the Grafana Cloud Provider API to an AWS Account resource that should be associated with this CloudWatch Scrape Job. This can be provided by the `resourceId` attribute of the `grafana.cloudProvider.AwsAccount` resource.
         */
        awsAccountResourceId?: string;
        /**
         * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        customNamespaces?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespace[];
        /**
         * When the CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
         */
        disabledReason?: string;
        /**
         * Whether the CloudWatch Scrape Job is enabled or not.
         */
        enabled?: boolean;
        /**
         * When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
         */
        exportTags?: boolean;
        id?: string;
        name?: string;
        /**
         * The set of AWS region names that this CloudWatch Scrape Job is configured to scrape.
         */
        regions?: string[];
        /**
         * When true, the `regions` attribute will be the set of regions configured in the override. When false, the `regions` attribute will be the set of regions belonging to the AWS Account resource that is associated with this CloudWatch Scrape Job.
         */
        regionsSubsetOverrideUsed?: boolean;
        /**
         * The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this CloudWatch Scrape Job.
         */
        roleArn?: string;
        /**
         * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        services?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobService[];
        stackId?: string;
        /**
         * A set of static labels to add to all metrics exported by this scrape job.
         */
        staticLabels?: {
            [key: string]: string;
        };
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobArgs {
        /**
         * The ID assigned by the Grafana Cloud Provider API to an AWS Account resource that should be associated with this CloudWatch Scrape Job. This can be provided by the `resourceId` attribute of the `grafana.cloudProvider.AwsAccount` resource.
         */
        awsAccountResourceId?: pulumi.Input<string>;
        /**
         * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        customNamespaces?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs>[]>;
        /**
         * When the CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
         */
        disabledReason?: pulumi.Input<string>;
        /**
         * Whether the CloudWatch Scrape Job is enabled or not.
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
         */
        exportTags?: pulumi.Input<boolean>;
        id?: pulumi.Input<string>;
        name?: pulumi.Input<string>;
        /**
         * The set of AWS region names that this CloudWatch Scrape Job is configured to scrape.
         */
        regions?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * When true, the `regions` attribute will be the set of regions configured in the override. When false, the `regions` attribute will be the set of regions belonging to the AWS Account resource that is associated with this CloudWatch Scrape Job.
         */
        regionsSubsetOverrideUsed?: pulumi.Input<boolean>;
        /**
         * The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this CloudWatch Scrape Job.
         */
        roleArn?: pulumi.Input<string>;
        /**
         * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        services?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs>[]>;
        stackId?: pulumi.Input<string>;
        /**
         * A set of static labels to add to all metrics exported by this scrape job.
         */
        staticLabels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespace {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name?: string;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: number;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs>[]>;
        /**
         * The name of the custom namespace to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobService {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetric[];
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: string;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilter[];
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: number;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: string[];
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs>[]>;
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: pulumi.Input<string>;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs>[]>;
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key?: string;
        /**
         * The value of the tag filter.
         */
        value?: string;
    }
    interface GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs {
        /**
         * The key of the tag filter.
         */
        key?: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value?: pulumi.Input<string>;
    }
    interface GetProviderAzureCredentialAutoDiscoveryConfiguration {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations?: inputs.cloud.GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration[];
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId?: string;
    }
    interface GetProviderAzureCredentialAutoDiscoveryConfigurationArgs {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations?: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs>[]>;
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId?: pulumi.Input<string>;
    }
    interface GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration {
        metricConfigurations: inputs.cloud.GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration[];
        resourceTypeName: string;
    }
    interface GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs {
        metricConfigurations: pulumi.Input<pulumi.Input<inputs.cloud.GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs>[]>;
        resourceTypeName: pulumi.Input<string>;
    }
    interface GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration {
        aggregations: string[];
        dimensions: string[];
        name: string;
    }
    interface GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs {
        aggregations: pulumi.Input<pulumi.Input<string>[]>;
        dimensions: pulumi.Input<pulumi.Input<string>[]>;
        name: pulumi.Input<string>;
    }
    interface GetProviderAzureCredentialResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key?: string;
        /**
         * The value of the tag filter.
         */
        value?: string;
    }
    interface GetProviderAzureCredentialResourceDiscoveryTagFilterArgs {
        /**
         * The key of the tag filter.
         */
        key?: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value?: pulumi.Input<string>;
    }
    interface ProviderAwsCloudwatchScrapeJobCustomNamespace {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloud.ProviderAwsCloudwatchScrapeJobCustomNamespaceMetric>[]>;
        /**
         * The name of the custom namespace to scrape.
         */
        name: pulumi.Input<string>;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
    }
    interface ProviderAwsCloudwatchScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface ProviderAwsCloudwatchScrapeJobService {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Please note that AWS metric names must be supplied, and not their PromQL counterparts. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloud.ProviderAwsCloudwatchScrapeJobServiceMetric>[]>;
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services.
         */
        name: pulumi.Input<string>;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: pulumi.Input<pulumi.Input<inputs.cloud.ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter>[]>;
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface ProviderAwsCloudwatchScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value: pulumi.Input<string>;
    }
    interface ProviderAzureCredentialAutoDiscoveryConfiguration {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations: pulumi.Input<pulumi.Input<inputs.cloud.ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration>[]>;
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId: pulumi.Input<string>;
    }
    interface ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration {
        metricConfigurations: pulumi.Input<pulumi.Input<inputs.cloud.ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration>[]>;
        resourceTypeName: pulumi.Input<string>;
    }
    interface ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration {
        aggregations: pulumi.Input<pulumi.Input<string>[]>;
        dimensions: pulumi.Input<pulumi.Input<string>[]>;
        name: pulumi.Input<string>;
    }
    interface ProviderAzureCredentialResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value: pulumi.Input<string>;
    }
}
export declare namespace cloudProvider {
    interface AwsCloudwatchScrapeJobCustomNamespace {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloudProvider.AwsCloudwatchScrapeJobCustomNamespaceMetric>[]>;
        /**
         * The name of the custom namespace to scrape.
         */
        name: pulumi.Input<string>;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
    }
    interface AwsCloudwatchScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface AwsCloudwatchScrapeJobService {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Please note that AWS metric names must be supplied, and not their PromQL counterparts. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloudProvider.AwsCloudwatchScrapeJobServiceMetric>[]>;
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services.
         */
        name: pulumi.Input<string>;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: pulumi.Input<pulumi.Input<inputs.cloudProvider.AwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter>[]>;
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface AwsCloudwatchScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface AwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value: pulumi.Input<string>;
    }
    interface AzureCredentialAutoDiscoveryConfiguration {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations: pulumi.Input<pulumi.Input<inputs.cloudProvider.AzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration>[]>;
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId: pulumi.Input<string>;
    }
    interface AzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration {
        metricConfigurations: pulumi.Input<pulumi.Input<inputs.cloudProvider.AzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration>[]>;
        resourceTypeName: pulumi.Input<string>;
    }
    interface AzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration {
        aggregations: pulumi.Input<pulumi.Input<string>[]>;
        dimensions: pulumi.Input<pulumi.Input<string>[]>;
        name: pulumi.Input<string>;
    }
    interface AzureCredentialResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value: pulumi.Input<string>;
    }
    interface GetAwsCloudwatchScrapeJobCustomNamespace {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name?: string;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: number;
    }
    interface GetAwsCloudwatchScrapeJobCustomNamespaceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobCustomNamespaceMetricArgs>[]>;
        /**
         * The name of the custom namespace to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
    }
    interface GetAwsCloudwatchScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetAwsCloudwatchScrapeJobCustomNamespaceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetAwsCloudwatchScrapeJobService {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobServiceMetric[];
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: string;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter[];
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: number;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: string[];
    }
    interface GetAwsCloudwatchScrapeJobServiceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobServiceMetricArgs>[]>;
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: pulumi.Input<string>;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs>[]>;
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetAwsCloudwatchScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetAwsCloudwatchScrapeJobServiceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key?: string;
        /**
         * The value of the tag filter.
         */
        value?: string;
    }
    interface GetAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs {
        /**
         * The key of the tag filter.
         */
        key?: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value?: pulumi.Input<string>;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJob {
        /**
         * The ID assigned by the Grafana Cloud Provider API to an AWS Account resource that should be associated with this CloudWatch Scrape Job. This can be provided by the `resourceId` attribute of the `grafana.cloudProvider.AwsAccount` resource.
         */
        awsAccountResourceId?: string;
        /**
         * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        customNamespaces?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespace[];
        /**
         * When the CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
         */
        disabledReason?: string;
        /**
         * Whether the CloudWatch Scrape Job is enabled or not.
         */
        enabled?: boolean;
        /**
         * When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
         */
        exportTags?: boolean;
        id?: string;
        name?: string;
        /**
         * The set of AWS region names that this CloudWatch Scrape Job is configured to scrape.
         */
        regions?: string[];
        /**
         * When true, the `regions` attribute will be the set of regions configured in the override. When false, the `regions` attribute will be the set of regions belonging to the AWS Account resource that is associated with this CloudWatch Scrape Job.
         */
        regionsSubsetOverrideUsed?: boolean;
        /**
         * The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this CloudWatch Scrape Job.
         */
        roleArn?: string;
        /**
         * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        services?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobService[];
        stackId?: string;
        /**
         * A set of static labels to add to all metrics exported by this scrape job.
         */
        staticLabels?: {
            [key: string]: string;
        };
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobArgs {
        /**
         * The ID assigned by the Grafana Cloud Provider API to an AWS Account resource that should be associated with this CloudWatch Scrape Job. This can be provided by the `resourceId` attribute of the `grafana.cloudProvider.AwsAccount` resource.
         */
        awsAccountResourceId?: pulumi.Input<string>;
        /**
         * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        customNamespaces?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs>[]>;
        /**
         * When the CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
         */
        disabledReason?: pulumi.Input<string>;
        /**
         * Whether the CloudWatch Scrape Job is enabled or not.
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
         */
        exportTags?: pulumi.Input<boolean>;
        id?: pulumi.Input<string>;
        name?: pulumi.Input<string>;
        /**
         * The set of AWS region names that this CloudWatch Scrape Job is configured to scrape.
         */
        regions?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * When true, the `regions` attribute will be the set of regions configured in the override. When false, the `regions` attribute will be the set of regions belonging to the AWS Account resource that is associated with this CloudWatch Scrape Job.
         */
        regionsSubsetOverrideUsed?: pulumi.Input<boolean>;
        /**
         * The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this CloudWatch Scrape Job.
         */
        roleArn?: pulumi.Input<string>;
        /**
         * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects.
         */
        services?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobServiceArgs>[]>;
        stackId?: pulumi.Input<string>;
        /**
         * A set of static labels to add to all metrics exported by this scrape job.
         */
        staticLabels?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespace {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name?: string;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: number;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs>[]>;
        /**
         * The name of the custom namespace to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobService {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobServiceMetric[];
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: string;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilter[];
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: number;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: string[];
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobServiceArgs {
        /**
         * One or more configuration blocks to configure metrics and their statistics to scrape. Each block must represent a distinct metric name. When accessing this as an attribute reference, it is a list of objects.
         */
        metrics?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs>[]>;
        /**
         * The name of the service to scrape. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported services, metrics, and their statistics.
         */
        name?: pulumi.Input<string>;
        /**
         * One or more configuration blocks to configure tag filters applied to discovery of resource entities in the associated AWS account. When accessing this as an attribute reference, it is a list of objects.
         */
        resourceDiscoveryTagFilters?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs>[]>;
        /**
         * The interval in seconds to scrape the service. See https://grafana.com/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/aws/cloudwatch-metrics/services/ for supported scrape intervals.
         */
        scrapeIntervalSeconds?: pulumi.Input<number>;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name?: string;
        /**
         * A set of statistics to scrape.
         */
        statistics?: string[];
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs {
        /**
         * The name of the metric to scrape.
         */
        name?: pulumi.Input<string>;
        /**
         * A set of statistics to scrape.
         */
        statistics?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key?: string;
        /**
         * The value of the tag filter.
         */
        value?: string;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs {
        /**
         * The key of the tag filter.
         */
        key?: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value?: pulumi.Input<string>;
    }
    interface GetAzureCredentialAutoDiscoveryConfiguration {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations?: inputs.cloudProvider.GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration[];
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId?: string;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationArgs {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs>[]>;
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId?: pulumi.Input<string>;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration {
        metricConfigurations: inputs.cloudProvider.GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration[];
        resourceTypeName: string;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs {
        metricConfigurations: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs>[]>;
        resourceTypeName: pulumi.Input<string>;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration {
        aggregations: string[];
        dimensions: string[];
        name: string;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs {
        aggregations: pulumi.Input<pulumi.Input<string>[]>;
        dimensions: pulumi.Input<pulumi.Input<string>[]>;
        name: pulumi.Input<string>;
    }
    interface GetAzureCredentialResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key?: string;
        /**
         * The value of the tag filter.
         */
        value?: string;
    }
    interface GetAzureCredentialResourceDiscoveryTagFilterArgs {
        /**
         * The key of the tag filter.
         */
        key?: pulumi.Input<string>;
        /**
         * The value of the tag filter.
         */
        value?: pulumi.Input<string>;
    }
}
export declare namespace enterprise {
    interface DataSourcePermissionPermission {
        /**
         * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
         */
        builtInRole?: pulumi.Input<string>;
        /**
         * Permission to associate with item. Options: `Query`, `Edit` or `Admin` (`Admin` can only be used with Grafana v10.3.0+).
         */
        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>;
    }
    interface ReportDashboard {
        /**
         * Add report variables to the dashboard. Values should be separated by commas.
         */
        reportVariables?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        /**
         * Time range of the report.
         */
        timeRange?: pulumi.Input<inputs.enterprise.ReportDashboardTimeRange>;
        /**
         * Dashboard uid.
         */
        uid: pulumi.Input<string>;
    }
    interface ReportDashboardTimeRange {
        /**
         * Start of the time range.
         */
        from?: pulumi.Input<string>;
        /**
         * End of the time range.
         */
        to?: pulumi.Input<string>;
    }
    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. Use 2006-01-02T15:04:05 format if you want to set a custom timezone
         */
        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. Use 2006-01-02T15:04:05 format if you want to set a custom timezone
         */
        startTime?: pulumi.Input<string>;
        /**
         * Set the report time zone. Defaults to `GMT`.
         */
        timezone?: pulumi.Input<string>;
        /**
         * Whether to send the report only on work days. Defaults to `false`.
         */
        workdaysOnly?: pulumi.Input<boolean>;
    }
    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 declare namespace machineLearning {
    interface HolidayCustomPeriod {
        endTime: pulumi.Input<string>;
        /**
         * The name of the custom period.
         */
        name?: pulumi.Input<string>;
        startTime: pulumi.Input<string>;
    }
    interface OutlierDetectorAlgorithm {
        /**
         * For DBSCAN only, specify the configuration map
         */
        config?: pulumi.Input<inputs.machineLearning.OutlierDetectorAlgorithmConfig>;
        /**
         * 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>;
    }
    interface OutlierDetectorAlgorithmConfig {
        /**
         * Specify the epsilon parameter (positive float)
         */
        epsilon: pulumi.Input<number>;
    }
}
export declare namespace onCall {
    interface IntegrationDefaultRoute {
        /**
         * The ID of the escalation chain.
         */
        escalationChainId?: pulumi.Input<string>;
        id?: pulumi.Input<string>;
        /**
         * MS teams-specific settings for a route.
         */
        msteams?: pulumi.Input<inputs.onCall.IntegrationDefaultRouteMsteams>;
        /**
         * Slack-specific settings for a route.
         */
        slack?: pulumi.Input<inputs.onCall.IntegrationDefaultRouteSlack>;
        /**
         * Telegram-specific settings for a route.
         */
        telegram?: pulumi.Input<inputs.onCall.IntegrationDefaultRouteTelegram>;
    }
    interface IntegrationDefaultRouteMsteams {
        /**
         * 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>;
    }
    interface IntegrationDefaultRouteSlack {
        /**
         * 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>;
    }
    interface IntegrationDefaultRouteTelegram {
        /**
         * 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>;
    }
    interface IntegrationTemplates {
        /**
         * Template for sending a signal to acknowledge the Incident.
         */
        acknowledgeSignal?: pulumi.Input<string>;
        /**
         * Templates for Email.
         */
        email?: pulumi.Input<inputs.onCall.IntegrationTemplatesEmail>;
        /**
         * Template for the key by which alerts are grouped.
         */
        groupingKey?: pulumi.Input<string>;
        /**
         * Templates for Microsoft Teams. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
         */
        microsoftTeams?: pulumi.Input<inputs.onCall.IntegrationTemplatesMicrosoftTeams>;
        /**
         * Templates for Mobile app push notifications.
         */
        mobileApp?: pulumi.Input<inputs.onCall.IntegrationTemplatesMobileApp>;
        /**
         * Templates for Phone Call.
         */
        phoneCall?: pulumi.Input<inputs.onCall.IntegrationTemplatesPhoneCall>;
        /**
         * Template for sending a signal to resolve the Incident.
         */
        resolveSignal?: pulumi.Input<string>;
        /**
         * Templates for Slack.
         */
        slack?: pulumi.Input<inputs.onCall.IntegrationTemplatesSlack>;
        /**
         * Templates for SMS.
         */
        sms?: pulumi.Input<inputs.onCall.IntegrationTemplatesSms>;
        /**
         * Template for a source link.
         */
        sourceLink?: pulumi.Input<string>;
        /**
         * Templates for Telegram.
         */
        telegram?: pulumi.Input<inputs.onCall.IntegrationTemplatesTelegram>;
        /**
         * Templates for Web.
         */
        web?: pulumi.Input<inputs.onCall.IntegrationTemplatesWeb>;
    }
    interface IntegrationTemplatesEmail {
        /**
         * Template for Alert message.
         */
        message?: pulumi.Input<string>;
        /**
         * Template for Alert title.
         */
        title?: pulumi.Input<string>;
    }
    interface IntegrationTemplatesMicrosoftTeams {
        /**
         * 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>;
    }
    interface IntegrationTemplatesMobileApp {
        /**
         * Template for Alert message.
         */
        message?: pulumi.Input<string>;
        /**
         * Template for Alert title.
         */
        title?: pulumi.Input<string>;
    }
    interface IntegrationTemplatesPhoneCall {
        /**
         * Template for Alert title.
         */
        title?: pulumi.Input<string>;
    }
    interface IntegrationTemplatesSlack {
        /**
         * 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>;
    }
    interface IntegrationTemplatesSms {
        /**
         * Template for Alert title.
         */
        title?: pulumi.Input<string>;
    }
    interface IntegrationTemplatesTelegram {
        /**
         * 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>;
    }
    interface IntegrationTemplatesWeb {
        /**
         * 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>;
    }
    interface RouteMsteams {
        /**
         * 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>;
    }
    interface RouteSlack {
        /**
         * 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>;
    }
    interface RouteTelegram {
        /**
         * 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>;
    }
    interface ScheduleSlack {
        /**
         * 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 declare namespace oss {
    interface DashboardPermissionPermission {
        /**
         * Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
         */
        permission: pulumi.Input<string>;
        /**
         * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
         */
        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>;
    }
    interface FolderPermissionPermission {
        /**
         * Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
         */
        permission: pulumi.Input<string>;
        /**
         * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
         */
        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>;
    }
    interface PlaylistItem {
        id?: pulumi.Input<string>;
        order: pulumi.Input<number>;
        title: pulumi.Input<string>;
        type?: pulumi.Input<string>;
        value?: pulumi.Input<string>;
    }
    interface ServiceAccountPermissionPermission {
        /**
         * Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
         */
        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>;
    }
    interface SsoSettingsLdapSettings {
        /**
         * Whether to allow new Grafana user creation through LDAP login. If set to false, then only existing Grafana users can log in with LDAP.
         */
        allowSignUp?: pulumi.Input<boolean>;
        /**
         * The LDAP configuration.
         */
        config: pulumi.Input<inputs.oss.SsoSettingsLdapSettingsConfig>;
        /**
         * Define whether this configuration is enabled for LDAP. Defaults to `true`.
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * Prevent synchronizing users’ organization roles from LDAP.
         */
        skipOrgRoleSync?: pulumi.Input<boolean>;
    }
    interface SsoSettingsLdapSettingsConfig {
        /**
         * The LDAP servers configuration.
         */
        servers: pulumi.Input<pulumi.Input<inputs.oss.SsoSettingsLdapSettingsConfigServer>[]>;
    }
    interface SsoSettingsLdapSettingsConfigServer {
        /**
         * The LDAP server attributes. The following attributes can be configured: email, member_of, name, surname, username.
         */
        attributes?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        /**
         * The search user bind DN.
         */
        bindDn?: pulumi.Input<string>;
        /**
         * The search user bind password.
         */
        bindPassword?: pulumi.Input<string>;
        /**
         * The path to the client certificate.
         */
        clientCert?: pulumi.Input<string>;
        /**
         * The Base64 encoded value of the client certificate.
         */
        clientCertValue?: pulumi.Input<string>;
        /**
         * The path to the client private key.
         */
        clientKey?: pulumi.Input<string>;
        /**
         * The Base64 encoded value of the client private key.
         */
        clientKeyValue?: pulumi.Input<string>;
        /**
         * For mapping an LDAP group to a Grafana organization and role.
         */
        groupMappings?: pulumi.Input<pulumi.Input<inputs.oss.SsoSettingsLdapSettingsConfigServerGroupMapping>[]>;
        /**
         * An array of the base DNs to search through for groups. Typically uses ou=groups.
         */
        groupSearchBaseDns?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Group search filter, to retrieve the groups of which the user is a member (only set if memberOf attribute is not available).
         */
        groupSearchFilter?: pulumi.Input<string>;
        /**
         * The %s in the search filter will be replaced with the attribute defined in this field.
         */
        groupSearchFilterUserAttribute?: pulumi.Input<string>;
        /**
         * The LDAP server host.
         */
        host: pulumi.Input<string>;
        /**
         * Minimum TLS version allowed. Accepted values are: TLS1.2, TLS1.3.
         */
        minTlsVersion?: pulumi.Input<string>;
        /**
         * The LDAP server port.
         */
        port?: pulumi.Input<number>;
        /**
         * The path to the root CA certificate.
         */
        rootCaCert?: pulumi.Input<string>;
        /**
         * The Base64 encoded values of the root CA certificates.
         */
        rootCaCertValues?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * An array of base DNs to search through.
         */
        searchBaseDns: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * The user search filter, for example "(cn=%s)" or "(sAMAccountName=%s)" or "(uid=%s)".
         */
        searchFilter: pulumi.Input<string>;
        /**
         * If set to true, the SSL cert validation will be skipped.
         */
        sslSkipVerify?: pulumi.Input<boolean>;
        /**
         * If set to true, use LDAP with STARTTLS instead of LDAPS.
         */
        startTls?: pulumi.Input<boolean>;
        /**
         * The timeout in seconds for connecting to the LDAP host.
         */
        timeout?: pulumi.Input<number>;
        /**
         * Accepted TLS ciphers. For a complete list of supported ciphers, refer to: https://go.dev/src/crypto/tls/cipher_suites.go.
         */
        tlsCiphers?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Set to true if LDAP server should use an encrypted TLS connection (either with STARTTLS or LDAPS).
         */
        useSsl?: pulumi.Input<boolean>;
    }
    interface SsoSettingsLdapSettingsConfigServerGroupMapping {
        /**
         * If set to true, it makes the user of groupDn Grafana server admin.
         */
        grafanaAdmin?: pulumi.Input<boolean>;
        /**
         * LDAP distinguished name (DN) of LDAP group. If you want to match all (or no LDAP groups) then you can use wildcard ("*").
         */
        groupDn: pulumi.Input<string>;
        /**
         * The Grafana organization database id.
         */
        orgId?: pulumi.Input<number>;
        /**
         * Assign users of groupDn the organization role Admin, Editor, or Viewer.
         */
        orgRole: pulumi.Input<string>;
    }
    interface SsoSettingsOauth2Settings {
        /**
         * If enabled, it will automatically sync the Grafana server administrator role.
         */
        allowAssignGrafanaAdmin?: pulumi.Input<boolean>;
        /**
         * If not enabled, only existing Grafana users can log in using OAuth.
         */
        allowSignUp?: pulumi.Input<boolean>;
        /**
         * List of comma- or space-separated domains. The user should belong to at least one domain to log in.
         */
        allowedDomains?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated groups. The user should be a member of at least one group to log in. For Generic OAuth, if you configure allowed*groups, you must also configure groups*attribute_path.
         */
        allowedGroups?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated organizations. The user should be a member of at least one organization to log in.
         */
        allowedOrganizations?: pulumi.Input<string>;
        /**
         * The user information endpoint of your OAuth2 provider. Required for okta and genericOauth providers.
         */
        apiUrl?: pulumi.Input<string>;
        /**
         * It determines how client*id and client*secret are sent to Oauth2 provider. Possible values are AutoDetect, InParams, InHeader. Default is AutoDetect.
         */
        authStyle?: pulumi.Input<string>;
        /**
         * The authorization endpoint of your OAuth2 provider. Required for azuread, okta and genericOauth providers.
         */
        authUrl?: pulumi.Input<string>;
        /**
         * Log in automatically, skipping the login screen.
         */
        autoLogin?: pulumi.Input<boolean>;
        /**
         * The client Id of your OAuth2 app.
         */
        clientId: pulumi.Input<string>;
        /**
         * The client secret of your OAuth2 app.
         */
        clientSecret?: pulumi.Input<string>;
        /**
         * Custom fields to configure for OAuth2 such as the [force*use*graph_api](https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/azuread/#force-fetching-groups-from-microsoft-graph-api) field.
         */
        custom?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        /**
         * Define allowed groups.
         */
        defineAllowedGroups?: pulumi.Input<boolean>;
        /**
         * Define allowed teams ids.
         */
        defineAllowedTeamsIds?: pulumi.Input<boolean>;
        /**
         * Name of the key to use for user email lookup within the attributes map of OAuth2 ID token. Only applicable to Generic OAuth.
         */
        emailAttributeName?: pulumi.Input<string>;
        /**
         * JMESPath expression to use for user email lookup from the user information. Only applicable to Generic OAuth.
         */
        emailAttributePath?: pulumi.Input<string>;
        /**
         * If enabled, no scopes will be sent to the OAuth2 provider.
         */
        emptyScopes?: pulumi.Input<boolean>;
        /**
         * Define whether this configuration is enabled for the specified provider. Defaults to `true`.
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * JMESPath expression to use for user group lookup. If you configure allowed*groups, you must also configure groups*attribute_path.
         */
        groupsAttributePath?: pulumi.Input<string>;
        /**
         * The name of the key used to extract the ID token from the returned OAuth2 token. Only applicable to Generic OAuth.
         */
        idTokenAttributeName?: pulumi.Input<string>;
        /**
         * JMESPath expression to use for user login lookup from the user ID token. Only applicable to Generic OAuth.
         */
        loginAttributePath?: pulumi.Input<string>;
        /**
         * Helpful if you use more than one identity providers or SSO protocols.
         */
        name?: pulumi.Input<string>;
        /**
         * JMESPath expression to use for user name lookup from the user ID token. This name will be used as the user’s display name. Only applicable to Generic OAuth.
         */
        nameAttributePath?: pulumi.Input<string>;
        /**
         * JMESPath expression to use for the organization mapping lookup from the user ID token. The extracted list will be used for the organization mapping (to match "Organization" in the "orgMapping"). Only applicable to Generic OAuth and Okta.
         */
        orgAttributePath?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated Organization:OrgIdOrOrgName:Role mappings. Organization can be * meaning “All users”. Role is optional and can have the following values: None, Viewer, Editor or Admin.
         */
        orgMapping?: pulumi.Input<string>;
        /**
         * JMESPath expression to use for Grafana role lookup.
         */
        roleAttributePath?: pulumi.Input<string>;
        /**
         * If enabled, denies user login if the Grafana role cannot be extracted using Role attribute path.
         */
        roleAttributeStrict?: pulumi.Input<boolean>;
        /**
         * List of comma- or space-separated OAuth2 scopes.
         */
        scopes?: pulumi.Input<string>;
        /**
         * The URL to redirect the user to after signing out from Grafana.
         */
        signoutRedirectUrl?: pulumi.Input<string>;
        /**
         * Prevent synchronizing users’ organization roles from your IdP.
         */
        skipOrgRoleSync?: pulumi.Input<boolean>;
        /**
         * String list of Team Ids. If set, the user must be a member of one of the given teams to log in. If you configure team*ids, you must also configure teams*url and team*ids*attribute_path.
         */
        teamIds?: pulumi.Input<string>;
        /**
         * The JMESPath expression to use for Grafana Team Id lookup within the results returned by the teamsUrl endpoint. Only applicable to Generic OAuth.
         */
        teamIdsAttributePath?: pulumi.Input<string>;
        /**
         * The URL used to query for Team Ids. If not set, the default value is /teams. If you configure teams*url, you must also configure team*ids*attribute*path. Only applicable to Generic OAuth.
         */
        teamsUrl?: pulumi.Input<string>;
        /**
         * The path to the trusted certificate authority list. Is not applicable on Grafana Cloud.
         */
        tlsClientCa?: pulumi.Input<string>;
        /**
         * The path to the certificate. Is not applicable on Grafana Cloud.
         */
        tlsClientCert?: pulumi.Input<string>;
        /**
         * The path to the key. Is not applicable on Grafana Cloud.
         */
        tlsClientKey?: pulumi.Input<string>;
        /**
         * If enabled, the client accepts any certificate presented by the server and any host name in that certificate. You should only use this for testing, because this mode leaves SSL/TLS susceptible to man-in-the-middle attacks.
         */
        tlsSkipVerifyInsecure?: pulumi.Input<boolean>;
        /**
         * The token endpoint of your OAuth2 provider. Required for azuread, okta and genericOauth providers.
         */
        tokenUrl?: pulumi.Input<string>;
        /**
         * If enabled, Grafana will use Proof Key for Code Exchange (PKCE) with the OAuth2 Authorization Code Grant.
         */
        usePkce?: pulumi.Input<boolean>;
        /**
         * If enabled, Grafana will fetch a new access token using the refresh token provided by the OAuth2 provider.
         */
        useRefreshToken?: pulumi.Input<boolean>;
    }
    interface SsoSettingsSamlSettings {
        /**
         * Whether SAML IdP-initiated login is allowed.
         */
        allowIdpInitiated?: pulumi.Input<boolean>;
        /**
         * Whether to allow new Grafana user creation through SAML login. If set to false, then only existing Grafana users can log in with SAML.
         */
        allowSignUp?: pulumi.Input<boolean>;
        /**
         * List of comma- or space-separated organizations. User should be a member of at least one organization to log in.
         */
        allowedOrganizations?: pulumi.Input<string>;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user email.
         */
        assertionAttributeEmail?: pulumi.Input<string>;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user groups.
         */
        assertionAttributeGroups?: pulumi.Input<string>;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user login handle.
         */
        assertionAttributeLogin?: pulumi.Input<string>;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user name. Alternatively, this can be a template with variables that match the names of attributes within the SAML assertion.
         */
        assertionAttributeName?: pulumi.Input<string>;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user organization.
         */
        assertionAttributeOrg?: pulumi.Input<string>;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user roles.
         */
        assertionAttributeRole?: pulumi.Input<string>;
        /**
         * Whether SAML auto login is enabled.
         */
        autoLogin?: pulumi.Input<boolean>;
        /**
         * Base64-encoded string for the SP X.509 certificate.
         */
        certificate?: pulumi.Input<string>;
        /**
         * Path for the SP X.509 certificate.
         */
        certificatePath?: pulumi.Input<string>;
        /**
         * The client Id of your OAuth2 app.
         */
        clientId?: pulumi.Input<string>;
        /**
         * The client secret of your OAuth2 app.
         */
        clientSecret?: pulumi.Input<string>;
        /**
         * Define whether this configuration is enabled for SAML. Defaults to `true`.
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * The entity ID is a globally unique identifier for the service provider. It is used to identify the service provider to the identity provider. Defaults to the URL of the Grafana instance if not set.
         */
        entityId?: pulumi.Input<string>;
        /**
         * If enabled, Grafana will fetch groups from Microsoft Graph API instead of using the groups claim from the ID token.
         */
        forceUseGraphApi?: pulumi.Input<boolean>;
        /**
         * Base64-encoded string for the IdP SAML metadata XML.
         */
        idpMetadata?: pulumi.Input<string>;
        /**
         * Path for the IdP SAML metadata XML.
         */
        idpMetadataPath?: pulumi.Input<string>;
        /**
         * URL for the IdP SAML metadata XML.
         */
        idpMetadataUrl?: pulumi.Input<string>;
        /**
         * Duration, since the IdP issued a response and the SP is allowed to process it. For example: 90s, 1h.
         */
        maxIssueDelay?: pulumi.Input<string>;
        /**
         * Duration, for how long the SP metadata is valid. For example: 48h, 5d.
         */
        metadataValidDuration?: pulumi.Input<string>;
        /**
         * Name used to refer to the SAML authentication.
         */
        name?: pulumi.Input<string>;
        /**
         * The Name ID Format to request within the SAML assertion. Defaults to urn:oasis:names:tc:SAML:2.0:nameid-format:transient
         */
        nameIdFormat?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated Organization:OrgId:Role mappings. Organization can be * meaning “All users”. Role is optional and can have the following values: Viewer, Editor or Admin.
         */
        orgMapping?: pulumi.Input<string>;
        /**
         * Base64-encoded string for the SP private key.
         */
        privateKey?: pulumi.Input<string>;
        /**
         * Path for the SP private key.
         */
        privateKeyPath?: pulumi.Input<string>;
        /**
         * Relay state for IdP-initiated login. Should match relay state configured in IdP.
         */
        relayState?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated roles which will be mapped into the Admin role.
         */
        roleValuesAdmin?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated roles which will be mapped into the Editor role.
         */
        roleValuesEditor?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated roles which will be mapped into the Grafana Admin (Super Admin) role.
         */
        roleValuesGrafanaAdmin?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated roles which will be mapped into the None role.
         */
        roleValuesNone?: pulumi.Input<string>;
        /**
         * List of comma- or space-separated roles which will be mapped into the Viewer role.
         */
        roleValuesViewer?: pulumi.Input<string>;
        /**
         * Signature algorithm used for signing requests to the IdP. Supported values are rsa-sha1, rsa-sha256, rsa-sha512.
         */
        signatureAlgorithm?: pulumi.Input<string>;
        /**
         * Whether SAML Single Logout is enabled.
         */
        singleLogout?: pulumi.Input<boolean>;
        /**
         * Prevent synchronizing users’ organization roles from your IdP.
         */
        skipOrgRoleSync?: pulumi.Input<boolean>;
        /**
         * The token endpoint of your OAuth2 provider. Required for Azure AD providers.
         */
        tokenUrl?: pulumi.Input<string>;
    }
    interface TeamPreferences {
        /**
         * The UID of the dashboard to display when a team member logs in.
         */
        homeDashboardUid?: pulumi.Input<string>;
        /**
         * The default theme for this team. Available themes are `light`, `dark`, `system`, or an empty string for the default theme.
         */
        theme?: pulumi.Input<string>;
        /**
         * The default timezone for this team. Available values are `utc`, `browser`, or an empty string for the default.
         */
        timezone?: pulumi.Input<string>;
        /**
         * The default week start day for this team. Available values are `sunday`, `monday`, `saturday`, or an empty string for the default.
         */
        weekStart?: pulumi.Input<string>;
    }
    interface TeamTeamSync {
        groups?: pulumi.Input<pulumi.Input<string>[]>;
    }
}
export declare namespace slo {
    interface SLOAlerting {
        /**
         * Advanced Options for Alert Rules
         */
        advancedOptions?: pulumi.Input<inputs.slo.SLOAlertingAdvancedOptions>;
        /**
         * Annotations will be attached to all alerts generated by any of these rules.
         */
        annotations?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingAnnotation>[]>;
        /**
         * Alerting Rules generated for Fast Burn alerts
         */
        fastburns?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingFastburn>[]>;
        /**
         * Labels will be attached to all alerts generated by any of these rules.
         */
        labels?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingLabel>[]>;
        /**
         * Alerting Rules generated for Slow Burn alerts
         */
        slowburns?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingSlowburn>[]>;
    }
    interface SLOAlertingAdvancedOptions {
        /**
         * Minimum number of failed events to trigger an alert
         */
        minFailures?: pulumi.Input<number>;
    }
    interface SLOAlertingAnnotation {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    interface SLOAlertingFastburn {
        /**
         * Annotations to attach only to Fast Burn alerts.
         */
        annotations?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingFastburnAnnotation>[]>;
        /**
         * Labels to attach only to Fast Burn alerts.
         */
        labels?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingFastburnLabel>[]>;
    }
    interface SLOAlertingFastburnAnnotation {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    interface SLOAlertingFastburnLabel {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    interface SLOAlertingLabel {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    interface SLOAlertingSlowburn {
        /**
         * Annotations to attach only to Slow Burn alerts.
         */
        annotations?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingSlowburnAnnotation>[]>;
        /**
         * Labels to attach only to Slow Burn alerts.
         */
        labels?: pulumi.Input<pulumi.Input<inputs.slo.SLOAlertingSlowburnLabel>[]>;
    }
    interface SLOAlertingSlowburnAnnotation {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    interface SLOAlertingSlowburnLabel {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    interface SLODestinationDatasource {
        /**
         * UID for the Datasource
         */
        uid: pulumi.Input<string>;
    }
    interface SLOLabel {
        /**
         * Key for filtering and identification
         */
        key: pulumi.Input<string>;
        /**
         * Templatable value
         */
        value: pulumi.Input<string>;
    }
    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>;
    }
    interface SLOQuery {
        freeform?: pulumi.Input<inputs.slo.SLOQueryFreeform>;
        /**
         * Array for holding a set of grafana queries
         */
        grafanaQueries?: pulumi.Input<inputs.slo.SLOQueryGrafanaQueries>;
        ratio?: pulumi.Input<inputs.slo.SLOQueryRatio>;
        /**
         * Query type must be one of: "freeform", "query", "ratio", "grafanaQueries" or "threshold"
         */
        type: pulumi.Input<string>;
    }
    interface SLOQueryFreeform {
        /**
         * Freeform Query Field - valid promQl
         */
        query: pulumi.Input<string>;
    }
    interface SLOQueryGrafanaQueries {
        /**
         * Query Object - Array of Grafana Query JSON objects
         */
        grafanaQueries: pulumi.Input<string>;
    }
    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)
         */
        successMetric: pulumi.Input<string>;
        /**
         * Metric for total events (denominator)
         */
        totalMetric: pulumi.Input<string>;
    }
}
export declare namespace syntheticMonitoring {
    interface CheckSettings {
        /**
         * Settings for browser check. See https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/k6-browser/.
         */
        browser?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsBrowser>;
        /**
         * Settings for DNS check. The target must be a valid hostname (or IP address for `PTR` records).
         */
        dns?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsDns>;
        /**
         * Settings for gRPC Health check. The target must be of the form `<host>:<port>`, where the host portion must be a valid hostname or IP address.
         */
        grpc?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsGrpc>;
        /**
         * Settings for HTTP check. The target must be a URL (http or https).
         */
        http?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsHttp>;
        /**
         * Settings for MultiHTTP check. The target must be a URL (http or https)
         */
        multihttp?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttp>;
        /**
         * Settings for ping (ICMP) check. The target must be a valid hostname or IP address.
         */
        ping?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsPing>;
        /**
         * Settings for scripted check. See https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/k6/.
         */
        scripted?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsScripted>;
        /**
         * Settings for TCP check. The target must be of the form `<host>:<port>`, where the host portion must be a valid hostname or IP address.
         */
        tcp?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsTcp>;
        /**
         * Settings for traceroute check. The target must be a valid hostname or IP address
         */
        traceroute?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsTraceroute>;
    }
    interface CheckSettingsBrowser {
        script: pulumi.Input<string>;
    }
    interface CheckSettingsDns {
        /**
         * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
         */
        ipVersion?: pulumi.Input<string>;
        /**
         * Port to target. Defaults to `53`.
         */
        port?: pulumi.Input<number>;
        /**
         * `TCP` or `UDP`. Defaults to `UDP`.
         */
        protocol?: pulumi.Input<string>;
        /**
         * One of `ANY`, `A`, `AAAA`, `CNAME`, `MX`, `NS`, `PTR`, `SOA`, `SRV`, `TXT`. Defaults to `A`.
         */
        recordType?: pulumi.Input<string>;
        /**
         * DNS server address to target. Defaults to `8.8.8.8`.
         */
        server?: pulumi.Input<string>;
        /**
         * Source IP address.
         */
        sourceIpAddress?: pulumi.Input<string>;
        /**
         * List of valid response codes. Options include `NOERROR`, `BADALG`, `BADMODE`, `BADKEY`, `BADCOOKIE`, `BADNAME`, `BADSIG`, `BADTIME`, `BADTRUNC`, `BADVERS`, `FORMERR`, `NOTIMP`, `NOTAUTH`, `NOTZONE`, `NXDOMAIN`, `NXRRSET`, `REFUSED`, `SERVFAIL`, `YXDOMAIN`, `YXRRSET`.
         */
        validRCodes?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Validate additional matches.
         */
        validateAdditionalRrs?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsDnsValidateAdditionalRr>[]>;
        /**
         * Validate response answer.
         */
        validateAnswerRrs?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsDnsValidateAnswerRrs>;
        /**
         * Validate response authority.
         */
        validateAuthorityRrs?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsDnsValidateAuthorityRrs>;
    }
    interface CheckSettingsDnsValidateAdditionalRr {
        /**
         * Fail if value matches regex.
         */
        failIfMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Fail if value does not match regex.
         */
        failIfNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface CheckSettingsDnsValidateAnswerRrs {
        /**
         * Fail if value matches regex.
         */
        failIfMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Fail if value does not match regex.
         */
        failIfNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface CheckSettingsDnsValidateAuthorityRrs {
        /**
         * Fail if value matches regex.
         */
        failIfMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Fail if value does not match regex.
         */
        failIfNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface CheckSettingsGrpc {
        /**
         * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
         */
        ipVersion?: pulumi.Input<string>;
        /**
         * gRPC service.
         */
        service?: pulumi.Input<string>;
        /**
         * Whether or not TLS is used when the connection is initiated. Defaults to `false`.
         */
        tls?: pulumi.Input<boolean>;
        /**
         * TLS config.
         */
        tlsConfig?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsGrpcTlsConfig>;
    }
    interface CheckSettingsGrpcTlsConfig {
        /**
         * CA certificate in PEM format.
         */
        caCert?: pulumi.Input<string>;
        /**
         * Client certificate in PEM format.
         */
        clientCert?: pulumi.Input<string>;
        /**
         * Client key in PEM format.
         */
        clientKey?: pulumi.Input<string>;
        /**
         * Disable target certificate validation. Defaults to `false`.
         */
        insecureSkipVerify?: pulumi.Input<boolean>;
        /**
         * Used to verify the hostname for the targets.
         */
        serverName?: pulumi.Input<string>;
    }
    interface CheckSettingsHttp {
        /**
         * Basic auth settings.
         */
        basicAuth?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsHttpBasicAuth>;
        /**
         * Token for use with bearer authorization header.
         */
        bearerToken?: pulumi.Input<string>;
        /**
         * The body of the HTTP request used in probe.
         */
        body?: pulumi.Input<string>;
        /**
         * The name of the query parameter used to prevent the server from using a cached response. Each probe will assign a random value to this parameter each time a request is made.
         */
        cacheBustingQueryParamName?: pulumi.Input<string>;
        /**
         * Check fails if the response body is not compressed using this compression algorithm. One of `none`, `identity`, `br`, `gzip`, `deflate`.
         */
        compression?: pulumi.Input<string>;
        /**
         * List of regexes. If any match the response body, the check will fail.
         */
        failIfBodyMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * List of regexes. If any do not match the response body, the check will fail.
         */
        failIfBodyNotMatchesRegexps?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Check fails if headers match.
         */
        failIfHeaderMatchesRegexps?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsHttpFailIfHeaderMatchesRegexp>[]>;
        /**
         * Check fails if headers do not match.
         */
        failIfHeaderNotMatchesRegexps?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsHttpFailIfHeaderNotMatchesRegexp>[]>;
        /**
         * Fail if SSL is not present. Defaults to `false`.
         */
        failIfNotSsl?: pulumi.Input<boolean>;
        /**
         * Fail if SSL is present. Defaults to `false`.
         */
        failIfSsl?: pulumi.Input<boolean>;
        /**
         * The HTTP headers set for the probe.
         */
        headers?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
         */
        ipVersion?: pulumi.Input<string>;
        /**
         * Request method. One of `GET`, `CONNECT`, `DELETE`, `HEAD`, `OPTIONS`, `POST`, `PUT`, `TRACE` Defaults to `GET`.
         */
        method?: pulumi.Input<string>;
        /**
         * Do not follow redirects. Defaults to `false`.
         */
        noFollowRedirects?: pulumi.Input<boolean>;
        /**
         * The HTTP headers sent to the proxy URL
         */
        proxyConnectHeaders?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Proxy URL.
         */
        proxyUrl?: pulumi.Input<string>;
        /**
         * TLS config.
         */
        tlsConfig?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsHttpTlsConfig>;
        /**
         * List of valid HTTP versions. Options include `HTTP/1.0`, `HTTP/1.1`, `HTTP/2.0`
         */
        validHttpVersions?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Accepted status codes. If unset, defaults to 2xx.
         */
        validStatusCodes?: pulumi.Input<pulumi.Input<number>[]>;
    }
    interface CheckSettingsHttpBasicAuth {
        /**
         * Basic auth password.
         */
        password: pulumi.Input<string>;
        /**
         * Basic auth username.
         */
        username: pulumi.Input<string>;
    }
    interface CheckSettingsHttpFailIfHeaderMatchesRegexp {
        /**
         * Allow header to be missing from responses. Defaults to `false`.
         */
        allowMissing?: pulumi.Input<boolean>;
        /**
         * Header name.
         */
        header: pulumi.Input<string>;
        /**
         * Regex that header value should match.
         */
        regexp: pulumi.Input<string>;
    }
    interface CheckSettingsHttpFailIfHeaderNotMatchesRegexp {
        /**
         * Allow header to be missing from responses. Defaults to `false`.
         */
        allowMissing?: pulumi.Input<boolean>;
        /**
         * Header name.
         */
        header: pulumi.Input<string>;
        /**
         * Regex that header value should match.
         */
        regexp: pulumi.Input<string>;
    }
    interface CheckSettingsHttpTlsConfig {
        /**
         * CA certificate in PEM format.
         */
        caCert?: pulumi.Input<string>;
        /**
         * Client certificate in PEM format.
         */
        clientCert?: pulumi.Input<string>;
        /**
         * Client key in PEM format.
         */
        clientKey?: pulumi.Input<string>;
        /**
         * Disable target certificate validation. Defaults to `false`.
         */
        insecureSkipVerify?: pulumi.Input<boolean>;
        /**
         * Used to verify the hostname for the targets.
         */
        serverName?: pulumi.Input<string>;
    }
    interface CheckSettingsMultihttp {
        entries?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntry>[]>;
    }
    interface CheckSettingsMultihttpEntry {
        /**
         * Assertions to make on the request response
         */
        assertions?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntryAssertion>[]>;
        /**
         * An individual MultiHTTP request
         */
        request?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequest>;
        /**
         * Variables to extract from the request response
         */
        variables?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntryVariable>[]>;
    }
    interface CheckSettingsMultihttpEntryAssertion {
        /**
         * The condition of the assertion: NOT*CONTAINS, EQUALS, STARTS*WITH, ENDS*WITH, TYPE*OF, CONTAINS
         */
        condition?: pulumi.Input<string>;
        /**
         * The expression of the assertion. Should start with $.
         */
        expression?: pulumi.Input<string>;
        /**
         * The subject of the assertion: RESPONSE*HEADERS, HTTP*STATUS*CODE, RESPONSE*BODY
         */
        subject?: pulumi.Input<string>;
        /**
         * The type of assertion to make: TEXT, JSON*PATH*VALUE, JSON*PATH*ASSERTION, REGEX_ASSERTION
         */
        type: pulumi.Input<string>;
        /**
         * The value of the assertion
         */
        value?: pulumi.Input<string>;
    }
    interface CheckSettingsMultihttpEntryRequest {
        /**
         * The body of the HTTP request used in probe.
         */
        bodies?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequestBody>[]>;
        /**
         * The headers to send with the request
         */
        headers?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequestHeader>[]>;
        /**
         * The HTTP method to use
         */
        method: pulumi.Input<string>;
        /**
         * Query fields to send with the request
         */
        queryFields?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequestQueryField>[]>;
        /**
         * The URL for the request
         */
        url: pulumi.Input<string>;
    }
    interface CheckSettingsMultihttpEntryRequestBody {
        /**
         * The content encoding of the body
         */
        contentEncoding?: pulumi.Input<string>;
        /**
         * The content type of the body
         */
        contentType?: pulumi.Input<string>;
        /**
         * The body payload
         */
        payload?: pulumi.Input<string>;
    }
    interface CheckSettingsMultihttpEntryRequestHeader {
        /**
         * Name of the header to send
         */
        name: pulumi.Input<string>;
        /**
         * Value of the header to send
         */
        value: pulumi.Input<string>;
    }
    interface CheckSettingsMultihttpEntryRequestQueryField {
        /**
         * Name of the query field to send
         */
        name: pulumi.Input<string>;
        /**
         * Value of the query field to send
         */
        value: pulumi.Input<string>;
    }
    interface CheckSettingsMultihttpEntryVariable {
        /**
         * The attribute to use when finding the variable value. Only used when type is CSS_SELECTOR
         */
        attribute?: pulumi.Input<string>;
        /**
         * The expression to when finding the variable. Should start with $. Only use when type is JSON_PATH or REGEX
         */
        expression?: pulumi.Input<string>;
        /**
         * The name of the variable to extract
         */
        name?: pulumi.Input<string>;
        /**
         * The method of finding the variable value to extract. JSON*PATH, REGEX, CSS*SELECTOR
         */
        type: pulumi.Input<string>;
    }
    interface CheckSettingsPing {
        /**
         * Set the DF-bit in the IP-header. Only works with ipV4. Defaults to `false`.
         */
        dontFragment?: pulumi.Input<boolean>;
        /**
         * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
         */
        ipVersion?: pulumi.Input<string>;
        /**
         * Payload size. Defaults to `0`.
         */
        payloadSize?: pulumi.Input<number>;
        /**
         * Source IP address.
         */
        sourceIpAddress?: pulumi.Input<string>;
    }
    interface CheckSettingsScripted {
        script: pulumi.Input<string>;
    }
    interface CheckSettingsTcp {
        /**
         * Options are `V4`, `V6`, `Any`. Specifies whether the corresponding check will be performed using IPv4 or IPv6. The `Any` value indicates that IPv6 should be used, falling back to IPv4 if that's not available. Defaults to `V4`.
         */
        ipVersion?: pulumi.Input<string>;
        /**
         * The query sent in the TCP probe and the expected associated response.
         */
        queryResponses?: pulumi.Input<pulumi.Input<inputs.syntheticMonitoring.CheckSettingsTcpQueryResponse>[]>;
        /**
         * Source IP address.
         */
        sourceIpAddress?: pulumi.Input<string>;
        /**
         * Whether or not TLS is used when the connection is initiated. Defaults to `false`.
         */
        tls?: pulumi.Input<boolean>;
        /**
         * TLS config.
         */
        tlsConfig?: pulumi.Input<inputs.syntheticMonitoring.CheckSettingsTcpTlsConfig>;
    }
    interface CheckSettingsTcpQueryResponse {
        /**
         * Response to expect.
         */
        expect: pulumi.Input<string>;
        /**
         * Data to send.
         */
        send: pulumi.Input<string>;
        /**
         * Upgrade TCP connection to TLS. Defaults to `false`.
         */
        startTls?: pulumi.Input<boolean>;
    }
    interface CheckSettingsTcpTlsConfig {
        /**
         * CA certificate in PEM format.
         */
        caCert?: pulumi.Input<string>;
        /**
         * Client certificate in PEM format.
         */
        clientCert?: pulumi.Input<string>;
        /**
         * Client key in PEM format.
         */
        clientKey?: pulumi.Input<string>;
        /**
         * Disable target certificate validation. Defaults to `false`.
         */
        insecureSkipVerify?: pulumi.Input<boolean>;
        /**
         * Used to verify the hostname for the targets.
         */
        serverName?: pulumi.Input<string>;
    }
    interface CheckSettingsTraceroute {
        /**
         * Maximum TTL for the trace Defaults to `64`.
         */
        maxHops?: pulumi.Input<number>;
        /**
         * Maximum number of hosts to travers that give no response Defaults to `15`.
         */
        maxUnknownHops?: pulumi.Input<number>;
        /**
         * Reverse lookup hostnames from IP addresses Defaults to `true`.
         */
        ptrLookup?: pulumi.Input<boolean>;
    }
}
