import * as outputs from "../types/output";
export declare namespace alerting {
    interface AlertEnrichmentMetadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface AlertEnrichmentOptions {
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface AlertEnrichmentSpec {
        /**
         * UIDs of alert rules this enrichment applies to. If empty, applies to all alert rules.
         */
        alertRuleUids?: string[];
        /**
         * Annotation matchers that an alert must satisfy for this enrichment to apply. Each matcher is an object with: 'type' (string, one of: =, !=, =~, !~), 'name' (string, annotation key to match), 'value' (string, annotation value to compare against, supports regex for =~/!~ operators).
         */
        annotationMatchers?: outputs.alerting.AlertEnrichmentSpecAnnotationMatcher[];
        /**
         * Description of the alert enrichment.
         */
        description: string;
        /**
         * Allow modifying alert enrichment outside of Terraform
         */
        disableProvenance: boolean;
        /**
         * Label matchers that an alert must satisfy for this enrichment to apply. Each matcher is an object with: 'type' (string, one of: =, !=, =~, !~), 'name' (string, label key to match), 'value' (string, label value to compare against, supports regex for =~/!~ operators).
         */
        labelMatchers?: outputs.alerting.AlertEnrichmentSpecLabelMatcher[];
        /**
         * Receiver names to match. If empty, applies to all receivers.
         */
        receivers?: string[];
        /**
         * Enrichment step. Can be repeated multiple times to define a sequence of steps. Each step must contain exactly one enrichment block.
         */
        steps?: outputs.alerting.AlertEnrichmentSpecStep[];
        /**
         * The title of the alert enrichment.
         */
        title: string;
    }
    interface AlertEnrichmentSpecAnnotationMatcher {
        name: string;
        type: string;
        value: string;
    }
    interface AlertEnrichmentSpecLabelMatcher {
        name: string;
        type: string;
        value: string;
    }
    interface AlertEnrichmentSpecStep {
        /**
         * Integrate with Grafana Asserts for enrichment.
         */
        asserts?: outputs.alerting.AlertEnrichmentSpecStepAsserts;
        /**
         * Assign annotations to an alert.
         */
        assign?: outputs.alerting.AlertEnrichmentSpecStepAssign;
        /**
         * Use AI assistant to investigate alerts and add insights.
         */
        assistantInvestigations?: outputs.alerting.AlertEnrichmentSpecStepAssistantInvestigations;
        /**
         * Conditional step with if/then/else.
         */
        conditional?: outputs.alerting.AlertEnrichmentSpecStepConditional;
        /**
         * Query Grafana data sources and add results to alerts.
         */
        dataSource?: outputs.alerting.AlertEnrichmentSpecStepDataSource;
        /**
         * Generate AI explanation and store in an annotation.
         */
        explain?: outputs.alerting.AlertEnrichmentSpecStepExplain;
        /**
         * Call an external HTTP service for enrichment.
         */
        external?: outputs.alerting.AlertEnrichmentSpecStepExternal;
        /**
         * Analyze alerts for patterns and insights.
         */
        sift?: outputs.alerting.AlertEnrichmentSpecStepSift;
    }
    interface AlertEnrichmentSpecStepAsserts {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepAssign {
        /**
         * Map of annotation names to values to set on matching alerts.
         */
        annotations?: {
            [key: string]: string;
        };
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepAssistantInvestigations {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditional {
        /**
         * Steps when condition is false.
         */
        else?: outputs.alerting.AlertEnrichmentSpecStepConditionalElse;
        /**
         * Condition to evaluate.
         */
        if?: outputs.alerting.AlertEnrichmentSpecStepConditionalIf;
        /**
         * Steps when condition is true.
         */
        then?: outputs.alerting.AlertEnrichmentSpecStepConditionalThen;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElse {
        steps?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStep[];
    }
    interface AlertEnrichmentSpecStepConditionalElseStep {
        /**
         * Integrate with Grafana Asserts for enrichment.
         */
        asserts?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepAsserts;
        /**
         * Assign annotations to an alert.
         */
        assign?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepAssign;
        /**
         * Use AI assistant to investigate alerts and add insights.
         */
        assistantInvestigations?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepAssistantInvestigations;
        /**
         * Query Grafana data sources and add results to alerts.
         */
        dataSource?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepDataSource;
        /**
         * Generate AI explanation and store in an annotation.
         */
        explain?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepExplain;
        /**
         * Call an external HTTP service for enrichment.
         */
        external?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepExternal;
        /**
         * Analyze alerts for patterns and insights.
         */
        sift?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepSift;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepAsserts {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepAssign {
        /**
         * Map of annotation names to values to set on matching alerts.
         */
        annotations?: {
            [key: string]: string;
        };
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepAssistantInvestigations {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepDataSource {
        /**
         * Logs query configuration for querying log data sources.
         */
        logsQuery?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepDataSourceLogsQuery;
        /**
         * Raw query configuration for advanced data source queries.
         */
        rawQuery?: outputs.alerting.AlertEnrichmentSpecStepConditionalElseStepDataSourceRawQuery;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepDataSourceLogsQuery {
        /**
         * Data source type (e.g., 'loki').
         */
        dataSourceType?: string;
        /**
         * UID of the data source to query.
         */
        dataSourceUid?: string;
        /**
         * Log query expression to execute.
         */
        expr?: string;
        /**
         * Maximum number of log lines to include. Defaults to 3.
         */
        maxLines: number;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepDataSourceRawQuery {
        /**
         * Reference ID for correlating queries.
         */
        refId: string;
        /**
         * Raw request payload for the data source query.
         */
        request?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepExplain {
        /**
         * Annotation name to set the explanation in. Defaults to 'ai_explanation'.
         */
        annotation: string;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepExternal {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
        /**
         * HTTP endpoint URL to call for enrichment
         */
        url?: string;
    }
    interface AlertEnrichmentSpecStepConditionalElseStepSift {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalIf {
        /**
         * Annotation matchers for the condition.
         */
        annotationMatchers?: outputs.alerting.AlertEnrichmentSpecStepConditionalIfAnnotationMatcher[];
        /**
         * Data source condition.
         */
        dataSourceCondition?: outputs.alerting.AlertEnrichmentSpecStepConditionalIfDataSourceCondition;
        /**
         * Label matchers for the condition.
         */
        labelMatchers?: outputs.alerting.AlertEnrichmentSpecStepConditionalIfLabelMatcher[];
    }
    interface AlertEnrichmentSpecStepConditionalIfAnnotationMatcher {
        name: string;
        type: string;
        value: string;
    }
    interface AlertEnrichmentSpecStepConditionalIfDataSourceCondition {
        /**
         * Data source request payload.
         */
        request?: string;
    }
    interface AlertEnrichmentSpecStepConditionalIfLabelMatcher {
        name: string;
        type: string;
        value: string;
    }
    interface AlertEnrichmentSpecStepConditionalThen {
        steps?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStep[];
    }
    interface AlertEnrichmentSpecStepConditionalThenStep {
        /**
         * Integrate with Grafana Asserts for enrichment.
         */
        asserts?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepAsserts;
        /**
         * Assign annotations to an alert.
         */
        assign?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepAssign;
        /**
         * Use AI assistant to investigate alerts and add insights.
         */
        assistantInvestigations?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepAssistantInvestigations;
        /**
         * Query Grafana data sources and add results to alerts.
         */
        dataSource?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepDataSource;
        /**
         * Generate AI explanation and store in an annotation.
         */
        explain?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepExplain;
        /**
         * Call an external HTTP service for enrichment.
         */
        external?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepExternal;
        /**
         * Analyze alerts for patterns and insights.
         */
        sift?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepSift;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepAsserts {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepAssign {
        /**
         * Map of annotation names to values to set on matching alerts.
         */
        annotations?: {
            [key: string]: string;
        };
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepAssistantInvestigations {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepDataSource {
        /**
         * Logs query configuration for querying log data sources.
         */
        logsQuery?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepDataSourceLogsQuery;
        /**
         * Raw query configuration for advanced data source queries.
         */
        rawQuery?: outputs.alerting.AlertEnrichmentSpecStepConditionalThenStepDataSourceRawQuery;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepDataSourceLogsQuery {
        /**
         * Data source type (e.g., 'loki').
         */
        dataSourceType?: string;
        /**
         * UID of the data source to query.
         */
        dataSourceUid?: string;
        /**
         * Log query expression to execute.
         */
        expr?: string;
        /**
         * Maximum number of log lines to include. Defaults to 3.
         */
        maxLines: number;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepDataSourceRawQuery {
        /**
         * Reference ID for correlating queries.
         */
        refId: string;
        /**
         * Raw request payload for the data source query.
         */
        request?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepExplain {
        /**
         * Annotation name to set the explanation in. Defaults to 'ai_explanation'.
         */
        annotation: string;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepExternal {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
        /**
         * HTTP endpoint URL to call for enrichment
         */
        url?: string;
    }
    interface AlertEnrichmentSpecStepConditionalThenStepSift {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepDataSource {
        /**
         * Logs query configuration for querying log data sources.
         */
        logsQuery?: outputs.alerting.AlertEnrichmentSpecStepDataSourceLogsQuery;
        /**
         * Raw query configuration for advanced data source queries.
         */
        rawQuery?: outputs.alerting.AlertEnrichmentSpecStepDataSourceRawQuery;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepDataSourceLogsQuery {
        /**
         * Data source type (e.g., 'loki').
         */
        dataSourceType?: string;
        /**
         * UID of the data source to query.
         */
        dataSourceUid?: string;
        /**
         * Log query expression to execute.
         */
        expr?: string;
        /**
         * Maximum number of log lines to include. Defaults to 3.
         */
        maxLines: number;
    }
    interface AlertEnrichmentSpecStepDataSourceRawQuery {
        /**
         * Reference ID for correlating queries.
         */
        refId: string;
        /**
         * Raw request payload for the data source query.
         */
        request?: string;
    }
    interface AlertEnrichmentSpecStepExplain {
        /**
         * Annotation name to set the explanation in. Defaults to 'ai_explanation'.
         */
        annotation: string;
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertEnrichmentSpecStepExternal {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
        /**
         * HTTP endpoint URL to call for enrichment
         */
        url?: string;
    }
    interface AlertEnrichmentSpecStepSift {
        /**
         * Maximum execution time (e.g., '30s', '1m')
         */
        timeout?: string;
    }
    interface AlertRuleV0Alpha1Metadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface AlertRuleV0Alpha1Options {
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface AlertRuleV0Alpha1Spec {
        /**
         * Key-value pairs of metadata to attach to the alert rule. They add additional information, such as a `summary` or `runbookUrl`, to help identify and investigate alerts.
         */
        annotations?: {
            [key: string]: string;
        };
        /**
         * Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.
         */
        execErrState: string;
        /**
         * A sequence of stages that describe the contents of the rule. Each value is a JSON string representing an expression object.
         */
        expressions: {
            [key: string]: string;
        };
        /**
         * The amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending.
         */
        for?: string;
        /**
         * The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.
         */
        keepFiringFor?: string;
        /**
         * Key-value pairs to attach to the alert rule that can be used in matching, grouping, and routing.
         */
        labels?: {
            [key: string]: string;
        };
        /**
         * The number of missing series evaluations that must occur before the rule is considered to be resolved.
         */
        missingSeriesEvalsToResolve?: number;
        /**
         * Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting.
         */
        noDataState: string;
        /**
         * Notification settings for the rule. If specified, it overrides the notification policies. The flat configuration is deprecated, please specify one of named*routing*tree or simplified*routing
         */
        notificationSettings?: outputs.alerting.AlertRuleV0Alpha1SpecNotificationSettings;
        /**
         * Reference to a panel that this alert rule is associated with. Should be an object with 'dashboard*uid' (string) and 'panel*id' (number) fields.
         */
        panelRef?: {
            [key: string]: string;
        };
        /**
         * Sets whether the rule should be paused or not.
         */
        paused?: boolean;
        /**
         * The title of the alert rule.
         */
        title: string;
        /**
         * The trigger configuration for the alert rule.
         */
        trigger?: outputs.alerting.AlertRuleV0Alpha1SpecTrigger;
    }
    interface AlertRuleV0Alpha1SpecNotificationSettings {
        /**
         * Deprecated. A list of time interval names to apply to alerts that match this policy.
         *
         * @deprecated Use `simplified_routing.active_timings` instead.
         */
        activeTimings?: string[];
        /**
         * Deprecated. The contact point to route notifications that match this rule to.
         *
         * @deprecated Use `simplified_routing.contact_point` instead.
         */
        contactPoint?: string;
        /**
         * Deprecated. A list of alert labels to group alerts into notifications by.
         *
         * @deprecated Use `simplified_routing.group_by` instead.
         */
        groupBies?: string[];
        /**
         * Deprecated. Minimum time interval between two notifications for the same group.
         *
         * @deprecated Use `simplified_routing.group_interval` instead.
         */
        groupInterval?: string;
        /**
         * Deprecated. Time to wait to buffer alerts of the same group before sending a notification.
         *
         * @deprecated Use `simplified_routing.group_wait` instead.
         */
        groupWait?: string;
        /**
         * Deprecated. A list of mute timing names to apply to alerts that match this policy.
         *
         * @deprecated Use `simplified_routing.mute_timings` instead.
         */
        muteTimings?: string[];
        /**
         * Route notifications to a specific routing tree.
         */
        namedRoutingTree?: outputs.alerting.AlertRuleV0Alpha1SpecNotificationSettingsNamedRoutingTree;
        /**
         * Deprecated. Minimum time interval for re-sending a notification if an alert is still firing.
         *
         * @deprecated Use `simplified_routing.repeat_interval` instead.
         */
        repeatInterval?: string;
        /**
         * Simplified routing to a contact point with optional grouping and timing overrides.
         */
        simplifiedRouting?: outputs.alerting.AlertRuleV0Alpha1SpecNotificationSettingsSimplifiedRouting;
    }
    interface AlertRuleV0Alpha1SpecNotificationSettingsNamedRoutingTree {
        /**
         * The name of the routing tree to use.
         */
        routingTree?: string;
    }
    interface AlertRuleV0Alpha1SpecNotificationSettingsSimplifiedRouting {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time.
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint?: string;
        /**
         * A list of alert labels to group alerts into notifications by.
         */
        groupBies?: string[];
        /**
         * Minimum time interval between two notifications for the same group.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification.
         */
        groupWait?: string;
        /**
         * A list of mute timing names to apply to alerts that match this policy.
         */
        muteTimings?: string[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing.
         */
        repeatInterval?: string;
    }
    interface AlertRuleV0Alpha1SpecTrigger {
        /**
         * The interval at which the alert rule should be evaluated.
         */
        interval: string;
    }
    interface ContactPointAlertmanager {
        /**
         * The password component of the basic auth credentials to use.
         */
        basicAuthPassword?: string;
        /**
         * The username component of the basic auth credentials to use.
         */
        basicAuthUser?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The URL of the Alertmanager instance.
         */
        url: string;
    }
    interface ContactPointDingding {
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated content of the message.
         */
        message?: string;
        /**
         * The format of message to send - either 'link' or 'actionCard'
         */
        messageType?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated title of the message.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The DingDing webhook URL.
         */
        url: string;
    }
    interface ContactPointDiscord {
        /**
         * The URL of a custom avatar image to use. Defaults to ``.
         */
        avatarUrl?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated content of the message. Defaults to ``.
         */
        message?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated content of the title.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The discord webhook URL.
         */
        url: string;
        /**
         * Whether to use the bot account's plain username instead of "Grafana." Defaults to `false`.
         */
        useDiscordUsername?: boolean;
    }
    interface ContactPointEmail {
        /**
         * The addresses to send emails to.
         */
        addresses: string[];
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated content of the email. Defaults to ``.
         */
        message?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * Whether to send a single email CC'ing all addresses, rather than a separate email to each address. Defaults to `false`.
         */
        singleEmail?: boolean;
        /**
         * The templated subject line of the email. Defaults to ``.
         */
        subject?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
    }
    interface ContactPointGooglechat {
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated content of the message.
         */
        message?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated content of the title.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The Google Chat webhook URL.
         */
        url: string;
    }
    interface ContactPointJira {
        /**
         * Personal Access Token that is used as a bearer authorization header.
         */
        apiToken?: string;
        /**
         * The URL of the Jira REST API (v2 or v3).
         */
        apiUrl: string;
        /**
         * Custom field ID for storing deduplication keys. Must be numeric.
         */
        dedupKeyField?: string;
        /**
         * The templated description of the Jira issue. Maximum length is 32767 characters.
         */
        description?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * Custom Jira issue fields.
         */
        fields?: {
            [key: string]: string;
        };
        /**
         * The type of issue to create (e.g., Bug, Task, Story).
         */
        issueType: string;
        /**
         * Labels to assign to the Jira issue.
         */
        labels?: string[];
        /**
         * Password to use for Jira authentication.
         */
        password?: string;
        /**
         * The priority level of the issue (e.g., High, Medium, Low).
         */
        priority?: string;
        /**
         * The project key in Jira.
         */
        project: string;
        /**
         * Duration to consider reopening issues (e.g., '10m').
         */
        reopenDuration?: string;
        /**
         * The name of the workflow transition to reopen an issue.
         */
        reopenTransition?: string;
        /**
         * The name of the workflow transition to resolve an issue.
         */
        resolveTransition?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated summary of the Jira issue. Maximum length is 255 characters.
         */
        summary?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * Username to use for Jira authentication.
         */
        user?: string;
        /**
         * Resolution status to exclude from reopening/updating.
         */
        wontFixResolution?: string;
    }
    interface ContactPointKafka {
        /**
         * The API version to use when contacting the Kafka REST Server. Supported: v2 (default) and v3. Defaults to `v2`.
         */
        apiVersion?: string;
        /**
         * The Id of cluster to use when contacting the Kafka REST Server. Required apiVersion to be 'v3'
         */
        clusterId?: string;
        /**
         * The templated description of the Kafka message.
         */
        description?: string;
        /**
         * The templated details to include with the message.
         */
        details?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The password to use when making a call to the Kafka REST Proxy
         */
        password?: string;
        /**
         * The URL of the Kafka REST proxy to send requests to.
         */
        restProxyUrl: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The name of the Kafka topic to publish to.
         */
        topic: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The user name to use when making a call to the Kafka REST Proxy
         */
        username?: string;
    }
    interface ContactPointLine {
        /**
         * The templated description of the message.
         */
        description?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated title of the message.
         */
        title?: string;
        /**
         * The bearer token used to authorize the client.
         */
        token: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
    }
    interface ContactPointOncall {
        /**
         * Allows a custom authorization scheme - attaches an auth header with this value. Do not use in conjunction with basic auth parameters.
         */
        authorizationCredentials?: string;
        /**
         * Allows a custom authorization scheme - attaches an auth header with this name. Do not use in conjunction with basic auth parameters.
         */
        authorizationScheme?: string;
        /**
         * The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
         */
        basicAuthPassword?: string;
        /**
         * The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
         */
        basicAuthUser?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The HTTP method to use in the request. Defaults to `POST`.
         */
        httpMethod?: string;
        /**
         * The maximum number of alerts to send in a single request. This can be helpful in limiting the size of the request body. The default is 0, which indicates no limit.
         */
        maxAlerts?: number;
        /**
         * Custom message. You can use template variables.
         */
        message?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * Templated title of the message.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The URL to send webhook requests to.
         */
        url: string;
    }
    interface ContactPointOpsgeny {
        /**
         * The OpsGenie API key to use.
         */
        apiKey: string;
        /**
         * Whether to auto-close alerts in OpsGenie when they resolve in the Alertmanager.
         */
        autoClose?: boolean;
        /**
         * A templated high-level description to use for the alert.
         */
        description?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated content of the message.
         */
        message?: string;
        /**
         * Whether to allow the alert priority to be configured via the value of the `ogPriority` annotation on the alert.
         */
        overridePriority?: boolean;
        /**
         * Teams, users, escalations and schedules that the alert will be routed to send notifications. If the API Key belongs to a team integration, this field will be overwritten with the owner team. This feature is available from Grafana 10.3+.
         */
        responders?: outputs.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?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * Allows customization of the OpsGenie API URL.
         */
        url?: string;
    }
    interface ContactPointOpsgenyResponder {
        /**
         * ID of the responder. Must be specified if name and username are empty.
         */
        id?: string;
        /**
         * Name of the responder. Must be specified if username and id are empty.
         */
        name?: string;
        /**
         * Type of the responder. Supported: team, teams, user, escalation, schedule or a template that is expanded to one of these values.
         */
        type: string;
        /**
         * User name of the responder. Must be specified if name and id are empty.
         */
        username?: string;
    }
    interface ContactPointPagerduty {
        /**
         * The class or type of event, for example `ping failure`.
         */
        class?: string;
        /**
         * The name of the monitoring client that is triggering this event.
         */
        client?: string;
        /**
         * The URL of the monitoring client that is triggering this event.
         */
        clientUrl?: string;
        /**
         * The component being affected by the event.
         */
        component?: string;
        /**
         * A set of arbitrary key/value pairs that provide further detail about the incident.
         */
        details?: {
            [key: string]: string;
        };
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The group to which the provided component belongs to.
         */
        group?: string;
        /**
         * The PagerDuty API key.
         */
        integrationKey: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The PagerDuty event severity level. Default is `critical`.
         */
        severity?: string;
        /**
         * The unique location of the affected system.
         */
        source?: string;
        /**
         * The templated summary message of the event.
         */
        summary?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The URL to send API requests to
         */
        url?: string;
    }
    interface ContactPointPushover {
        /**
         * The Pushover API token.
         */
        apiToken: string;
        /**
         * Comma-separated list of devices to which the event is associated.
         */
        device?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * How many seconds for which the notification will continue to be retried by Pushover.
         */
        expire?: number;
        /**
         * The templated notification message content.
         */
        message?: string;
        /**
         * The priority level of the resolved event.
         */
        okPriority?: number;
        /**
         * The sound associated with the resolved notification.
         */
        okSound?: string;
        /**
         * The priority level of the event.
         */
        priority?: number;
        /**
         * How often, in seconds, the Pushover servers will send the same notification to the user.
         */
        retry?: number;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The sound associated with the notification.
         */
        sound?: string;
        /**
         * The templated title of the message.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * Whether to send images in the notification or not. Default is true. Requires Grafana to be configured to send images in notifications.
         */
        uploadImage?: boolean;
        /**
         * The Pushover user key.
         */
        userKey: string;
    }
    interface ContactPointSensugo {
        /**
         * The SensuGo API key.
         */
        apiKey: string;
        /**
         * The SensuGo check to which the event should be routed.
         */
        check?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The entity being monitored.
         */
        entity?: string;
        /**
         * A custom handler to execute in addition to the check.
         */
        handler?: string;
        /**
         * Templated message content describing the alert.
         */
        message?: string;
        /**
         * The namespace in which the check resides.
         */
        namespace?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The SensuGo URL to send requests to.
         */
        url: string;
    }
    interface ContactPointSlack {
        /**
         * Templated color of the slack message.
         */
        color?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * Use this to override the Slack API endpoint URL to send requests to.
         */
        endpointUrl?: string;
        /**
         * The name of a Slack workspace emoji to use as the bot icon.
         */
        iconEmoji?: string;
        /**
         * A URL of an image to use as the bot icon.
         */
        iconUrl?: string;
        /**
         * Describes how to ping the slack channel that messages are being sent to. Options are `here` for an @here ping, `channel` for @channel, or empty for no ping.
         */
        mentionChannel?: string;
        /**
         * Comma-separated list of groups to mention in the message.
         */
        mentionGroups?: string;
        /**
         * Comma-separated list of users to mention in the message.
         */
        mentionUsers?: string;
        /**
         * Channel, private group, or IM channel (can be an encoded ID or a name) to send messages to.
         */
        recipient?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * Templated content of the message.
         */
        text?: string;
        /**
         * Templated title of the message.
         */
        title?: string;
        /**
         * A Slack API token,for sending messages directly without the webhook method.
         */
        token?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * A Slack webhook URL,for sending messages via the webhook method.
         */
        url?: string;
        /**
         * Username for the bot to use.
         */
        username?: string;
    }
    interface ContactPointSn {
        /**
         * AWS access key ID used to authenticate with Amazon SNS.
         */
        accessKey?: string;
        /**
         * The Amazon Resource Name (ARN) of the role to assume to send notifications to Amazon SNS.
         */
        assumeRoleArn?: string;
        /**
         * The authentication provider to use. Valid values are `default`, `arn` and `keys`. Default is `default`. Defaults to `default`.
         */
        authProvider?: string;
        body?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The external ID to use when assuming the role.
         */
        externalId?: string;
        /**
         * The format of the message to send. Valid values are `text`, `body` and `json`. Default is `text`. Defaults to `text`.
         */
        messageFormat?: string;
        /**
         * AWS secret access key used to authenticate with Amazon SNS.
         */
        secretKey?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        subject?: string;
        /**
         * The Amazon SNS topic to send notifications to.
         */
        topic: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
    }
    interface ContactPointTeam {
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated message content to send.
         */
        message?: string;
        /**
         * The templated subtitle for each message section.
         */
        sectionTitle?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated title of the message.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * A Teams webhook URL.
         */
        url: string;
    }
    interface ContactPointTelegram {
        /**
         * The chat ID to send messages to.
         */
        chatId: string;
        /**
         * When set users will receive a notification with no sound.
         */
        disableNotifications?: boolean;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * When set it disables link previews for links in the message.
         */
        disableWebPagePreview?: boolean;
        /**
         * The templated content of the message.
         */
        message?: string;
        /**
         * The ID of the message thread to send the message to.
         */
        messageThreadId?: string;
        /**
         * Mode for parsing entities in the message text. Supported: None, Markdown, MarkdownV2, and HTML. HTML is the default.
         */
        parseMode?: string;
        /**
         * When set it protects the contents of the message from forwarding and saving.
         */
        protectContent?: boolean;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The Telegram bot token.
         */
        token: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
    }
    interface ContactPointThreema {
        /**
         * The Threema API key.
         */
        apiSecret: string;
        /**
         * The templated description of the message.
         */
        description?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The Threema gateway ID.
         */
        gatewayId: string;
        /**
         * The ID of the recipient of the message.
         */
        recipientId: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated title of the message.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
    }
    interface ContactPointVictorop {
        /**
         * Templated description of the message.
         */
        description?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The VictorOps alert state - typically either `CRITICAL` or `RECOVERY`.
         */
        messageType?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * Templated title to display.
         */
        title?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The VictorOps webhook URL.
         */
        url: string;
    }
    interface ContactPointWebex {
        /**
         * The URL to send webhook requests to.
         */
        apiUrl?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated title of the message to send.
         */
        message?: string;
        /**
         * ID of the Webex Teams room where to send the messages.
         */
        roomId: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The bearer token used to authorize the client.
         */
        token: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
    }
    interface ContactPointWebhook {
        /**
         * Allows a custom authorization scheme - attaches an auth header with this value. Do not use in conjunction with basic auth parameters.
         */
        authorizationCredentials?: string;
        /**
         * Allows a custom authorization scheme - attaches an auth header with this name. Do not use in conjunction with basic auth parameters.
         */
        authorizationScheme?: string;
        /**
         * The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
         */
        basicAuthPassword?: string;
        /**
         * The username to use in basic auth headers attached to the request. If omitted, basic auth will not be used.
         */
        basicAuthUser?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * Custom headers to attach to the request.
         */
        headers?: {
            [key: string]: string;
        };
        /**
         * HMAC signature configuration options.
         */
        hmacConfig?: outputs.alerting.ContactPointWebhookHmacConfig;
        /**
         * Common HTTP client options.
         */
        httpConfig?: outputs.alerting.ContactPointWebhookHttpConfig;
        /**
         * The HTTP method to use in the request. Defaults to `POST`.
         */
        httpMethod?: string;
        /**
         * The maximum number of alerts to send in a single request. This can be helpful in limiting the size of the request body. The default is 0, which indicates no limit.
         */
        maxAlerts?: number;
        /**
         * Custom message. You can use template variables.
         */
        message?: string;
        /**
         * Optionally provide a templated payload. Overrides 'Message' and 'Title' field.
         */
        payload?: outputs.alerting.ContactPointWebhookPayload;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * Templated title of the message.
         */
        title?: string;
        /**
         * Allows configuring TLS for the webhook notifier.
         */
        tlsConfig?: {
            [key: string]: string;
        };
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The URL to send webhook requests to.
         */
        url: string;
    }
    interface ContactPointWebhookHmacConfig {
        /**
         * The header in which the HMAC signature will be included. Defaults to `X-Grafana-Alerting-Signature`.
         */
        header?: string;
        /**
         * The secret key used to generate the HMAC signature.
         */
        secret: string;
        /**
         * If set, the timestamp will be included in the HMAC signature. The value should be the name of the header to use.
         */
        timestampHeader?: string;
    }
    interface ContactPointWebhookHttpConfig {
        /**
         * OAuth2 configuration options.
         */
        oauth2?: outputs.alerting.ContactPointWebhookHttpConfigOauth2;
    }
    interface ContactPointWebhookHttpConfigOauth2 {
        /**
         * Client ID to use when authenticating.
         */
        clientId: string;
        /**
         * Client secret to use when authenticating.
         */
        clientSecret: string;
        /**
         * Optional parameters to append to the access token request.
         */
        endpointParams?: {
            [key: string]: string;
        };
        /**
         * Optional proxy configuration for OAuth2 requests.
         */
        proxyConfig?: outputs.alerting.ContactPointWebhookHttpConfigOauth2ProxyConfig;
        /**
         * Optional scopes to request when obtaining an access token.
         */
        scopes?: string[];
        /**
         * Optional TLS configuration options for OAuth2 requests.
         */
        tlsConfig?: outputs.alerting.ContactPointWebhookHttpConfigOauth2TlsConfig;
        /**
         * URL for the access token endpoint.
         */
        tokenUrl: string;
    }
    interface ContactPointWebhookHttpConfigOauth2ProxyConfig {
        /**
         * Comma-separated list of addresses that should not use a proxy.
         */
        noProxy?: string;
        /**
         * Optional headers to send to proxies during CONNECT requests.
         */
        proxyConnectHeader?: {
            [key: string]: string;
        };
        /**
         * Use environment HTTP*PROXY, HTTPS*PROXY and NO_PROXY to determine proxies. Defaults to `false`.
         */
        proxyFromEnvironment?: boolean;
        /**
         * HTTP proxy server to use to connect to the targets.
         */
        proxyUrl?: string;
    }
    interface ContactPointWebhookHttpConfigOauth2TlsConfig {
        /**
         * Certificate in PEM format to use when verifying the server's certificate chain.
         */
        caCertificate?: string;
        /**
         * Client certificate in PEM format to use when connecting to the server.
         */
        clientCertificate?: string;
        /**
         * Client key in PEM format to use when connecting to the server.
         */
        clientKey?: string;
        /**
         * Do not verify the server's certificate chain and host name. Defaults to `false`.
         */
        insecureSkipVerify?: boolean;
    }
    interface ContactPointWebhookPayload {
        /**
         * Custom payload template.
         */
        template: string;
        /**
         * Optionally provide a variables to be used in the payload template. They will be available in the template as `.Vars.<variable_name>`.
         */
        vars?: {
            [key: string]: string;
        };
    }
    interface ContactPointWecom {
        /**
         * Agent ID added to the request payload when using APIAPP.
         */
        agentId?: string;
        /**
         * Corp ID used to get token when using APIAPP.
         */
        corpId?: string;
        /**
         * Whether to disable sending resolve messages. Defaults to `false`.
         */
        disableResolveMessage?: boolean;
        /**
         * The templated content of the message to send.
         */
        message?: string;
        /**
         * The type of them message. Supported: markdown, text. Default: text.
         */
        msgType?: string;
        /**
         * The secret key required to obtain access token when using APIAPP. See https://work.weixin.qq.com/wework_admin/frame#apps to create APIAPP.
         */
        secret?: string;
        /**
         * Additional custom properties to attach to the notifier. Defaults to `map[]`.
         */
        settings?: {
            [key: string]: string;
        };
        /**
         * The templated title of the message to send.
         */
        title?: string;
        /**
         * The ID of user that should receive the message. Multiple entries should be separated by '|'. Default: @all.
         */
        toUser?: string;
        /**
         * The UID of the contact point.
         */
        uid: string;
        /**
         * The WeCom webhook URL. Required if using GroupRobot.
         */
        url?: string;
    }
    interface MuteTimingInterval {
        /**
         * An inclusive range of days, 1-31, within a month, e.g. "1" or "14:16". Negative values can be used to represent days counting from the end of a month, e.g. "-1".
         */
        daysOfMonths?: string[];
        /**
         * Provides the time zone for the time interval. Must be a location in the IANA time zone database, e.g "America/New_York"
         */
        location?: string;
        /**
         * An inclusive range of months, either numerical or full calendar month, e.g. "1:3", "december", or "may:august".
         */
        months?: string[];
        /**
         * The time ranges, represented in minutes, during which to mute in a given day.
         */
        times?: outputs.alerting.MuteTimingIntervalTime[];
        /**
         * An inclusive range of weekdays, e.g. "monday" or "tuesday:thursday".
         */
        weekdays?: string[];
        /**
         * A positive inclusive range of years, e.g. "2030" or "2025:2026".
         */
        years?: string[];
    }
    interface MuteTimingIntervalTime {
        /**
         * The time, in hh:mm format, of when the interval should end exclusively.
         */
        end: string;
        /**
         * The time, in hh:mm format, of when the interval should begin inclusively.
         */
        start: string;
    }
    interface NotificationPolicyPolicy {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint?: string;
        /**
         * Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
         */
        continue?: boolean;
        /**
         * A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
         */
        groupBies?: string[];
        /**
         * Minimum time interval between two notifications for the same group. Default is 5 minutes.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
         */
        groupWait?: string;
        /**
         * Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
         */
        matchers?: outputs.alerting.NotificationPolicyPolicyMatcher[];
        /**
         * A list of time intervals to apply to alerts that match this policy to mute them for the specified time.
         */
        muteTimings?: string[];
        /**
         * Routing rules for specific label sets.
         */
        policies?: outputs.alerting.NotificationPolicyPolicyPolicy[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: string;
    }
    interface NotificationPolicyPolicyMatcher {
        /**
         * The name of the label to match against.
         */
        label: string;
        /**
         * The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
         */
        match: string;
        /**
         * The label value to match against.
         */
        value: string;
    }
    interface NotificationPolicyPolicyPolicy {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint?: string;
        /**
         * Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
         */
        continue?: boolean;
        /**
         * A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
         */
        groupBies?: string[];
        /**
         * Minimum time interval between two notifications for the same group. Default is 5 minutes.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
         */
        groupWait?: string;
        /**
         * Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
         */
        matchers?: outputs.alerting.NotificationPolicyPolicyPolicyMatcher[];
        /**
         * A list of time intervals to apply to alerts that match this policy to mute them for the specified time.
         */
        muteTimings?: string[];
        /**
         * Routing rules for specific label sets.
         */
        policies?: outputs.alerting.NotificationPolicyPolicyPolicyPolicy[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: string;
    }
    interface NotificationPolicyPolicyPolicyMatcher {
        /**
         * The name of the label to match against.
         */
        label: string;
        /**
         * The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
         */
        match: string;
        /**
         * The label value to match against.
         */
        value: string;
    }
    interface NotificationPolicyPolicyPolicyPolicy {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint?: string;
        /**
         * Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
         */
        continue?: boolean;
        /**
         * A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
         */
        groupBies?: string[];
        /**
         * Minimum time interval between two notifications for the same group. Default is 5 minutes.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
         */
        groupWait?: string;
        /**
         * Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
         */
        matchers?: outputs.alerting.NotificationPolicyPolicyPolicyPolicyMatcher[];
        /**
         * A list of time intervals to apply to alerts that match this policy to mute them for the specified time.
         */
        muteTimings?: string[];
        /**
         * Routing rules for specific label sets.
         */
        policies?: outputs.alerting.NotificationPolicyPolicyPolicyPolicyPolicy[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: string;
    }
    interface NotificationPolicyPolicyPolicyPolicyMatcher {
        /**
         * The name of the label to match against.
         */
        label: string;
        /**
         * The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
         */
        match: string;
        /**
         * The label value to match against.
         */
        value: string;
    }
    interface NotificationPolicyPolicyPolicyPolicyPolicy {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint?: string;
        /**
         * Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
         */
        continue?: boolean;
        /**
         * A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
         */
        groupBies?: string[];
        /**
         * Minimum time interval between two notifications for the same group. Default is 5 minutes.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
         */
        groupWait?: string;
        /**
         * Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
         */
        matchers?: outputs.alerting.NotificationPolicyPolicyPolicyPolicyPolicyMatcher[];
        /**
         * A list of time intervals to apply to alerts that match this policy to mute them for the specified time.
         */
        muteTimings?: string[];
        /**
         * Routing rules for specific label sets.
         */
        policies?: outputs.alerting.NotificationPolicyPolicyPolicyPolicyPolicyPolicy[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: string;
    }
    interface NotificationPolicyPolicyPolicyPolicyPolicyMatcher {
        /**
         * The name of the label to match against.
         */
        label: string;
        /**
         * The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
         */
        match: string;
        /**
         * The label value to match against.
         */
        value: string;
    }
    interface NotificationPolicyPolicyPolicyPolicyPolicyPolicy {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint?: string;
        /**
         * Whether to continue matching subsequent rules if an alert matches the current rule. Otherwise, the rule will be 'consumed' by the first policy to match it.
         */
        continue?: boolean;
        /**
         * A list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. Required for root policy only. If empty, the parent grouping is used.
         */
        groupBies: string[];
        /**
         * Minimum time interval between two notifications for the same group. Default is 5 minutes.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
         */
        groupWait?: string;
        /**
         * Describes which labels this rule should match. When multiple matchers are supplied, an alert must match ALL matchers to be accepted by this policy. When no matchers are supplied, the rule will match all alert instances.
         */
        matchers?: outputs.alerting.NotificationPolicyPolicyPolicyPolicyPolicyPolicyMatcher[];
        /**
         * A list of time intervals to apply to alerts that match this policy to mute them for the specified time.
         */
        muteTimings?: string[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: string;
    }
    interface NotificationPolicyPolicyPolicyPolicyPolicyPolicyMatcher {
        /**
         * The name of the label to match against.
         */
        label: string;
        /**
         * The operator to apply when matching values of the given label. Allowed operators are `=` for equality, `!=` for negated equality, `=~` for regex equality, and `!~` for negated regex equality.
         */
        match: string;
        /**
         * The label value to match against.
         */
        value: string;
    }
    interface RecordingRuleV0Alpha1Metadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface RecordingRuleV0Alpha1Options {
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface RecordingRuleV0Alpha1Spec {
        /**
         * A sequence of stages that describe the contents of the rule. Each value is a JSON string representing an expression object.
         */
        expressions: {
            [key: string]: string;
        };
        /**
         * Key-value pairs to attach to the recorded metric.
         */
        labels?: {
            [key: string]: string;
        };
        /**
         * The name of the metric to write to.
         */
        metric: string;
        /**
         * Sets whether the recording rule should be paused or not.
         */
        paused?: boolean;
        /**
         * The UID of the datasource to write the metric to.
         */
        targetDatasourceUid: string;
        /**
         * The title of the recording rule.
         */
        title: string;
        /**
         * The trigger configuration for the recording rule.
         */
        trigger?: outputs.alerting.RecordingRuleV0Alpha1SpecTrigger;
    }
    interface RecordingRuleV0Alpha1SpecTrigger {
        /**
         * The interval at which the recording rule should be evaluated.
         */
        interval: 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?: {
            [key: string]: string;
        };
        /**
         * The `refId` of the query node in the `data` field to use as the alert condition.
         */
        condition?: string;
        /**
         * A sequence of stages that describe the contents of the rule.
         */
        datas: outputs.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?: 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?: string;
        /**
         * Sets whether the alert should be paused or not. Defaults to `false`.
         */
        isPaused?: boolean;
        /**
         * The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.
         */
        keepFiringFor?: string;
        /**
         * Key-value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to `map[]`.
         */
        labels?: {
            [key: string]: string;
        };
        /**
         * The number of missing series evaluations that must occur before the rule is considered to be resolved.
         */
        missingSeriesEvalsToResolve?: number;
        /**
         * The name of the alert rule.
         */
        name: 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?: 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?: outputs.alerting.RuleGroupRuleNotificationSettings;
        /**
         * Settings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled.
         */
        record?: outputs.alerting.RuleGroupRuleRecord;
        /**
         * The unique identifier of the alert rule.
         */
        uid: string;
    }
    interface RuleGroupRuleData {
        /**
         * The UID of the datasource being queried, or "-100" if this stage is an expression stage.
         */
        datasourceUid: string;
        /**
         * Custom JSON data to send to the specified datasource when querying.
         */
        model: string;
        /**
         * An optional identifier for the type of query being executed. Defaults to ``.
         */
        queryType?: string;
        /**
         * A unique string to identify this query stage within a rule.
         */
        refId: string;
        /**
         * The time range, relative to when the query is executed, across which to query.
         */
        relativeTimeRange: outputs.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: number;
        /**
         * The number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.
         */
        to: number;
    }
    interface RuleGroupRuleNotificationSettings {
        /**
         * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later
         */
        activeTimings?: string[];
        /**
         * The contact point to route notifications that match this rule to.
         */
        contactPoint: 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?: string[];
        /**
         * Minimum time interval between two notifications for the same group. Default is 5 minutes.
         */
        groupInterval?: string;
        /**
         * Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.
         */
        groupWait?: string;
        /**
         * A list of mute timing names to apply to alerts that match this policy.
         */
        muteTimings?: string[];
        /**
         * Minimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.
         */
        repeatInterval?: string;
    }
    interface RuleGroupRuleRecord {
        /**
         * The ref id of the query node in the data field to use as the source of the metric.
         */
        from: string;
        /**
         * The name of the metric to write to.
         */
        metric: string;
        /**
         * The UID of the datasource to write the metric to.
         */
        targetDatasourceUid?: string;
    }
    namespace v0alpha1 {
        interface AlertRuleMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface AlertRuleOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface AlertRuleSpec {
            /**
             * Key-value pairs of metadata to attach to the alert rule. They add additional information, such as a `summary` or `runbookUrl`, to help identify and investigate alerts.
             */
            annotations?: {
                [key: string]: string;
            };
            /**
             * Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.
             */
            execErrState: string;
            /**
             * A sequence of stages that describe the contents of the rule. Each value is a JSON string representing an expression object.
             */
            expressions: {
                [key: string]: string;
            };
            /**
             * The amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending.
             */
            for?: string;
            /**
             * The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.
             */
            keepFiringFor?: string;
            /**
             * Key-value pairs to attach to the alert rule that can be used in matching, grouping, and routing.
             */
            labels?: {
                [key: string]: string;
            };
            /**
             * The number of missing series evaluations that must occur before the rule is considered to be resolved.
             */
            missingSeriesEvalsToResolve?: number;
            /**
             * Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting.
             */
            noDataState: string;
            /**
             * Notification settings for the rule. If specified, it overrides the notification policies. The flat configuration is deprecated, please specify one of named*routing*tree or simplified*routing
             */
            notificationSettings?: outputs.alerting.v0alpha1.AlertRuleSpecNotificationSettings;
            /**
             * Reference to a panel that this alert rule is associated with. Should be an object with 'dashboard*uid' (string) and 'panel*id' (number) fields.
             */
            panelRef?: {
                [key: string]: string;
            };
            /**
             * Sets whether the rule should be paused or not.
             */
            paused?: boolean;
            /**
             * The title of the alert rule.
             */
            title: string;
            /**
             * The trigger configuration for the alert rule.
             */
            trigger?: outputs.alerting.v0alpha1.AlertRuleSpecTrigger;
        }
        interface AlertRuleSpecNotificationSettings {
            /**
             * Deprecated. A list of time interval names to apply to alerts that match this policy.
             *
             * @deprecated Use `simplified_routing.active_timings` instead.
             */
            activeTimings?: string[];
            /**
             * Deprecated. The contact point to route notifications that match this rule to.
             *
             * @deprecated Use `simplified_routing.contact_point` instead.
             */
            contactPoint?: string;
            /**
             * Deprecated. A list of alert labels to group alerts into notifications by.
             *
             * @deprecated Use `simplified_routing.group_by` instead.
             */
            groupBies?: string[];
            /**
             * Deprecated. Minimum time interval between two notifications for the same group.
             *
             * @deprecated Use `simplified_routing.group_interval` instead.
             */
            groupInterval?: string;
            /**
             * Deprecated. Time to wait to buffer alerts of the same group before sending a notification.
             *
             * @deprecated Use `simplified_routing.group_wait` instead.
             */
            groupWait?: string;
            /**
             * Deprecated. A list of mute timing names to apply to alerts that match this policy.
             *
             * @deprecated Use `simplified_routing.mute_timings` instead.
             */
            muteTimings?: string[];
            /**
             * Route notifications to a specific routing tree.
             */
            namedRoutingTree?: outputs.alerting.v0alpha1.AlertRuleSpecNotificationSettingsNamedRoutingTree;
            /**
             * Deprecated. Minimum time interval for re-sending a notification if an alert is still firing.
             *
             * @deprecated Use `simplified_routing.repeat_interval` instead.
             */
            repeatInterval?: string;
            /**
             * Simplified routing to a contact point with optional grouping and timing overrides.
             */
            simplifiedRouting?: outputs.alerting.v0alpha1.AlertRuleSpecNotificationSettingsSimplifiedRouting;
        }
        interface AlertRuleSpecNotificationSettingsNamedRoutingTree {
            /**
             * The name of the routing tree to use.
             */
            routingTree?: string;
        }
        interface AlertRuleSpecNotificationSettingsSimplifiedRouting {
            /**
             * A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time.
             */
            activeTimings?: string[];
            /**
             * The contact point to route notifications that match this rule to.
             */
            contactPoint?: string;
            /**
             * A list of alert labels to group alerts into notifications by.
             */
            groupBies?: string[];
            /**
             * Minimum time interval between two notifications for the same group.
             */
            groupInterval?: string;
            /**
             * Time to wait to buffer alerts of the same group before sending a notification.
             */
            groupWait?: string;
            /**
             * A list of mute timing names to apply to alerts that match this policy.
             */
            muteTimings?: string[];
            /**
             * Minimum time interval for re-sending a notification if an alert is still firing.
             */
            repeatInterval?: string;
        }
        interface AlertRuleSpecTrigger {
            /**
             * The interval at which the alert rule should be evaluated.
             */
            interval: string;
        }
        interface RecordingRuleMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface RecordingRuleOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface RecordingRuleSpec {
            /**
             * A sequence of stages that describe the contents of the rule. Each value is a JSON string representing an expression object.
             */
            expressions: {
                [key: string]: string;
            };
            /**
             * Key-value pairs to attach to the recorded metric.
             */
            labels?: {
                [key: string]: string;
            };
            /**
             * The name of the metric to write to.
             */
            metric: string;
            /**
             * Sets whether the recording rule should be paused or not.
             */
            paused?: boolean;
            /**
             * The UID of the datasource to write the metric to.
             */
            targetDatasourceUid: string;
            /**
             * The title of the recording rule.
             */
            title: string;
            /**
             * The trigger configuration for the recording rule.
             */
            trigger?: outputs.alerting.v0alpha1.RecordingRuleSpecTrigger;
        }
        interface RecordingRuleSpecTrigger {
            /**
             * The interval at which the recording rule should be evaluated.
             */
            interval: string;
        }
    }
    namespace v1beta1 {
        interface AlertEnrichmentMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface AlertEnrichmentOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface AlertEnrichmentSpec {
            /**
             * UIDs of alert rules this enrichment applies to. If empty, applies to all alert rules.
             */
            alertRuleUids?: string[];
            /**
             * Annotation matchers that an alert must satisfy for this enrichment to apply. Each matcher is an object with: 'type' (string, one of: =, !=, =~, !~), 'name' (string, annotation key to match), 'value' (string, annotation value to compare against, supports regex for =~/!~ operators).
             */
            annotationMatchers?: outputs.alerting.v1beta1.AlertEnrichmentSpecAnnotationMatcher[];
            /**
             * Description of the alert enrichment.
             */
            description: string;
            /**
             * Allow modifying alert enrichment outside of Terraform
             */
            disableProvenance: boolean;
            /**
             * Label matchers that an alert must satisfy for this enrichment to apply. Each matcher is an object with: 'type' (string, one of: =, !=, =~, !~), 'name' (string, label key to match), 'value' (string, label value to compare against, supports regex for =~/!~ operators).
             */
            labelMatchers?: outputs.alerting.v1beta1.AlertEnrichmentSpecLabelMatcher[];
            /**
             * Receiver names to match. If empty, applies to all receivers.
             */
            receivers?: string[];
            /**
             * Enrichment step. Can be repeated multiple times to define a sequence of steps. Each step must contain exactly one enrichment block.
             */
            steps?: outputs.alerting.v1beta1.AlertEnrichmentSpecStep[];
            /**
             * The title of the alert enrichment.
             */
            title: string;
        }
        interface AlertEnrichmentSpecAnnotationMatcher {
            name: string;
            type: string;
            value: string;
        }
        interface AlertEnrichmentSpecLabelMatcher {
            name: string;
            type: string;
            value: string;
        }
        interface AlertEnrichmentSpecStep {
            /**
             * Integrate with Grafana Asserts for enrichment.
             */
            asserts?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepAsserts;
            /**
             * Assign annotations to an alert.
             */
            assign?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepAssign;
            /**
             * Use AI assistant to investigate alerts and add insights.
             */
            assistantInvestigations?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepAssistantInvestigations;
            /**
             * Conditional step with if/then/else.
             */
            conditional?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditional;
            /**
             * Query Grafana data sources and add results to alerts.
             */
            dataSource?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepDataSource;
            /**
             * Generate AI explanation and store in an annotation.
             */
            explain?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepExplain;
            /**
             * Call an external HTTP service for enrichment.
             */
            external?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepExternal;
            /**
             * Analyze alerts for patterns and insights.
             */
            sift?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepSift;
        }
        interface AlertEnrichmentSpecStepAsserts {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepAssign {
            /**
             * Map of annotation names to values to set on matching alerts.
             */
            annotations?: {
                [key: string]: string;
            };
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepAssistantInvestigations {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditional {
            /**
             * Steps when condition is false.
             */
            else?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElse;
            /**
             * Condition to evaluate.
             */
            if?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalIf;
            /**
             * Steps when condition is true.
             */
            then?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThen;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElse {
            steps?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStep[];
        }
        interface AlertEnrichmentSpecStepConditionalElseStep {
            /**
             * Integrate with Grafana Asserts for enrichment.
             */
            asserts?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepAsserts;
            /**
             * Assign annotations to an alert.
             */
            assign?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepAssign;
            /**
             * Use AI assistant to investigate alerts and add insights.
             */
            assistantInvestigations?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepAssistantInvestigations;
            /**
             * Query Grafana data sources and add results to alerts.
             */
            dataSource?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepDataSource;
            /**
             * Generate AI explanation and store in an annotation.
             */
            explain?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepExplain;
            /**
             * Call an external HTTP service for enrichment.
             */
            external?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepExternal;
            /**
             * Analyze alerts for patterns and insights.
             */
            sift?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepSift;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepAsserts {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepAssign {
            /**
             * Map of annotation names to values to set on matching alerts.
             */
            annotations?: {
                [key: string]: string;
            };
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepAssistantInvestigations {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepDataSource {
            /**
             * Logs query configuration for querying log data sources.
             */
            logsQuery?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepDataSourceLogsQuery;
            /**
             * Raw query configuration for advanced data source queries.
             */
            rawQuery?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalElseStepDataSourceRawQuery;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepDataSourceLogsQuery {
            /**
             * Data source type (e.g., 'loki').
             */
            dataSourceType?: string;
            /**
             * UID of the data source to query.
             */
            dataSourceUid?: string;
            /**
             * Log query expression to execute.
             */
            expr?: string;
            /**
             * Maximum number of log lines to include. Defaults to 3.
             */
            maxLines: number;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepDataSourceRawQuery {
            /**
             * Reference ID for correlating queries.
             */
            refId: string;
            /**
             * Raw request payload for the data source query.
             */
            request?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepExplain {
            /**
             * Annotation name to set the explanation in. Defaults to 'ai_explanation'.
             */
            annotation: string;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepExternal {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
            /**
             * HTTP endpoint URL to call for enrichment
             */
            url?: string;
        }
        interface AlertEnrichmentSpecStepConditionalElseStepSift {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalIf {
            /**
             * Annotation matchers for the condition.
             */
            annotationMatchers?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalIfAnnotationMatcher[];
            /**
             * Data source condition.
             */
            dataSourceCondition?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalIfDataSourceCondition;
            /**
             * Label matchers for the condition.
             */
            labelMatchers?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalIfLabelMatcher[];
        }
        interface AlertEnrichmentSpecStepConditionalIfAnnotationMatcher {
            name: string;
            type: string;
            value: string;
        }
        interface AlertEnrichmentSpecStepConditionalIfDataSourceCondition {
            /**
             * Data source request payload.
             */
            request?: string;
        }
        interface AlertEnrichmentSpecStepConditionalIfLabelMatcher {
            name: string;
            type: string;
            value: string;
        }
        interface AlertEnrichmentSpecStepConditionalThen {
            steps?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStep[];
        }
        interface AlertEnrichmentSpecStepConditionalThenStep {
            /**
             * Integrate with Grafana Asserts for enrichment.
             */
            asserts?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepAsserts;
            /**
             * Assign annotations to an alert.
             */
            assign?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepAssign;
            /**
             * Use AI assistant to investigate alerts and add insights.
             */
            assistantInvestigations?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepAssistantInvestigations;
            /**
             * Query Grafana data sources and add results to alerts.
             */
            dataSource?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepDataSource;
            /**
             * Generate AI explanation and store in an annotation.
             */
            explain?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepExplain;
            /**
             * Call an external HTTP service for enrichment.
             */
            external?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepExternal;
            /**
             * Analyze alerts for patterns and insights.
             */
            sift?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepSift;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepAsserts {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepAssign {
            /**
             * Map of annotation names to values to set on matching alerts.
             */
            annotations?: {
                [key: string]: string;
            };
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepAssistantInvestigations {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepDataSource {
            /**
             * Logs query configuration for querying log data sources.
             */
            logsQuery?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepDataSourceLogsQuery;
            /**
             * Raw query configuration for advanced data source queries.
             */
            rawQuery?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepConditionalThenStepDataSourceRawQuery;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepDataSourceLogsQuery {
            /**
             * Data source type (e.g., 'loki').
             */
            dataSourceType?: string;
            /**
             * UID of the data source to query.
             */
            dataSourceUid?: string;
            /**
             * Log query expression to execute.
             */
            expr?: string;
            /**
             * Maximum number of log lines to include. Defaults to 3.
             */
            maxLines: number;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepDataSourceRawQuery {
            /**
             * Reference ID for correlating queries.
             */
            refId: string;
            /**
             * Raw request payload for the data source query.
             */
            request?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepExplain {
            /**
             * Annotation name to set the explanation in. Defaults to 'ai_explanation'.
             */
            annotation: string;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepExternal {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
            /**
             * HTTP endpoint URL to call for enrichment
             */
            url?: string;
        }
        interface AlertEnrichmentSpecStepConditionalThenStepSift {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepDataSource {
            /**
             * Logs query configuration for querying log data sources.
             */
            logsQuery?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepDataSourceLogsQuery;
            /**
             * Raw query configuration for advanced data source queries.
             */
            rawQuery?: outputs.alerting.v1beta1.AlertEnrichmentSpecStepDataSourceRawQuery;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepDataSourceLogsQuery {
            /**
             * Data source type (e.g., 'loki').
             */
            dataSourceType?: string;
            /**
             * UID of the data source to query.
             */
            dataSourceUid?: string;
            /**
             * Log query expression to execute.
             */
            expr?: string;
            /**
             * Maximum number of log lines to include. Defaults to 3.
             */
            maxLines: number;
        }
        interface AlertEnrichmentSpecStepDataSourceRawQuery {
            /**
             * Reference ID for correlating queries.
             */
            refId: string;
            /**
             * Raw request payload for the data source query.
             */
            request?: string;
        }
        interface AlertEnrichmentSpecStepExplain {
            /**
             * Annotation name to set the explanation in. Defaults to 'ai_explanation'.
             */
            annotation: string;
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface AlertEnrichmentSpecStepExternal {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
            /**
             * HTTP endpoint URL to call for enrichment
             */
            url?: string;
        }
        interface AlertEnrichmentSpecStepSift {
            /**
             * Maximum execution time (e.g., '30s', '1m')
             */
            timeout?: string;
        }
        interface NotificationsInhibitionRuleMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface NotificationsInhibitionRuleOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface NotificationsInhibitionRuleSpec {
            /**
             * Labels that must have equal values in source and target alerts for the inhibition to take effect.
             */
            equals?: string[];
            /**
             * Matchers that must be satisfied for an alert to be a source of inhibition.
             */
            sourceMatchers?: outputs.alerting.v1beta1.NotificationsInhibitionRuleSpecSourceMatcher[];
            /**
             * Matchers that must be satisfied for an alert to be inhibited.
             */
            targetMatchers?: outputs.alerting.v1beta1.NotificationsInhibitionRuleSpecTargetMatcher[];
        }
        interface NotificationsInhibitionRuleSpecSourceMatcher {
            label: string;
            type: string;
            value: string;
        }
        interface NotificationsInhibitionRuleSpecTargetMatcher {
            label: string;
            type: string;
            value: string;
        }
    }
}
export declare namespace apps {
    namespace v0alpha1 {
        interface PlaylistMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface PlaylistOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface PlaylistSpec {
            /**
             * The interval of the playlist.
             */
            interval?: string;
            /**
             * The items of the playlist.
             */
            items: outputs.apps.v0alpha1.PlaylistSpecItem[];
            /**
             * The title of the playlist.
             */
            title: string;
        }
        interface PlaylistSpecItem {
            type: string;
            value: string;
        }
        interface ProvisioningConnectionMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface ProvisioningConnectionOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface ProvisioningConnectionSecure {
            /**
             * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
             * Private key for GitHub App authentication.
             */
            privateKey?: {
                [key: string]: string;
            };
            /**
             * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
             * Access token.
             */
            token?: {
                [key: string]: string;
            };
        }
        interface ProvisioningConnectionSpec {
            /**
             * Connection description.
             */
            description?: string;
            /**
             * GitHub App configuration.
             */
            github?: outputs.apps.v0alpha1.ProvisioningConnectionSpecGithub;
            /**
             * Display name shown in the UI.
             */
            title: string;
            /**
             * Connection provider type.
             */
            type: string;
            /**
             * Provider URL.
             */
            url?: string;
        }
        interface ProvisioningConnectionSpecGithub {
            /**
             * GitHub App ID.
             */
            appId: string;
            /**
             * GitHub App installation ID.
             */
            installationId: string;
        }
        interface ProvisioningRepositoryMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface ProvisioningRepositoryOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface ProvisioningRepositorySecure {
            /**
             * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
             * Token for repository authentication.
             */
            token?: {
                [key: string]: string;
            };
            /**
             * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
             * Webhook secret.
             */
            webhookSecret?: {
                [key: string]: string;
            };
        }
        interface ProvisioningRepositorySpec {
            /**
             * Bitbucket repository configuration.
             */
            bitbucket?: outputs.apps.v0alpha1.ProvisioningRepositorySpecBitbucket;
            /**
             * Connection resource reference.
             */
            connection?: outputs.apps.v0alpha1.ProvisioningRepositorySpecConnection;
            /**
             * Repository description.
             */
            description?: string;
            /**
             * Generic git repository configuration.
             */
            git?: outputs.apps.v0alpha1.ProvisioningRepositorySpecGit;
            /**
             * GitHub repository configuration.
             */
            github?: outputs.apps.v0alpha1.ProvisioningRepositorySpecGithub;
            /**
             * GitLab repository configuration.
             */
            gitlab?: outputs.apps.v0alpha1.ProvisioningRepositorySpecGitlab;
            /**
             * Local filesystem repository configuration.
             */
            local?: outputs.apps.v0alpha1.ProvisioningRepositorySpecLocal;
            /**
             * Sync configuration.
             */
            sync?: outputs.apps.v0alpha1.ProvisioningRepositorySpecSync;
            /**
             * Display name shown in the UI.
             */
            title: string;
            /**
             * Repository provider type: local, github, git, bitbucket, or gitlab.
             */
            type: string;
            /**
             * Webhook delivery configuration.
             */
            webhook?: outputs.apps.v0alpha1.ProvisioningRepositorySpecWebhook;
            /**
             * Allowed change workflows: write, branch.
             */
            workflows?: string[];
        }
        interface ProvisioningRepositorySpecBitbucket {
            /**
             * Branch to sync.
             */
            branch?: string;
            /**
             * Optional subdirectory path.
             */
            path?: string;
            /**
             * Username for PAT auth.
             */
            tokenUser?: string;
            /**
             * Repository URL.
             */
            url?: string;
        }
        interface ProvisioningRepositorySpecConnection {
            /**
             * Connection resource name.
             */
            name?: string;
        }
        interface ProvisioningRepositorySpecGit {
            /**
             * Branch to sync.
             */
            branch?: string;
            /**
             * Optional subdirectory path.
             */
            path?: string;
            /**
             * Username for PAT auth.
             */
            tokenUser?: string;
            /**
             * Repository URL.
             */
            url?: string;
        }
        interface ProvisioningRepositorySpecGithub {
            /**
             * Branch to sync.
             */
            branch?: string;
            /**
             * Whether to generate dashboard previews.
             */
            generateDashboardPreviews?: boolean;
            /**
             * Optional subdirectory path.
             */
            path?: string;
            /**
             * Repository URL.
             */
            url?: string;
        }
        interface ProvisioningRepositorySpecGitlab {
            /**
             * Branch to sync.
             */
            branch?: string;
            /**
             * Optional subdirectory path.
             */
            path?: string;
            /**
             * Repository URL.
             */
            url?: string;
        }
        interface ProvisioningRepositorySpecLocal {
            /**
             * Filesystem path.
             */
            path?: string;
        }
        interface ProvisioningRepositorySpecSync {
            /**
             * Whether sync is enabled.
             */
            enabled: boolean;
            /**
             * Sync interval in seconds.
             */
            intervalSeconds?: number;
            /**
             * Sync target: instance or folder.
             */
            target: string;
        }
        interface ProvisioningRepositorySpecWebhook {
            /**
             * Optional public webhook base URL override used when incoming webhook delivery must target a different host than the Grafana UI URL.
             */
            baseUrl?: string;
        }
    }
    namespace v1 {
        interface PlaylistMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface PlaylistOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface PlaylistSpec {
            /**
             * The interval of the playlist.
             */
            interval?: string;
            /**
             * The items of the playlist.
             */
            items: outputs.apps.v1.PlaylistSpecItem[];
            /**
             * The title of the playlist.
             */
            title: string;
        }
        interface PlaylistSpecItem {
            type: string;
            value: string;
        }
    }
    namespace v1beta1 {
        interface DashboardMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface DashboardOptions {
            /**
             * Set to true to allow editing the resource from the Grafana UI. By default, resources managed by Terraform cannot be edited in the UI. Enabling this option will cause divergence between the Terraform configuration and the resource in Grafana.
             */
            allowUiUpdates?: boolean;
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface DashboardSpec {
            /**
             * The JSON representation of the dashboard spec.
             */
            json: string;
            /**
             * The tags of the dashboard. If not set, the tags will be derived from the JSON spec.
             */
            tags?: string[];
            /**
             * The title of the dashboard. If not set, the title will be derived from the JSON spec.
             */
            title?: string;
        }
    }
    namespace v2 {
        interface DashboardMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface DashboardOptions {
            /**
             * Set to true to allow editing the resource from the Grafana UI. By default, resources managed by Terraform cannot be edited in the UI. Enabling this option will cause divergence between the Terraform configuration and the resource in Grafana.
             */
            allowUiUpdates?: boolean;
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface DashboardSpec {
            /**
             * The JSON representation of the dashboard v2 spec. Must be the spec object only — not the full Kubernetes envelope. Use: json = jsonencode(jsondecode(file("dashboard.json")).spec)
             */
            json: string;
            /**
             * The tags of the dashboard. If not set, the tags will be derived from the JSON spec.
             */
            tags?: string[];
            /**
             * The title of the dashboard. If not set, the title will be derived from the JSON spec.
             */
            title?: string;
        }
    }
    namespace v2beta1 {
        interface DashboardMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface DashboardOptions {
            /**
             * Set to true to allow editing the resource from the Grafana UI. By default, resources managed by Terraform cannot be edited in the UI. Enabling this option will cause divergence between the Terraform configuration and the resource in Grafana.
             */
            allowUiUpdates?: boolean;
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface DashboardSpec {
            /**
             * The JSON representation of the dashboard v2beta1 spec. Must be the spec object only — not the full Kubernetes envelope. Use: json = jsonencode(jsondecode(file("dashboard.json")).spec)
             */
            json: string;
            /**
             * The tags of the dashboard. If not set, the tags will be derived from the JSON spec.
             */
            tags?: string[];
            /**
             * The title of the dashboard. If not set, the title will be derived from the JSON spec.
             */
            title?: string;
        }
    }
}
export declare namespace assert {
    interface CustomModelRulesRules {
        /**
         * List of entities to define in the custom model rules.
         */
        entities: outputs.assert.CustomModelRulesRulesEntity[];
    }
    interface CustomModelRulesRulesEntity {
        /**
         * List of queries that define this entity.
         */
        definedBies: outputs.assert.CustomModelRulesRulesEntityDefinedBy[];
        /**
         * Whether this entity is disabled.
         */
        disabled?: boolean;
        /**
         * List of enrichment sources for the entity.
         */
        enrichedBies?: string[];
        /**
         * Lookup mappings for the entity.
         */
        lookup?: {
            [key: string]: string;
        };
        /**
         * The name of the entity.
         */
        name: string;
        /**
         * Scope labels for the entity.
         */
        scope?: {
            [key: string]: string;
        };
        /**
         * The type of the entity (e.g., Service, Pod, Namespace).
         */
        type: string;
    }
    interface CustomModelRulesRulesEntityDefinedBy {
        /**
         * Whether this rule is disabled. When true, only the 'query' field is used to match an existing rule to disable; other fields are ignored.
         */
        disabled?: boolean;
        /**
         * Label value mappings for the query.
         */
        labelValues?: {
            [key: string]: string;
        };
        /**
         * Literal value mappings for the query.
         */
        literals?: {
            [key: string]: string;
        };
        /**
         * Metric value for the query.
         */
        metricValue?: string;
        /**
         * The Prometheus query that defines this entity.
         */
        query: string;
    }
    interface LogConfigMatch {
        /**
         * Operation to use for matching. One of: =, <>, <, >, <=, >=, IS NULL, IS NOT NULL, STARTS WITH, CONTAINS.
         */
        op: string;
        /**
         * Entity property to match.
         */
        property: string;
        /**
         * Values to match against.
         */
        values: string[];
    }
    interface ProfileConfigMatch {
        /**
         * Operation to use for matching. One of: =, <>, <, >, <=, >=, IS NULL, IS NOT NULL, STARTS WITH, CONTAINS.
         */
        op: string;
        /**
         * Entity property to match.
         */
        property: string;
        /**
         * Values to match against.
         */
        values: string[];
    }
    interface PromRuleFileGroup {
        /**
         * Evaluation interval for this group (e.g., '30s', '1m'). If not specified, uses the global evaluation interval.
         */
        interval?: string;
        /**
         * The name of the rule group (e.g., 'latency_monitoring').
         */
        name: string;
        /**
         * List of Prometheus rules in this group.
         */
        rules: outputs.assert.PromRuleFileGroupRule[];
    }
    interface PromRuleFileGroupRule {
        /**
         * Whether this specific rule is active. This field is read-only and controlled by the API.
         */
        active: boolean;
        /**
         * The name of the alert for alerting rules. Either 'record' or 'alert' must be specified, but not both.
         */
        alert?: string;
        /**
         * Annotations to add to alerts (e.g., summary, description).
         */
        annotations?: {
            [key: string]: string;
        };
        /**
         * List of group names where this rule should be disabled. Useful for conditional rule enablement.
         */
        disableInGroups?: string[];
        /**
         * How long the condition must be true before firing the alert (e.g., '5m'). Only applicable for alerting rules. Maps to 'for' in Prometheus.
         */
        duration?: string;
        /**
         * The PromQL expression to evaluate.
         */
        expr: string;
        /**
         * Labels to attach to the resulting time series or alert.
         */
        labels?: {
            [key: string]: string;
        };
        /**
         * The name of the time series to output for recording rules. Either 'record' or 'alert' must be specified, but not both.
         */
        record?: string;
    }
    interface StackDataset {
        /**
         * List of vendors to disable for this dataset.
         */
        disabledVendors?: string[];
        /**
         * Filter groups for this dataset. Use when you need custom label mappings.
         */
        filterGroups?: outputs.assert.StackDatasetFilterGroup[];
        /**
         * The dataset type. Available types: `kubernetes`, `otel` (App O11y), `prometheus`, `aws`. Note: `kubernetes` requires K8s Monitoring to be enabled, and `otel` requires Application Observability to be enabled on the stack.
         */
        type: string;
    }
    interface StackDatasetFilterGroup {
        /**
         * The metric label name used for environment (e.g., `env`, `environment`, `deploymentEnvironment`). Defaults to standard labels if not set.
         */
        envLabel?: string;
        /**
         * Specific values of the environment label to match.
         */
        envLabelValues?: string[];
        /**
         * A friendly name for the environment.
         */
        envName?: string;
        /**
         * Additional metric filters.
         */
        filters?: outputs.assert.StackDatasetFilterGroupFilter[];
        /**
         * The metric label name used for site/cluster.
         */
        siteLabel?: string;
        /**
         * Specific values of the site label to match.
         */
        siteLabelValues?: string[];
    }
    interface StackDatasetFilterGroupFilter {
        /**
         * The label name to filter on.
         */
        name: string;
        /**
         * The filter operator (e.g., `=`, `!=`, `=~`, `!~`).
         */
        operator: string;
        /**
         * The values to match.
         */
        values: string[];
    }
    interface ThresholdsHealthThreshold {
        /**
         * Optional alert category label for the health threshold.
         */
        alertCategory?: string;
        /**
         * Assertion name.
         */
        assertionName: string;
        /**
         * Entity type for the health threshold (e.g., Service, Pod, Namespace, Volume).
         */
        entityType: string;
        /**
         * Prometheus expression.
         */
        expression: string;
    }
    interface ThresholdsRequestThreshold {
        /**
         * Assertion name (e.g., RequestRateAnomaly, ErrorRatioBreach).
         */
        assertionName: string;
        /**
         * Entity name the threshold applies to.
         */
        entityName: string;
        /**
         * Request context (e.g., path or context identifier).
         */
        requestContext: string;
        /**
         * Request type (e.g., inbound/outbound).
         */
        requestType: string;
        /**
         * Threshold value.
         */
        value: number;
    }
    interface ThresholdsResourceThreshold {
        /**
         * Assertion name (e.g., Saturation, ResourceRateBreach).
         */
        assertionName: string;
        /**
         * Container name.
         */
        containerName: string;
        /**
         * Resource type (e.g., container/pod/node).
         */
        resourceType: string;
        /**
         * Severity (warning or critical).
         */
        severity: string;
        /**
         * Data source for the threshold (e.g., metrics/logs).
         */
        source: string;
        /**
         * Threshold value.
         */
        value: number;
    }
    interface TraceConfigMatch {
        /**
         * Operation to use for matching. One of: =, <>, <, >, <=, >=, IS NULL, IS NOT NULL, STARTS WITH, CONTAINS.
         */
        op: string;
        /**
         * Entity property to match.
         */
        property: string;
        /**
         * Values to match against.
         */
        values: string[];
    }
}
export declare namespace cloud {
    interface AccessPolicyCondition {
        /**
         * Conditions that apply to the access policy,such as IP Allow lists.
         */
        allowedSubnets: string[];
    }
    interface AccessPolicyRealm {
        /**
         * The identifier of the org or stack. For orgs, this is the slug, for stacks, this is the stack ID.
         */
        identifier: string;
        labelPolicies?: outputs.cloud.AccessPolicyRealmLabelPolicy[];
        /**
         * Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
         */
        type: string;
    }
    interface AccessPolicyRealmLabelPolicy {
        /**
         * The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
         */
        selector: string;
    }
    interface GetAccessPoliciesAccessPolicy {
        displayName: string;
        id: string;
        name: string;
        region: string;
        status: string;
    }
    interface GetPrivateDataSourceConnectNetworksPrivateDataSourceConnectNetwork {
        displayName: string;
        id: string;
        name: string;
        region: string;
        status: string;
    }
    interface ProductActivationAppO11yConfigV1Alpha1Metadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface ProductActivationAppO11yConfigV1Alpha1Options {
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface ProductActivationAppO11yConfigV1Alpha1Spec {
        /**
         * Whether application observability is enabled.
         */
        enabled: boolean;
    }
    interface ProductActivationK8sO11yConfigV1Alpha1Metadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface ProductActivationK8sO11yConfigV1Alpha1Options {
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface ProductActivationK8sO11yConfigV1Alpha1Spec {
        /**
         * Whether Kubernetes observability is enabled.
         */
        enabled: boolean;
    }
    namespace v1alpha1 {
        interface ProductActivationAppO11yConfigMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface ProductActivationAppO11yConfigOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface ProductActivationAppO11yConfigSpec {
            /**
             * Whether application observability is enabled.
             */
            enabled: boolean;
        }
        interface ProductActivationDbO11yConfigMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface ProductActivationDbO11yConfigOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface ProductActivationDbO11yConfigSpec {
            /**
             * Whether database observability is enabled.
             */
            enabled: boolean;
        }
        interface ProductActivationK8sO11yConfigMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface ProductActivationK8sO11yConfigOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface ProductActivationK8sO11yConfigSpec {
            /**
             * Whether Kubernetes observability is enabled.
             */
            enabled: boolean;
        }
    }
}
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?: outputs.cloudProvider.AwsCloudwatchScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name: string;
        /**
         * The interval in seconds to scrape the custom namespace. Defaults to `300`.
         */
        scrapeIntervalSeconds: number;
    }
    interface AwsCloudwatchScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: string;
        /**
         * A set of statistics to scrape.
         */
        statistics: 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?: outputs.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: 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?: outputs.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. Defaults to `300`.
         */
        scrapeIntervalSeconds: number;
        /**
         * A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
         */
        tagsToAddToMetrics: string[];
    }
    interface AwsCloudwatchScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: string;
        /**
         * A set of statistics to scrape.
         */
        statistics: string[];
    }
    interface AwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: string;
        /**
         * The value of the tag filter.
         */
        value: string;
    }
    interface AwsResourceMetadataScrapeJobService {
        /**
         * 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: 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?: outputs.cloudProvider.AwsResourceMetadataScrapeJobServiceResourceDiscoveryTagFilter[];
        /**
         * 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. Defaults to `300`.
         */
        scrapeIntervalSeconds: number;
    }
    interface AwsResourceMetadataScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: string;
        /**
         * The value of the tag filter.
         */
        value: string;
    }
    interface AzureCredentialAutoDiscoveryConfiguration {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations: outputs.cloudProvider.AzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration[];
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId: string;
    }
    interface AzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration {
        metricConfigurations: outputs.cloudProvider.AzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration[];
        resourceTypeName: string;
    }
    interface AzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration {
        aggregations: string[];
        dimensions: string[];
        name: string;
    }
    interface AzureCredentialResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: string;
        /**
         * The value of the tag filter.
         */
        value: 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?: outputs.cloudProvider.GetAwsCloudwatchScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name: string;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds: number;
    }
    interface GetAwsCloudwatchScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: string;
        /**
         * A set of statistics to scrape.
         */
        statistics: 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?: outputs.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?: outputs.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 GetAwsCloudwatchScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: string;
        /**
         * A set of statistics to scrape.
         */
        statistics: string[];
    }
    interface GetAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: string;
        /**
         * The value of the tag filter.
         */
        value: string;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJob {
        /**
         * The ID assigned by the Grafana Cloud Provider API to an AWS Account resource that should be associated with this AWS 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 AWS 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?: outputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespace[];
        /**
         * When the AWS CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
         */
        disabledReason: string;
        /**
         * Whether the AWS 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;
        /**
         * The Terraform Resource ID. This has the format "{{ stackId }}:{{ name }}".
         */
        id: string;
        /**
         * The name of the AWS CloudWatch Scrape Job. Part of the Terraform Resource ID.
         */
        name: string;
        /**
         * The set of AWS region names that this AWS 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 AWS CloudWatch Scrape Job.
         */
        regionsSubsetOverrideUsed: boolean;
        /**
         * The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this AWS CloudWatch Scrape Job.
         */
        roleArn: string;
        /**
         * One or more configuration blocks to dictate what this AWS 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?: outputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobService[];
        /**
         * The Stack ID of the Grafana Cloud instance. Part of the Terraform Resource ID.
         */
        stackId: string;
        /**
         * A set of static labels to add to all metrics exported by this scrape job.
         */
        staticLabels: {
            [key: string]: 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?: outputs.cloudProvider.GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetric[];
        /**
         * The name of the custom namespace to scrape.
         */
        name: string;
        /**
         * The interval in seconds to scrape the custom namespace.
         */
        scrapeIntervalSeconds: number;
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: string;
        /**
         * A set of statistics to scrape.
         */
        statistics: 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?: outputs.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?: outputs.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 GetAwsCloudwatchScrapeJobsScrapeJobServiceMetric {
        /**
         * The name of the metric to scrape.
         */
        name: string;
        /**
         * A set of statistics to scrape.
         */
        statistics: string[];
    }
    interface GetAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: string;
        /**
         * The value of the tag filter.
         */
        value: string;
    }
    interface GetAzureCredentialAutoDiscoveryConfiguration {
        /**
         * The list of resource type configurations.
         */
        resourceTypeConfigurations: outputs.cloudProvider.GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration[];
        /**
         * The subscription ID of the Azure account.
         */
        subscriptionId: string;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfiguration {
        metricConfigurations: outputs.cloudProvider.GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration[];
        resourceTypeName: string;
    }
    interface GetAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfiguration {
        aggregations: string[];
        dimensions: string[];
        name: string;
    }
    interface GetAzureCredentialResourceDiscoveryTagFilter {
        /**
         * The key of the tag filter.
         */
        key: string;
        /**
         * The value of the tag filter.
         */
        value: string;
    }
}
export declare namespace enterprise {
    interface DataSourcePermissionPermission {
        /**
         * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
         */
        builtInRole?: string;
        /**
         * Permission to associate with item. Options: `Query`, `Edit` or `Admin` (`Admin` can only be used with Grafana v10.3.0+).
         */
        permission: string;
        /**
         * ID of the team to manage permissions for. Defaults to `0`.
         */
        teamId?: string;
        /**
         * ID of the user or service account to manage permissions for. Defaults to `0`.
         */
        userId?: string;
    }
    interface GetRolePermission {
        /**
         * Specific action users granted with the role will be allowed to perform (for example: `users:read`)
         */
        action: string;
        /**
         * Scope to restrict the action to a set of resources (for example: `users:*` or `roles:customrole1`)
         */
        scope?: string;
    }
    interface ReportDashboard {
        /**
         * Add report variables to the dashboard. Values should be separated by commas.
         */
        reportVariables?: {
            [key: string]: string;
        };
        /**
         * Time range of the report.
         */
        timeRange?: outputs.enterprise.ReportDashboardTimeRange;
        /**
         * Dashboard uid.
         */
        uid: string;
    }
    interface ReportDashboardTimeRange {
        /**
         * Start of the time range.
         */
        from?: string;
        /**
         * End of the time range.
         */
        to?: string;
    }
    interface ReportSchedule {
        /**
         * Custom interval of the report.
         * **Note:** This field is only available when frequency is set to `custom`.
         */
        customInterval?: 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: string;
        /**
         * Frequency of the report. Allowed values: `never`, `once`, `hourly`, `daily`, `weekly`, `monthly`, `custom`.
         */
        frequency: string;
        /**
         * Send the report on the last day of the month
         */
        lastDayOfMonth: 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: string;
        /**
         * Set the report time zone.
         */
        timezone: string;
        /**
         * Whether to send the report only on work days.
         */
        workdaysOnly: boolean;
    }
    interface RolePermission {
        /**
         * Specific action users granted with the role will be allowed to perform (for example: `users:read`)
         */
        action: string;
        /**
         * Scope to restrict the action to a set of resources (for example: `users:*` or `roles:customrole1`) Defaults to ``.
         */
        scope?: string;
    }
    namespace v1beta1 {
        interface SecretKeeperActivationMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface SecretKeeperMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface SecretKeeperOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface SecretKeeperSpec {
            /**
             * AWS Secrets Manager configuration.
             */
            aws?: outputs.enterprise.v1beta1.SecretKeeperSpecAws;
            /**
             * Keeper description.
             */
            description?: string;
        }
        interface SecretKeeperSpecAws {
            /**
             * IAM role assumption configuration.
             */
            assumeRole?: outputs.enterprise.v1beta1.SecretKeeperSpecAwsAssumeRole;
            /**
             * AWS region.
             */
            region: string;
        }
        interface SecretKeeperSpecAwsAssumeRole {
            /**
             * Assume role ARN.
             */
            assumeRoleArn?: string;
            /**
             * Assume role external ID.
             */
            externalId?: string;
        }
        interface SecretSecureValueMetadata {
            /**
             * Annotations of the resource.
             */
            annotations: {
                [key: string]: string;
            };
            /**
             * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
             */
            folderUid?: string;
            /**
             * The unique identifier of the resource.
             */
            uid: string;
            /**
             * The full URL of the resource.
             */
            url: string;
            /**
             * The globally unique identifier of a resource, used by the API for tracking.
             */
            uuid: string;
            /**
             * The version of the resource.
             */
            version: string;
        }
        interface SecretSecureValueOptions {
            /**
             * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
             */
            managerIdentity?: string;
            /**
             * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
             */
            overwrite?: boolean;
        }
        interface SecretSecureValueSpec {
            /**
             * List of decrypters allowed to read this secure value.
             */
            decrypters?: string[];
            /**
             * Secure value description.
             */
            description?: string;
            /**
             * Reference to an existing secret managed by the keeper.
             */
            ref?: string;
            /**
             * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
             * Plaintext value to store. This value is write-only.
             */
            value?: string;
            /**
             * Hash of the stored plaintext value.
             */
            valueHash: string;
        }
    }
}
export declare namespace experimental {
    interface AppsDashboardMetadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface AppsDashboardOptions {
        /**
         * Set to true to allow editing the resource from the Grafana UI. By default, resources managed by Terraform cannot be edited in the UI. Enabling this option will cause divergence between the Terraform configuration and the resource in Grafana.
         */
        allowUiUpdates?: boolean;
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface AppsDashboardSpec {
        /**
         * The JSON representation of the dashboard spec.
         */
        json: string;
        /**
         * The tags of the dashboard. If not set, the tags will be derived from the JSON spec.
         */
        tags?: string[];
        /**
         * The title of the dashboard. If not set, the title will be derived from the JSON spec.
         */
        title?: string;
    }
    interface AppsPlaylistV0Alpha1Metadata {
        /**
         * Annotations of the resource.
         */
        annotations: {
            [key: string]: string;
        };
        /**
         * The UID of the folder to save the resource in. For example, it's supported for dashboards and folders. To know if it's supported for the specific resource you're using check the documentation.
         */
        folderUid?: string;
        /**
         * The unique identifier of the resource.
         */
        uid: string;
        /**
         * The full URL of the resource.
         */
        url: string;
        /**
         * The globally unique identifier of a resource, used by the API for tracking.
         */
        uuid: string;
        /**
         * The version of the resource.
         */
        version: string;
    }
    interface AppsPlaylistV0Alpha1Options {
        /**
         * Override the identity stamped on this resource's manager metadata. Defaults to "grafana-terraform-provider". Use this to distinguish resources managed by different Pulumi Stacks targeting the same Grafana instance.
         */
        managerIdentity?: string;
        /**
         * Set to true if you want to overwrite existing resource with newer version, same resource title in folder or same resource uid.
         */
        overwrite?: boolean;
    }
    interface AppsPlaylistV0Alpha1Spec {
        /**
         * The interval of the playlist.
         */
        interval?: string;
        /**
         * The items of the playlist.
         */
        items: outputs.experimental.AppsPlaylistV0Alpha1SpecItem[];
        /**
         * The title of the playlist.
         */
        title: string;
    }
    interface AppsPlaylistV0Alpha1SpecItem {
        type: string;
        value: string;
    }
}
export declare namespace fleetManagement {
    interface GetCollectorsCollector {
        collectorType: string;
        enabled: boolean;
        id: string;
        localAttributes: {
            [key: string]: string;
        };
        remoteAttributes: {
            [key: string]: string;
        };
    }
}
export declare namespace k6 {
    interface GetLoadTestsLoadTest {
        baselineTestRunId: string;
        created: string;
        id: string;
        name: string;
        projectId: string;
        script: string;
        updated: string;
    }
    interface GetProjectsProject {
        created: string;
        grafanaFolderUid: string;
        id: string;
        isDefault: boolean;
        name: string;
        updated: string;
    }
    interface GetScheduleCron {
        /**
         * A cron expression with exactly 5 entries, or an alias. The allowed aliases are: `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@hourly`.
         */
        schedule: string;
        /**
         * The timezone of the cron expression. For example, `UTC` or `Europe/London`.
         */
        timezone: string;
    }
    interface GetScheduleRecurrenceRule {
        /**
         * The weekdays when the 'WEEKLY' recurrence will be applied (e.g., ['MO', 'WE', 'FR']). Cannot be set for other frequencies.
         */
        bydays: string[];
        /**
         * How many times the recurrence will repeat.
         */
        count: number;
        /**
         * The frequency of the schedule (HOURLY, DAILY, WEEKLY, MONTHLY).
         */
        frequency: string;
        /**
         * The interval between each frequency iteration (e.g., 2 = every 2 hours for HOURLY).
         */
        interval: number;
        /**
         * The end time for the recurrence (RFC3339 format).
         */
        until: string;
    }
    interface GetSchedulesSchedule {
        createdBy: string;
        cron: outputs.k6.GetSchedulesScheduleCron;
        deactivated: boolean;
        id: string;
        loadTestId: string;
        nextRun: string;
        recurrenceRule: outputs.k6.GetSchedulesScheduleRecurrenceRule;
        starts: string;
    }
    interface GetSchedulesScheduleCron {
        schedule: string;
        timezone: string;
    }
    interface GetSchedulesScheduleRecurrenceRule {
        bydays: string[];
        count: number;
        frequency: string;
        interval: number;
        until: string;
    }
    interface ScheduleCron {
        /**
         * A cron expression with exactly 5 entries, or an alias. The allowed aliases are: `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@hourly`.
         */
        schedule?: string;
        /**
         * The timezone of the cron expression. For example, `UTC` or `Europe/London`.
         */
        timezone?: string;
    }
    interface ScheduleRecurrenceRule {
        /**
         * The weekdays when the 'WEEKLY' recurrence will be applied (e.g., ['MO', 'WE', 'FR']). Cannot be set for other frequencies.
         */
        bydays?: string[];
        /**
         * How many times the recurrence will repeat.
         */
        count?: number;
        /**
         * The frequency of the schedule (HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY).
         */
        frequency?: string;
        /**
         * The interval between each frequency iteration (e.g., 2 = every 2 hours for HOURLY). Defaults to 1.
         */
        interval: number;
        /**
         * The end time for the recurrence (RFC3339 format).
         */
        until?: string;
    }
}
export declare namespace machineLearning {
    interface HolidayCustomPeriod {
        endTime: string;
        /**
         * The name of the custom period.
         */
        name?: string;
        startTime: string;
    }
    interface OutlierDetectorAlgorithm {
        /**
         * For DBSCAN only, specify the configuration map
         */
        config?: outputs.machineLearning.OutlierDetectorAlgorithmConfig;
        /**
         * The name of the algorithm to use ('mad' or 'dbscan').
         */
        name: string;
        /**
         * Specify the sensitivity of the detector (in range [0,1]).
         */
        sensitivity: number;
    }
    interface OutlierDetectorAlgorithmConfig {
        /**
         * Specify the epsilon parameter (positive float)
         */
        epsilon: number;
    }
}
export declare namespace onCall {
    interface GetUsersUser {
        email: string;
        id: string;
        role: string;
        username: string;
    }
    interface IntegrationDefaultRoute {
        /**
         * The ID of the escalation chain.
         */
        escalationChainId?: string;
        id: string;
        /**
         * MS teams-specific settings for a route.
         */
        msteams?: outputs.onCall.IntegrationDefaultRouteMsteams;
        /**
         * Slack-specific settings for a route.
         */
        slack?: outputs.onCall.IntegrationDefaultRouteSlack;
        /**
         * Telegram-specific settings for a route.
         */
        telegram?: outputs.onCall.IntegrationDefaultRouteTelegram;
    }
    interface IntegrationDefaultRouteMsteams {
        /**
         * Enable notification in MS teams. Defaults to `true`.
         */
        enabled?: boolean;
        /**
         * MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
         */
        id?: string;
    }
    interface IntegrationDefaultRouteSlack {
        /**
         * Slack channel id. Alerts will be directed to this channel in Slack.
         */
        channelId?: string;
        /**
         * Enable notification in Slack. Defaults to `true`.
         */
        enabled?: boolean;
    }
    interface IntegrationDefaultRouteTelegram {
        /**
         * Enable notification in Telegram. Defaults to `true`.
         */
        enabled?: boolean;
        /**
         * Telegram channel id. Alerts will be directed to this channel in Telegram.
         */
        id?: string;
    }
    interface IntegrationTemplates {
        /**
         * Template for sending a signal to acknowledge the Incident.
         */
        acknowledgeSignal?: string;
        /**
         * Templates for Email.
         */
        email?: outputs.onCall.IntegrationTemplatesEmail;
        /**
         * Template for the key by which alerts are grouped.
         */
        groupingKey?: string;
        /**
         * Templates for Microsoft Teams. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
         */
        microsoftTeams?: outputs.onCall.IntegrationTemplatesMicrosoftTeams;
        /**
         * Templates for Mobile app push notifications.
         */
        mobileApp?: outputs.onCall.IntegrationTemplatesMobileApp;
        /**
         * Templates for Phone Call.
         */
        phoneCall?: outputs.onCall.IntegrationTemplatesPhoneCall;
        /**
         * Template for sending a signal to resolve the Incident.
         */
        resolveSignal?: string;
        /**
         * Templates for Slack.
         */
        slack?: outputs.onCall.IntegrationTemplatesSlack;
        /**
         * Templates for SMS.
         */
        sms?: outputs.onCall.IntegrationTemplatesSms;
        /**
         * Template for a source link.
         */
        sourceLink?: string;
        /**
         * Templates for Telegram.
         */
        telegram?: outputs.onCall.IntegrationTemplatesTelegram;
        /**
         * Templates for Web.
         */
        web?: outputs.onCall.IntegrationTemplatesWeb;
    }
    interface IntegrationTemplatesEmail {
        /**
         * Template for Alert message.
         */
        message?: string;
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesMicrosoftTeams {
        /**
         * Template for Alert image url.
         */
        imageUrl?: string;
        /**
         * Template for Alert message.
         */
        message?: string;
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesMobileApp {
        /**
         * Template for Alert message.
         */
        message?: string;
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesPhoneCall {
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesSlack {
        /**
         * Template for Alert image url.
         */
        imageUrl?: string;
        /**
         * Template for Alert message.
         */
        message?: string;
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesSms {
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesTelegram {
        /**
         * Template for Alert image url.
         */
        imageUrl?: string;
        /**
         * Template for Alert message.
         */
        message?: string;
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface IntegrationTemplatesWeb {
        /**
         * Template for Alert image url.
         */
        imageUrl?: string;
        /**
         * Template for Alert message.
         */
        message?: string;
        /**
         * Template for Alert title.
         */
        title?: string;
    }
    interface RouteMsteams {
        /**
         * Enable notification in MS teams. Defaults to `true`.
         */
        enabled?: boolean;
        /**
         * MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
         */
        id?: string;
    }
    interface RouteSlack {
        /**
         * Slack channel id. Alerts will be directed to this channel in Slack.
         */
        channelId?: string;
        /**
         * Enable notification in Slack. Defaults to `true`.
         */
        enabled?: boolean;
    }
    interface RouteTelegram {
        /**
         * Enable notification in Telegram. Defaults to `true`.
         */
        enabled?: boolean;
        /**
         * Telegram channel id. Alerts will be directed to this channel in Telegram.
         */
        id?: string;
    }
    interface ScheduleSlack {
        /**
         * Slack channel id. Reminder about schedule shifts will be directed to this channel in Slack.
         */
        channelId?: string;
        /**
         * Slack user group id. Members of user group will be updated when on-call users change.
         */
        userGroupId?: string;
    }
}
export declare namespace oss {
    interface DashboardPermissionPermission {
        /**
         * Permission to associate with item. Options: View, Edit, Admin.
         */
        permission: string;
        /**
         * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
         */
        role?: string;
        /**
         * ID of the team to manage permissions for.
         */
        teamId?: string;
        /**
         * ID of the user or service account to manage permissions for.
         */
        userId?: string;
    }
    interface FolderPermissionPermission {
        /**
         * Permission to associate with item. Options: View, Edit, Admin.
         */
        permission: string;
        /**
         * Name of the basic role to manage permissions for. Options: `Viewer`, `Editor` or `Admin`.
         */
        role?: string;
        /**
         * ID of the team to manage permissions for.
         */
        teamId?: string;
        /**
         * ID of the user or service account to manage permissions for.
         */
        userId?: string;
    }
    interface GetDashboardsDashboard {
        folderTitle: string;
        title: string;
        uid: string;
    }
    interface GetFoldersFolder {
        /**
         * The folder ID.
         */
        id: number;
        /**
         * The folder title.
         */
        title: string;
        /**
         * The folder's unique identifier.
         */
        uid: string;
        /**
         * The folder's URL
         */
        url: string;
    }
    interface GetLibraryPanelsPanel {
        description: string;
        folderUid: string;
        modelJson: string;
        name: string;
        uid: string;
    }
    interface GetTeamPreference {
        /**
         * The UID of the dashboard to display when a team member logs in.
         */
        homeDashboardUid: string;
        /**
         * The default theme for this team.
         */
        theme: string;
        /**
         * The default timezone for this team.
         */
        timezone: string;
        /**
         * The default week start day for this team.
         */
        weekStart: string;
    }
    interface GetTeamTeamSync {
        groups: string[];
    }
    interface GetTeamsTeam {
        email: string;
        id: number;
        memberCount: number;
        name: string;
        orgId: number;
        uid: string;
    }
    interface GetUsersUser {
        /**
         * The user's email.
         */
        email: string;
        /**
         * The user ID.
         */
        id: number;
        /**
         * Whether the user is admin or not.
         */
        isAdmin: boolean;
        /**
         * The user's login.
         */
        login: string;
        /**
         * The user's name.
         */
        name: string;
    }
    interface PlaylistItem {
        id: string;
        order: number;
        type?: string;
        value?: string;
    }
    interface ServiceAccountPermissionPermission {
        /**
         * Permission to associate with item. Must be one of `View`, `Edit`, or `Admin`.
         */
        permission: string;
        /**
         * ID of the team to manage permissions for. Defaults to `0`.
         */
        teamId?: string;
        /**
         * ID of the user or service account to manage permissions for. Defaults to `0`.
         */
        userId?: string;
    }
    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?: boolean;
        /**
         * The LDAP configuration.
         */
        config: outputs.oss.SsoSettingsLdapSettingsConfig;
        /**
         * Define whether this configuration is enabled for LDAP. Defaults to `true`.
         */
        enabled?: boolean;
        /**
         * Prevent synchronizing users’ organization roles from LDAP.
         */
        skipOrgRoleSync?: boolean;
    }
    interface SsoSettingsLdapSettingsConfig {
        /**
         * The LDAP servers configuration.
         */
        servers: outputs.oss.SsoSettingsLdapSettingsConfigServer[];
    }
    interface SsoSettingsLdapSettingsConfigServer {
        /**
         * The LDAP server attributes. The following attributes can be configured: email, member_of, name, surname, username.
         */
        attributes?: {
            [key: string]: string;
        };
        /**
         * The search user bind DN.
         */
        bindDn?: string;
        /**
         * The search user bind password.
         */
        bindPassword?: string;
        /**
         * The path to the client certificate.
         */
        clientCert?: string;
        /**
         * The Base64 encoded value of the client certificate.
         */
        clientCertValue?: string;
        /**
         * The path to the client private key.
         */
        clientKey?: string;
        /**
         * The Base64 encoded value of the client private key.
         */
        clientKeyValue?: string;
        /**
         * For mapping an LDAP group to a Grafana organization and role.
         */
        groupMappings?: outputs.oss.SsoSettingsLdapSettingsConfigServerGroupMapping[];
        /**
         * An array of the base DNs to search through for groups. Typically uses ou=groups.
         */
        groupSearchBaseDns?: string[];
        /**
         * Group search filter, to retrieve the groups of which the user is a member (only set if memberOf attribute is not available).
         */
        groupSearchFilter?: string;
        /**
         * The %s in the search filter will be replaced with the attribute defined in this field.
         */
        groupSearchFilterUserAttribute?: string;
        /**
         * The LDAP server host.
         */
        host: string;
        /**
         * Minimum TLS version allowed. Accepted values are: TLS1.2, TLS1.3.
         */
        minTlsVersion?: string;
        /**
         * The LDAP server port.
         */
        port?: number;
        /**
         * The path to the root CA certificate.
         */
        rootCaCert?: string;
        /**
         * The Base64 encoded values of the root CA certificates.
         */
        rootCaCertValues?: string[];
        /**
         * An array of base DNs to search through.
         */
        searchBaseDns: string[];
        /**
         * The user search filter, for example "(cn=%s)" or "(sAMAccountName=%s)" or "(uid=%s)".
         */
        searchFilter: string;
        /**
         * If set to true, the SSL cert validation will be skipped.
         */
        sslSkipVerify?: boolean;
        /**
         * If set to true, use LDAP with STARTTLS instead of LDAPS.
         */
        startTls?: boolean;
        /**
         * The timeout in seconds for connecting to the LDAP host.
         */
        timeout?: number;
        /**
         * Accepted TLS ciphers. For a complete list of supported ciphers, refer to: https://go.dev/src/crypto/tls/cipher_suites.go.
         */
        tlsCiphers?: string[];
        /**
         * Set to true if LDAP server should use an encrypted TLS connection (either with STARTTLS or LDAPS).
         */
        useSsl?: boolean;
    }
    interface SsoSettingsLdapSettingsConfigServerGroupMapping {
        /**
         * If set to true, it makes the user of groupDn Grafana server admin.
         */
        grafanaAdmin?: boolean;
        /**
         * LDAP distinguished name (DN) of LDAP group. If you want to match all (or no LDAP groups) then you can use wildcard ("*").
         */
        groupDn: string;
        /**
         * The Grafana organization database id.
         */
        orgId?: number;
        /**
         * Assign users of groupDn the organization role Admin, Editor, or Viewer.
         */
        orgRole: string;
    }
    interface SsoSettingsOauth2Settings {
        /**
         * If enabled, it will automatically sync the Grafana server administrator role.
         */
        allowAssignGrafanaAdmin?: boolean;
        /**
         * If not enabled, only existing Grafana users can log in using OAuth.
         */
        allowSignUp?: boolean;
        /**
         * List of comma- or space-separated domains. The user should belong to at least one domain to log in.
         */
        allowedDomains?: 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?: string;
        /**
         * List of comma- or space-separated organizations. The user should be a member of at least one organization to log in.
         */
        allowedOrganizations?: string;
        /**
         * The user information endpoint of your OAuth2 provider. Required for okta and genericOauth providers.
         */
        apiUrl?: string;
        /**
         * It determines how client*id and client*secret are sent to Oauth2 provider. Possible values are AutoDetect, InParams, InHeader. Default is AutoDetect.
         */
        authStyle?: string;
        /**
         * The authorization endpoint of your OAuth2 provider. Required for azuread, okta and genericOauth providers.
         */
        authUrl?: string;
        /**
         * Log in automatically, skipping the login screen.
         */
        autoLogin?: boolean;
        /**
         * The client Id of your OAuth2 app.
         */
        clientId: string;
        /**
         * The client secret of your OAuth2 app.
         */
        clientSecret?: 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?: {
            [key: string]: string;
        };
        /**
         * Define allowed groups.
         */
        defineAllowedGroups?: boolean;
        /**
         * Define allowed teams ids.
         */
        defineAllowedTeamsIds?: 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?: string;
        /**
         * JMESPath expression to use for user email lookup from the user information. Only applicable to Generic OAuth.
         */
        emailAttributePath?: string;
        /**
         * If enabled, no scopes will be sent to the OAuth2 provider.
         */
        emptyScopes?: boolean;
        /**
         * Define whether this configuration is enabled for the specified provider. Defaults to `true`.
         */
        enabled?: boolean;
        /**
         * JMESPath expression to use for user group lookup. If you configure allowed*groups, you must also configure groups*attribute_path.
         */
        groupsAttributePath?: string;
        /**
         * The name of the key used to extract the ID token from the returned OAuth2 token. Only applicable to Generic OAuth.
         */
        idTokenAttributeName?: string;
        /**
         * JMESPath expression to use for user login lookup from the user ID token. Only applicable to Generic OAuth.
         */
        loginAttributePath?: string;
        /**
         * Indicates the type of user interaction when the user logs in with the IdP. Available values are `login`, `consent` and `selectAccount`.
         */
        loginPrompt?: string;
        /**
         * Helpful if you use more than one identity providers or SSO protocols.
         */
        name?: 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?: 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?: 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?: string;
        /**
         * JMESPath expression to use for Grafana role lookup.
         */
        roleAttributePath?: string;
        /**
         * If enabled, denies user login if the Grafana role cannot be extracted using Role attribute path.
         */
        roleAttributeStrict?: boolean;
        /**
         * List of comma- or space-separated OAuth2 scopes.
         */
        scopes?: string;
        /**
         * The URL to redirect the user to after signing out from Grafana.
         */
        signoutRedirectUrl?: string;
        /**
         * Prevent synchronizing users’ organization roles from your IdP.
         */
        skipOrgRoleSync?: 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?: 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?: 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?: string;
        /**
         * The path to the trusted certificate authority list. Is not applicable on Grafana Cloud.
         */
        tlsClientCa?: string;
        /**
         * The path to the certificate. Is not applicable on Grafana Cloud.
         */
        tlsClientCert?: string;
        /**
         * The path to the key. Is not applicable on Grafana Cloud.
         */
        tlsClientKey?: 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?: boolean;
        /**
         * The token endpoint of your OAuth2 provider. Required for azuread, okta and genericOauth providers.
         */
        tokenUrl?: string;
        /**
         * If enabled, Grafana will use Proof Key for Code Exchange (PKCE) with the OAuth2 Authorization Code Grant.
         */
        usePkce?: boolean;
        /**
         * If enabled, Grafana will fetch a new access token using the refresh token provided by the OAuth2 provider.
         */
        useRefreshToken?: boolean;
    }
    interface SsoSettingsSamlSettings {
        /**
         * Whether SAML IdP-initiated login is allowed.
         */
        allowIdpInitiated?: 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?: boolean;
        /**
         * List of comma- or space-separated organizations. User should be a member of at least one organization to log in.
         */
        allowedOrganizations?: string;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user email.
         */
        assertionAttributeEmail?: string;
        /**
         * Friendly name of the attribute within the SAML assertion to use as the external user ID. Only used for SCIM provisioned users.
         */
        assertionAttributeExternalUid?: string;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user groups.
         */
        assertionAttributeGroups?: string;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user login handle.
         */
        assertionAttributeLogin?: 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?: string;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user organization.
         */
        assertionAttributeOrg?: string;
        /**
         * Friendly name or name of the attribute within the SAML assertion to use as the user roles.
         */
        assertionAttributeRole?: string;
        /**
         * Whether SAML auto login is enabled.
         */
        autoLogin?: boolean;
        /**
         * Base64-encoded string for the SP X.509 certificate.
         */
        certificate?: string;
        /**
         * Path for the SP X.509 certificate.
         */
        certificatePath?: string;
        /**
         * The client Id of your OAuth2 app.
         */
        clientId?: string;
        /**
         * The client secret of your OAuth2 app.
         */
        clientSecret?: string;
        /**
         * Define whether this configuration is enabled for SAML. Defaults to `true`.
         */
        enabled?: 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?: string;
        /**
         * If enabled, Grafana will fetch groups from Microsoft Graph API instead of using the groups claim from the ID token.
         */
        forceUseGraphApi?: boolean;
        /**
         * Base64-encoded string for the IdP SAML metadata XML.
         */
        idpMetadata?: string;
        /**
         * Path for the IdP SAML metadata XML.
         */
        idpMetadataPath?: string;
        /**
         * URL for the IdP SAML metadata XML.
         */
        idpMetadataUrl?: string;
        /**
         * Duration, since the IdP issued a response and the SP is allowed to process it. For example: 90s, 1h.
         */
        maxIssueDelay?: string;
        /**
         * Duration, for how long the SP metadata is valid. For example: 48h, 5d.
         */
        metadataValidDuration?: string;
        /**
         * Name used to refer to the SAML authentication.
         */
        name?: string;
        /**
         * The Name ID Format to request within the SAML assertion. Defaults to urn:oasis:names:tc:SAML:2.0:nameid-format:transient
         */
        nameIdFormat?: 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?: string;
        /**
         * Base64-encoded string for the SP private key.
         */
        privateKey?: string;
        /**
         * Path for the SP private key.
         */
        privateKeyPath?: string;
        /**
         * Relay state for IdP-initiated login. Should match relay state configured in IdP.
         */
        relayState?: string;
        /**
         * List of comma- or space-separated roles which will be mapped into the Admin role.
         */
        roleValuesAdmin?: string;
        /**
         * List of comma- or space-separated roles which will be mapped into the Editor role.
         */
        roleValuesEditor?: string;
        /**
         * List of comma- or space-separated roles which will be mapped into the Grafana Admin (Super Admin) role.
         */
        roleValuesGrafanaAdmin?: string;
        /**
         * List of comma- or space-separated roles which will be mapped into the None role.
         */
        roleValuesNone?: string;
        /**
         * List of comma- or space-separated roles which will be mapped into the Viewer role.
         */
        roleValuesViewer?: string;
        /**
         * Signature algorithm used for signing requests to the IdP. Supported values are rsa-sha1, rsa-sha256, rsa-sha512.
         */
        signatureAlgorithm?: string;
        /**
         * Whether SAML Single Logout is enabled.
         */
        singleLogout?: boolean;
        /**
         * Prevent synchronizing users’ organization roles from your IdP.
         */
        skipOrgRoleSync?: boolean;
        /**
         * The token endpoint of your OAuth2 provider. Required for Azure AD providers.
         */
        tokenUrl?: string;
    }
    interface TeamPreferences {
        /**
         * The UID of the dashboard to display when a team member logs in.
         */
        homeDashboardUid: string;
        /**
         * The default theme for this team. Available themes are `light`, `dark`, `system`, or an empty string for the default theme.
         */
        theme: string;
        /**
         * The default timezone for this team. Available values are `utc`, `browser`, or an empty string for the default.
         */
        timezone: string;
        /**
         * The default week start day for this team. Available values are `sunday`, `monday`, `saturday`, or an empty string for the default.
         */
        weekStart: string;
    }
    interface TeamTeamSync {
        groups?: string[];
    }
}
export declare namespace slo {
    interface GetSlosSlo {
        /**
         * Alerting configuration for the SLO.
         */
        alertings?: outputs.slo.GetSlosSloAlerting[];
        /**
         * Description of the SLO.
         */
        description: string;
        /**
         * Destination datasource configuration.
         */
        destinationDatasources?: outputs.slo.GetSlosSloDestinationDatasource[];
        /**
         * Labels attached to the SLO.
         */
        labels?: outputs.slo.GetSlosSloLabel[];
        /**
         * Name of the SLO.
         */
        name: string;
        /**
         * Objectives for the SLO.
         */
        objectives?: outputs.slo.GetSlosSloObjective[];
        /**
         * Query configuration for the SLO.
         */
        queries?: outputs.slo.GetSlosSloQuery[];
        /**
         * The search expression associated with this SLO.
         */
        searchExpression: string;
        /**
         * A unique, random identifier. This value is read-only.
         */
        uuid: string;
    }
    interface GetSlosSloAlerting {
        /**
         * Advanced alerting options.
         */
        advancedOptions?: outputs.slo.GetSlosSloAlertingAdvancedOptions;
        /**
         * Annotations attached to alerts.
         */
        annotations?: outputs.slo.GetSlosSloAlertingAnnotation[];
        /**
         * Fast burn alert configuration.
         */
        fastburn?: outputs.slo.GetSlosSloAlertingFastburn;
        /**
         * Labels attached to alerts.
         */
        labels?: outputs.slo.GetSlosSloAlertingLabel[];
        /**
         * Slow burn alert configuration.
         */
        slowburn?: outputs.slo.GetSlosSloAlertingSlowburn;
    }
    interface GetSlosSloAlertingAdvancedOptions {
        /**
         * Minimum number of failures before alerting.
         */
        minFailures: number;
    }
    interface GetSlosSloAlertingAnnotation {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloAlertingFastburn {
        /**
         * Annotations for fast burn alerts.
         */
        annotations?: outputs.slo.GetSlosSloAlertingFastburnAnnotation[];
        /**
         * Enrichments for fast burn alerts.
         */
        enrichments?: outputs.slo.GetSlosSloAlertingFastburnEnrichment[];
        /**
         * Labels for fast burn alerts.
         */
        labels?: outputs.slo.GetSlosSloAlertingFastburnLabel[];
    }
    interface GetSlosSloAlertingFastburnAnnotation {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloAlertingFastburnEnrichment {
        /**
         * Type of the alert enrichment.
         */
        type: string;
    }
    interface GetSlosSloAlertingFastburnLabel {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloAlertingLabel {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloAlertingSlowburn {
        /**
         * Annotations for slow burn alerts.
         */
        annotations?: outputs.slo.GetSlosSloAlertingSlowburnAnnotation[];
        /**
         * Enrichments for slow burn alerts.
         */
        enrichments?: outputs.slo.GetSlosSloAlertingSlowburnEnrichment[];
        /**
         * Labels for slow burn alerts.
         */
        labels?: outputs.slo.GetSlosSloAlertingSlowburnLabel[];
    }
    interface GetSlosSloAlertingSlowburnAnnotation {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloAlertingSlowburnEnrichment {
        /**
         * Type of the alert enrichment.
         */
        type: string;
    }
    interface GetSlosSloAlertingSlowburnLabel {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloDestinationDatasource {
        /**
         * UID of the destination datasource.
         */
        uid: string;
    }
    interface GetSlosSloLabel {
        /**
         * Key for filtering and identification.
         */
        key: string;
        /**
         * Templatable value.
         */
        value: string;
    }
    interface GetSlosSloObjective {
        /**
         * Objective value (between 0 and 1).
         */
        value: number;
        /**
         * Time window for the objective.
         */
        window: string;
    }
    interface GetSlosSloQuery {
        /**
         * Freeform query configuration.
         */
        freeform?: outputs.slo.GetSlosSloQueryFreeform;
        /**
         * Grafana queries configuration.
         */
        grafanaQueries?: outputs.slo.GetSlosSloQueryGrafanaQueries;
        /**
         * Ratio query configuration.
         */
        ratio?: outputs.slo.GetSlosSloQueryRatio;
        /**
         * Type of query (freeform, ratio, grafana_queries, etc.).
         */
        type: string;
    }
    interface GetSlosSloQueryFreeform {
        /**
         * The PromQL query string.
         */
        query: string;
    }
    interface GetSlosSloQueryGrafanaQueries {
        /**
         * JSON string containing the Grafana queries.
         */
        grafanaQueries: string;
    }
    interface GetSlosSloQueryRatio {
        /**
         * Labels used for grouping.
         */
        groupByLabels: string[];
        /**
         * Counter metric for success events (numerator).
         */
        successMetric: string;
        /**
         * Metric for total events (denominator).
         */
        totalMetric: string;
    }
    interface SLOAlerting {
        /**
         * Advanced Options for Alert Rules
         */
        advancedOptions?: outputs.slo.SLOAlertingAdvancedOptions;
        /**
         * Annotations will be attached to all alerts generated by any of these rules.
         */
        annotations?: outputs.slo.SLOAlertingAnnotation[];
        /**
         * Alerting Rules generated for Fast Burn alerts
         */
        fastburn?: outputs.slo.SLOAlertingFastburn;
        /**
         * Labels will be attached to all alerts generated by any of these rules.
         */
        labels?: outputs.slo.SLOAlertingLabel[];
        /**
         * Alerting Rules generated for Slow Burn alerts
         */
        slowburn?: outputs.slo.SLOAlertingSlowburn;
    }
    interface SLOAlertingAdvancedOptions {
        /**
         * Minimum number of failed events to trigger an alert
         */
        minFailures?: number;
    }
    interface SLOAlertingAnnotation {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLOAlertingFastburn {
        /**
         * Annotations to attach only to Fast Burn alerts.
         */
        annotations?: outputs.slo.SLOAlertingFastburnAnnotation[];
        /**
         * Enrichments to attach only to Fast Burn alerts.
         */
        enrichments?: outputs.slo.SLOAlertingFastburnEnrichment[];
        /**
         * Labels to attach only to Fast Burn alerts.
         */
        labels?: outputs.slo.SLOAlertingFastburnLabel[];
    }
    interface SLOAlertingFastburnAnnotation {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLOAlertingFastburnEnrichment {
        /**
         * Type of the alert enrichment. Currently only "assistantInvestigation" is supported.
         */
        type: string;
    }
    interface SLOAlertingFastburnLabel {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLOAlertingLabel {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLOAlertingSlowburn {
        /**
         * Annotations to attach only to Slow Burn alerts.
         */
        annotations?: outputs.slo.SLOAlertingSlowburnAnnotation[];
        /**
         * Enrichments to attach only to Slow Burn alerts.
         */
        enrichments?: outputs.slo.SLOAlertingSlowburnEnrichment[];
        /**
         * Labels to attach only to Slow Burn alerts.
         */
        labels?: outputs.slo.SLOAlertingSlowburnLabel[];
    }
    interface SLOAlertingSlowburnAnnotation {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLOAlertingSlowburnEnrichment {
        /**
         * Type of the alert enrichment. Currently only "assistantInvestigation" is supported.
         */
        type: string;
    }
    interface SLOAlertingSlowburnLabel {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLODestinationDatasource {
        /**
         * UID for the Datasource
         */
        uid: string;
    }
    interface SLOLabel {
        /**
         * Key for filtering and identification
         */
        key: string;
        /**
         * Templatable value
         */
        value: string;
    }
    interface SLOObjective {
        /**
         * Value between 0 and 1. If the value of the query is above the objective, the SLO is met.
         */
        value: number;
        /**
         * A Prometheus-parsable time duration string like 24h, 60m. This is the time window the objective is measured over.
         */
        window: string;
    }
    interface SLOQuery {
        /**
         * Freeform query configuration.
         */
        freeform?: outputs.slo.SLOQueryFreeform;
        /**
         * Array for holding a set of grafana queries
         */
        grafanaQueries?: outputs.slo.SLOQueryGrafanaQueries;
        /**
         * Ratio query configuration.
         */
        ratio?: outputs.slo.SLOQueryRatio;
        /**
         * Query type must be one of: "freeform", "query", "ratio", "grafanaQueries" or "threshold"
         */
        type: string;
    }
    interface SLOQueryFreeform {
        /**
         * Freeform Query Field - valid promQl
         */
        query: string;
    }
    interface SLOQueryGrafanaQueries {
        /**
         * Query Object - Array of Grafana Query JSON objects
         */
        grafanaQueries: 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: string[];
        /**
         * Counter metric for success events (numerator)
         */
        successMetric: string;
        /**
         * Metric for total events (denominator)
         */
        totalMetric: string;
    }
}
export declare namespace syntheticMonitoring {
    interface CheckAlertsAlert {
        /**
         * Name of the alert. Required.
         */
        name: string;
        /**
         * Period for the alert. Required and must be one of: `5m`, `10m`, `15m`, `20m`, `30m`, `1h`.
         */
        period?: string;
        /**
         * URL to runbook documentation for this alert.
         */
        runbookUrl?: string;
        /**
         * Threshold value for the alert.
         */
        threshold: number;
    }
    interface CheckSettings {
        /**
         * Settings for browser check. See https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/k6-browser/.
         */
        browser?: outputs.syntheticMonitoring.CheckSettingsBrowser;
        /**
         * Settings for DNS check. The target must be a valid hostname (or IP address for `PTR` records).
         */
        dns?: outputs.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?: outputs.syntheticMonitoring.CheckSettingsGrpc;
        /**
         * Settings for HTTP check. The target must be a URL (http or https).
         */
        http?: outputs.syntheticMonitoring.CheckSettingsHttp;
        /**
         * Settings for MultiHTTP check. The target must be a URL (http or https)
         */
        multihttp?: outputs.syntheticMonitoring.CheckSettingsMultihttp;
        /**
         * Settings for ping (ICMP) check. The target must be a valid hostname or IP address.
         */
        ping?: outputs.syntheticMonitoring.CheckSettingsPing;
        /**
         * Settings for scripted check. See https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/k6/.
         */
        scripted?: outputs.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?: outputs.syntheticMonitoring.CheckSettingsTcp;
        /**
         * Settings for traceroute check. The target must be a valid hostname or IP address
         */
        traceroute?: outputs.syntheticMonitoring.CheckSettingsTraceroute;
    }
    interface CheckSettingsBrowser {
        script: 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?: string;
        /**
         * Port to target. Defaults to `53`.
         */
        port?: number;
        /**
         * `TCP` or `UDP`. Defaults to `UDP`.
         */
        protocol?: string;
        /**
         * One of `ANY`, `A`, `AAAA`, `CNAME`, `MX`, `NS`, `PTR`, `SOA`, `SRV`, `TXT`. Defaults to `A`.
         */
        recordType?: string;
        /**
         * DNS server address to target. Defaults to `8.8.8.8`.
         */
        server?: string;
        /**
         * Source IP address.
         */
        sourceIpAddress?: 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?: string[];
        /**
         * Validate additional matches.
         */
        validateAdditionalRrs?: outputs.syntheticMonitoring.CheckSettingsDnsValidateAdditionalRr[];
        /**
         * Validate response answer.
         */
        validateAnswerRrs?: outputs.syntheticMonitoring.CheckSettingsDnsValidateAnswerRrs;
        /**
         * Validate response authority.
         */
        validateAuthorityRrs?: outputs.syntheticMonitoring.CheckSettingsDnsValidateAuthorityRrs;
    }
    interface CheckSettingsDnsValidateAdditionalRr {
        /**
         * Fail if value matches regex.
         */
        failIfMatchesRegexps?: string[];
        /**
         * Fail if value does not match regex.
         */
        failIfNotMatchesRegexps?: string[];
    }
    interface CheckSettingsDnsValidateAnswerRrs {
        /**
         * Fail if value matches regex.
         */
        failIfMatchesRegexps?: string[];
        /**
         * Fail if value does not match regex.
         */
        failIfNotMatchesRegexps?: string[];
    }
    interface CheckSettingsDnsValidateAuthorityRrs {
        /**
         * Fail if value matches regex.
         */
        failIfMatchesRegexps?: string[];
        /**
         * Fail if value does not match regex.
         */
        failIfNotMatchesRegexps?: 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?: string;
        /**
         * gRPC service.
         */
        service?: string;
        /**
         * Whether or not TLS is used when the connection is initiated. Defaults to `false`.
         */
        tls?: boolean;
        /**
         * TLS config.
         */
        tlsConfig?: outputs.syntheticMonitoring.CheckSettingsGrpcTlsConfig;
    }
    interface CheckSettingsGrpcTlsConfig {
        /**
         * CA certificate in PEM format.
         */
        caCert?: string;
        /**
         * Client certificate in PEM format.
         */
        clientCert?: string;
        /**
         * Client key in PEM format.
         */
        clientKey?: string;
        /**
         * Disable target certificate validation. Defaults to `false`.
         */
        insecureSkipVerify?: boolean;
        /**
         * Used to verify the hostname for the targets.
         */
        serverName?: string;
    }
    interface CheckSettingsHttp {
        /**
         * Basic auth settings.
         */
        basicAuth?: outputs.syntheticMonitoring.CheckSettingsHttpBasicAuth;
        /**
         * Token for use with bearer authorization header.
         */
        bearerToken?: string;
        /**
         * The body of the HTTP request used in probe.
         */
        body?: 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?: string;
        /**
         * Check fails if the response body is not compressed using this compression algorithm. One of `none`, `identity`, `br`, `gzip`, `deflate`.
         */
        compression?: string;
        /**
         * List of regexes. If any match the response body, the check will fail.
         */
        failIfBodyMatchesRegexps?: string[];
        /**
         * List of regexes. If any do not match the response body, the check will fail.
         */
        failIfBodyNotMatchesRegexps?: string[];
        /**
         * Check fails if headers match.
         */
        failIfHeaderMatchesRegexps?: outputs.syntheticMonitoring.CheckSettingsHttpFailIfHeaderMatchesRegexp[];
        /**
         * Check fails if headers do not match.
         */
        failIfHeaderNotMatchesRegexps?: outputs.syntheticMonitoring.CheckSettingsHttpFailIfHeaderNotMatchesRegexp[];
        /**
         * Fail if SSL is not present. Defaults to `false`.
         */
        failIfNotSsl?: boolean;
        /**
         * Fail if SSL is present. Defaults to `false`.
         */
        failIfSsl?: boolean;
        /**
         * The HTTP headers set for the probe.
         */
        headers?: 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?: string;
        /**
         * Request method. One of `GET`, `CONNECT`, `DELETE`, `HEAD`, `OPTIONS`, `POST`, `PUT`, `TRACE` Defaults to `GET`.
         */
        method?: string;
        /**
         * Do not follow redirects. Defaults to `false`.
         */
        noFollowRedirects?: boolean;
        /**
         * The HTTP headers sent to the proxy URL
         */
        proxyConnectHeaders?: string[];
        /**
         * Proxy URL.
         */
        proxyUrl?: string;
        /**
         * TLS config.
         */
        tlsConfig?: outputs.syntheticMonitoring.CheckSettingsHttpTlsConfig;
        /**
         * List of valid HTTP versions. Options include `HTTP/1.0`, `HTTP/1.1`, `HTTP/2.0`
         */
        validHttpVersions?: string[];
        /**
         * Accepted status codes. If unset, defaults to 2xx.
         */
        validStatusCodes?: number[];
    }
    interface CheckSettingsHttpBasicAuth {
        /**
         * Basic auth password.
         */
        password: string;
        /**
         * Basic auth username.
         */
        username: string;
    }
    interface CheckSettingsHttpFailIfHeaderMatchesRegexp {
        /**
         * Allow header to be missing from responses. Defaults to `false`.
         */
        allowMissing?: boolean;
        /**
         * Header name.
         */
        header: string;
        /**
         * Regex that header value should match.
         */
        regexp: string;
    }
    interface CheckSettingsHttpFailIfHeaderNotMatchesRegexp {
        /**
         * Allow header to be missing from responses. Defaults to `false`.
         */
        allowMissing?: boolean;
        /**
         * Header name.
         */
        header: string;
        /**
         * Regex that header value should match.
         */
        regexp: string;
    }
    interface CheckSettingsHttpTlsConfig {
        /**
         * CA certificate in PEM format.
         */
        caCert?: string;
        /**
         * Client certificate in PEM format.
         */
        clientCert?: string;
        /**
         * Client key in PEM format.
         */
        clientKey?: string;
        /**
         * Disable target certificate validation. Defaults to `false`.
         */
        insecureSkipVerify?: boolean;
        /**
         * Used to verify the hostname for the targets.
         */
        serverName?: string;
    }
    interface CheckSettingsMultihttp {
        entries?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntry[];
    }
    interface CheckSettingsMultihttpEntry {
        /**
         * Assertions to make on the request response
         */
        assertions?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntryAssertion[];
        /**
         * An individual MultiHTTP request
         */
        request?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequest;
        /**
         * Variables to extract from the request response
         */
        variables?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntryVariable[];
    }
    interface CheckSettingsMultihttpEntryAssertion {
        /**
         * The condition of the assertion: NOT*CONTAINS, EQUALS, STARTS*WITH, ENDS*WITH, TYPE*OF, CONTAINS
         */
        condition?: string;
        /**
         * The expression of the assertion. Should start with $.
         */
        expression?: string;
        /**
         * The subject of the assertion: RESPONSE*HEADERS, HTTP*STATUS*CODE, RESPONSE*BODY
         */
        subject?: string;
        /**
         * The type of assertion to make: TEXT, JSON*PATH*VALUE, JSON*PATH*ASSERTION, REGEX_ASSERTION
         */
        type: string;
        /**
         * The value of the assertion
         */
        value?: string;
    }
    interface CheckSettingsMultihttpEntryRequest {
        /**
         * The body of the HTTP request used in probe.
         */
        bodies?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequestBody[];
        /**
         * The headers to send with the request
         */
        headers?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequestHeader[];
        /**
         * The HTTP method to use
         */
        method: string;
        /**
         * Query fields to send with the request
         */
        queryFields?: outputs.syntheticMonitoring.CheckSettingsMultihttpEntryRequestQueryField[];
        /**
         * The URL for the request
         */
        url: string;
    }
    interface CheckSettingsMultihttpEntryRequestBody {
        /**
         * The content encoding of the body
         */
        contentEncoding?: string;
        /**
         * The content type of the body
         */
        contentType?: string;
        /**
         * The body payload
         */
        payload?: string;
    }
    interface CheckSettingsMultihttpEntryRequestHeader {
        /**
         * Name of the header to send
         */
        name: string;
        /**
         * Value of the header to send
         */
        value: string;
    }
    interface CheckSettingsMultihttpEntryRequestQueryField {
        /**
         * Name of the query field to send
         */
        name: string;
        /**
         * Value of the query field to send
         */
        value: string;
    }
    interface CheckSettingsMultihttpEntryVariable {
        /**
         * The attribute to use when finding the variable value. Only used when type is CSS_SELECTOR
         */
        attribute?: string;
        /**
         * The expression to when finding the variable. Should start with $. Only use when type is JSON_PATH or REGEX
         */
        expression?: string;
        /**
         * The name of the variable to extract
         */
        name?: string;
        /**
         * The method of finding the variable value to extract. JSON*PATH, REGEX, CSS*SELECTOR
         */
        type: string;
    }
    interface CheckSettingsPing {
        /**
         * Set the DF-bit in the IP-header. Only works with ipV4. Defaults to `false`.
         */
        dontFragment?: 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?: string;
        /**
         * Payload size. Defaults to `0`.
         */
        payloadSize?: number;
        /**
         * Source IP address.
         */
        sourceIpAddress?: string;
    }
    interface CheckSettingsScripted {
        script: 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?: string;
        /**
         * The query sent in the TCP probe and the expected associated response.
         */
        queryResponses?: outputs.syntheticMonitoring.CheckSettingsTcpQueryResponse[];
        /**
         * Source IP address.
         */
        sourceIpAddress?: string;
        /**
         * Whether or not TLS is used when the connection is initiated. Defaults to `false`.
         */
        tls?: boolean;
        /**
         * TLS config.
         */
        tlsConfig?: outputs.syntheticMonitoring.CheckSettingsTcpTlsConfig;
    }
    interface CheckSettingsTcpQueryResponse {
        /**
         * Response to expect.
         */
        expect: string;
        /**
         * Data to send.
         */
        send: string;
        /**
         * Upgrade TCP connection to TLS. Defaults to `false`.
         */
        startTls?: boolean;
    }
    interface CheckSettingsTcpTlsConfig {
        /**
         * CA certificate in PEM format.
         */
        caCert?: string;
        /**
         * Client certificate in PEM format.
         */
        clientCert?: string;
        /**
         * Client key in PEM format.
         */
        clientKey?: string;
        /**
         * Disable target certificate validation. Defaults to `false`.
         */
        insecureSkipVerify?: boolean;
        /**
         * Used to verify the hostname for the targets.
         */
        serverName?: string;
    }
    interface CheckSettingsTraceroute {
        /**
         * Maximum TTL for the trace Defaults to `64`.
         */
        maxHops?: number;
        /**
         * Maximum number of hosts to travers that give no response Defaults to `15`.
         */
        maxUnknownHops?: number;
        /**
         * Reverse lookup hostnames from IP addresses Defaults to `true`.
         */
        ptrLookup?: boolean;
    }
}
