# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'AccessPolicyConditionArgs',
    'AccessPolicyConditionArgsDict',
    'AccessPolicyRealmArgs',
    'AccessPolicyRealmArgsDict',
    'AccessPolicyRealmLabelPolicyArgs',
    'AccessPolicyRealmLabelPolicyArgsDict',
    'ProviderAwsCloudwatchScrapeJobCustomNamespaceArgs',
    'ProviderAwsCloudwatchScrapeJobCustomNamespaceArgsDict',
    'ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs',
    'ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict',
    'ProviderAwsCloudwatchScrapeJobServiceArgs',
    'ProviderAwsCloudwatchScrapeJobServiceArgsDict',
    'ProviderAwsCloudwatchScrapeJobServiceMetricArgs',
    'ProviderAwsCloudwatchScrapeJobServiceMetricArgsDict',
    'ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs',
    'ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict',
    'ProviderAzureCredentialAutoDiscoveryConfigurationArgs',
    'ProviderAzureCredentialAutoDiscoveryConfigurationArgsDict',
    'ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs',
    'ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict',
    'ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs',
    'ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict',
    'ProviderAzureCredentialResourceDiscoveryTagFilterArgs',
    'ProviderAzureCredentialResourceDiscoveryTagFilterArgsDict',
    'GetProviderAwsCloudwatchScrapeJobCustomNamespaceArgs',
    'GetProviderAwsCloudwatchScrapeJobCustomNamespaceArgsDict',
    'GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs',
    'GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict',
    'GetProviderAwsCloudwatchScrapeJobServiceArgs',
    'GetProviderAwsCloudwatchScrapeJobServiceArgsDict',
    'GetProviderAwsCloudwatchScrapeJobServiceMetricArgs',
    'GetProviderAwsCloudwatchScrapeJobServiceMetricArgsDict',
    'GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs',
    'GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobArgs',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobArgsDict',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgsDict',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgsDict',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgsDict',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgsDict',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs',
    'GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgsDict',
    'GetProviderAzureCredentialAutoDiscoveryConfigurationArgs',
    'GetProviderAzureCredentialAutoDiscoveryConfigurationArgsDict',
    'GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs',
    'GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict',
    'GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs',
    'GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict',
    'GetProviderAzureCredentialResourceDiscoveryTagFilterArgs',
    'GetProviderAzureCredentialResourceDiscoveryTagFilterArgsDict',
]

MYPY = False

if not MYPY:
    class AccessPolicyConditionArgsDict(TypedDict):
        allowed_subnets: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
        """
        Conditions that apply to the access policy,such as IP Allow lists.
        """
elif False:
    AccessPolicyConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AccessPolicyConditionArgs:
    def __init__(__self__, *,
                 allowed_subnets: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_subnets: Conditions that apply to the access policy,such as IP Allow lists.
        """
        pulumi.set(__self__, "allowed_subnets", allowed_subnets)

    @property
    @pulumi.getter(name="allowedSubnets")
    def allowed_subnets(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
        """
        Conditions that apply to the access policy,such as IP Allow lists.
        """
        return pulumi.get(self, "allowed_subnets")

    @allowed_subnets.setter
    def allowed_subnets(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        pulumi.set(self, "allowed_subnets", value)


if not MYPY:
    class AccessPolicyRealmArgsDict(TypedDict):
        identifier: pulumi.Input[builtins.str]
        """
        The identifier of the org or stack. For orgs, this is the slug, for stacks, this is the stack ID.
        """
        type: pulumi.Input[builtins.str]
        """
        Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
        """
        label_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessPolicyRealmLabelPolicyArgsDict']]]]
elif False:
    AccessPolicyRealmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AccessPolicyRealmArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[builtins.str],
                 type: pulumi.Input[builtins.str],
                 label_policies: Optional[pulumi.Input[Sequence[pulumi.Input['AccessPolicyRealmLabelPolicyArgs']]]] = None):
        """
        :param pulumi.Input[builtins.str] identifier: The identifier of the org or stack. For orgs, this is the slug, for stacks, this is the stack ID.
        :param pulumi.Input[builtins.str] type: Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
        """
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "type", type)
        if label_policies is not None:
            pulumi.set(__self__, "label_policies", label_policies)

    @property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[builtins.str]:
        """
        The identifier of the org or stack. For orgs, this is the slug, for stacks, this is the stack ID.
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "identifier", value)

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[builtins.str]:
        """
        Whether a policy applies to a Cloud org or a specific stack. Should be one of `org` or `stack`.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "type", value)

    @property
    @pulumi.getter(name="labelPolicies")
    def label_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AccessPolicyRealmLabelPolicyArgs']]]]:
        return pulumi.get(self, "label_policies")

    @label_policies.setter
    def label_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AccessPolicyRealmLabelPolicyArgs']]]]):
        pulumi.set(self, "label_policies", value)


if not MYPY:
    class AccessPolicyRealmLabelPolicyArgsDict(TypedDict):
        selector: pulumi.Input[builtins.str]
        """
        The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
        """
elif False:
    AccessPolicyRealmLabelPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AccessPolicyRealmLabelPolicyArgs:
    def __init__(__self__, *,
                 selector: pulumi.Input[builtins.str]):
        """
        :param pulumi.Input[builtins.str] selector: The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
        """
        pulumi.set(__self__, "selector", selector)

    @property
    @pulumi.getter
    def selector(self) -> pulumi.Input[builtins.str]:
        """
        The label selector to match in metrics or logs query. Should be in PromQL or LogQL format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class ProviderAwsCloudwatchScrapeJobCustomNamespaceArgsDict(TypedDict):
        name: pulumi.Input[builtins.str]
        """
        The name of the custom namespace to scrape.
        """
        metrics: NotRequired[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict']]]]
        """
        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.
        """
        scrape_interval_seconds: NotRequired[pulumi.Input[builtins.int]]
        """
        The interval in seconds to scrape the custom namespace. Defaults to `300`.
        """
elif False:
    ProviderAwsCloudwatchScrapeJobCustomNamespaceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAwsCloudwatchScrapeJobCustomNamespaceArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[builtins.str],
                 metrics: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']]]] = None,
                 scrape_interval_seconds: Optional[pulumi.Input[builtins.int]] = None):
        """
        :param pulumi.Input[builtins.str] name: The name of the custom namespace to scrape.
        :param pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']]] metrics: 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.
        :param pulumi.Input[builtins.int] scrape_interval_seconds: The interval in seconds to scrape the custom namespace. Defaults to `300`.
        """
        pulumi.set(__self__, "name", name)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)
        if scrape_interval_seconds is not None:
            pulumi.set(__self__, "scrape_interval_seconds", scrape_interval_seconds)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[builtins.str]:
        """
        The name of the custom namespace to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def metrics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']]]]:
        """
        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.
        """
        return pulumi.get(self, "metrics")

    @metrics.setter
    def metrics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']]]]):
        pulumi.set(self, "metrics", value)

    @property
    @pulumi.getter(name="scrapeIntervalSeconds")
    def scrape_interval_seconds(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        The interval in seconds to scrape the custom namespace. Defaults to `300`.
        """
        return pulumi.get(self, "scrape_interval_seconds")

    @scrape_interval_seconds.setter
    def scrape_interval_seconds(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "scrape_interval_seconds", value)


if not MYPY:
    class ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict(TypedDict):
        name: pulumi.Input[builtins.str]
        """
        The name of the metric to scrape.
        """
        statistics: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
        """
        A set of statistics to scrape.
        """
elif False:
    ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[builtins.str],
                 statistics: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        """
        :param pulumi.Input[builtins.str] name: The name of the metric to scrape.
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] statistics: A set of statistics to scrape.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "statistics", statistics)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[builtins.str]:
        """
        The name of the metric to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def statistics(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
        """
        A set of statistics to scrape.
        """
        return pulumi.get(self, "statistics")

    @statistics.setter
    def statistics(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        pulumi.set(self, "statistics", value)


if not MYPY:
    class ProviderAwsCloudwatchScrapeJobServiceArgsDict(TypedDict):
        name: pulumi.Input[builtins.str]
        """
        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: NotRequired[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceMetricArgsDict']]]]
        """
        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.
        """
        resource_discovery_tag_filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict']]]]
        """
        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.
        """
        scrape_interval_seconds: NotRequired[pulumi.Input[builtins.int]]
        """
        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`.
        """
        tags_to_add_to_metrics: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
        """
        A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
elif False:
    ProviderAwsCloudwatchScrapeJobServiceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAwsCloudwatchScrapeJobServiceArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[builtins.str],
                 metrics: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceMetricArgs']]]] = None,
                 resource_discovery_tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']]]] = None,
                 scrape_interval_seconds: Optional[pulumi.Input[builtins.int]] = None,
                 tags_to_add_to_metrics: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
        """
        :param pulumi.Input[builtins.str] name: 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.
        :param pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceMetricArgs']]] metrics: 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.
        :param pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']]] resource_discovery_tag_filters: 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.
        :param pulumi.Input[builtins.int] scrape_interval_seconds: 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`.
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags_to_add_to_metrics: A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
        pulumi.set(__self__, "name", name)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)
        if resource_discovery_tag_filters is not None:
            pulumi.set(__self__, "resource_discovery_tag_filters", resource_discovery_tag_filters)
        if scrape_interval_seconds is not None:
            pulumi.set(__self__, "scrape_interval_seconds", scrape_interval_seconds)
        if tags_to_add_to_metrics is not None:
            pulumi.set(__self__, "tags_to_add_to_metrics", tags_to_add_to_metrics)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[builtins.str]:
        """
        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.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def metrics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceMetricArgs']]]]:
        """
        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.
        """
        return pulumi.get(self, "metrics")

    @metrics.setter
    def metrics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceMetricArgs']]]]):
        pulumi.set(self, "metrics", value)

    @property
    @pulumi.getter(name="resourceDiscoveryTagFilters")
    def resource_discovery_tag_filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']]]]:
        """
        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.
        """
        return pulumi.get(self, "resource_discovery_tag_filters")

    @resource_discovery_tag_filters.setter
    def resource_discovery_tag_filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']]]]):
        pulumi.set(self, "resource_discovery_tag_filters", value)

    @property
    @pulumi.getter(name="scrapeIntervalSeconds")
    def scrape_interval_seconds(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        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`.
        """
        return pulumi.get(self, "scrape_interval_seconds")

    @scrape_interval_seconds.setter
    def scrape_interval_seconds(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "scrape_interval_seconds", value)

    @property
    @pulumi.getter(name="tagsToAddToMetrics")
    def tags_to_add_to_metrics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
        return pulumi.get(self, "tags_to_add_to_metrics")

    @tags_to_add_to_metrics.setter
    def tags_to_add_to_metrics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
        pulumi.set(self, "tags_to_add_to_metrics", value)


if not MYPY:
    class ProviderAwsCloudwatchScrapeJobServiceMetricArgsDict(TypedDict):
        name: pulumi.Input[builtins.str]
        """
        The name of the metric to scrape.
        """
        statistics: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
        """
        A set of statistics to scrape.
        """
elif False:
    ProviderAwsCloudwatchScrapeJobServiceMetricArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAwsCloudwatchScrapeJobServiceMetricArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[builtins.str],
                 statistics: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        """
        :param pulumi.Input[builtins.str] name: The name of the metric to scrape.
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] statistics: A set of statistics to scrape.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "statistics", statistics)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[builtins.str]:
        """
        The name of the metric to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def statistics(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
        """
        A set of statistics to scrape.
        """
        return pulumi.get(self, "statistics")

    @statistics.setter
    def statistics(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        pulumi.set(self, "statistics", value)


if not MYPY:
    class ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict(TypedDict):
        key: pulumi.Input[builtins.str]
        """
        The key of the tag filter.
        """
        value: pulumi.Input[builtins.str]
        """
        The value of the tag filter.
        """
elif False:
    ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[builtins.str],
                 value: pulumi.Input[builtins.str]):
        """
        :param pulumi.Input[builtins.str] key: The key of the tag filter.
        :param pulumi.Input[builtins.str] value: The value of the tag filter.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[builtins.str]:
        """
        The key of the tag filter.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> pulumi.Input[builtins.str]:
        """
        The value of the tag filter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "value", value)


if not MYPY:
    class ProviderAzureCredentialAutoDiscoveryConfigurationArgsDict(TypedDict):
        resource_type_configurations: pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict']]]
        """
        The list of resource type configurations.
        """
        subscription_id: pulumi.Input[builtins.str]
        """
        The subscription ID of the Azure account.
        """
elif False:
    ProviderAzureCredentialAutoDiscoveryConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAzureCredentialAutoDiscoveryConfigurationArgs:
    def __init__(__self__, *,
                 resource_type_configurations: pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs']]],
                 subscription_id: pulumi.Input[builtins.str]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs']]] resource_type_configurations: The list of resource type configurations.
        :param pulumi.Input[builtins.str] subscription_id: The subscription ID of the Azure account.
        """
        pulumi.set(__self__, "resource_type_configurations", resource_type_configurations)
        pulumi.set(__self__, "subscription_id", subscription_id)

    @property
    @pulumi.getter(name="resourceTypeConfigurations")
    def resource_type_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs']]]:
        """
        The list of resource type configurations.
        """
        return pulumi.get(self, "resource_type_configurations")

    @resource_type_configurations.setter
    def resource_type_configurations(self, value: pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs']]]):
        pulumi.set(self, "resource_type_configurations", value)

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> pulumi.Input[builtins.str]:
        """
        The subscription ID of the Azure account.
        """
        return pulumi.get(self, "subscription_id")

    @subscription_id.setter
    def subscription_id(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "subscription_id", value)


if not MYPY:
    class ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict(TypedDict):
        metric_configurations: pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict']]]
        resource_type_name: pulumi.Input[builtins.str]
elif False:
    ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs:
    def __init__(__self__, *,
                 metric_configurations: pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs']]],
                 resource_type_name: pulumi.Input[builtins.str]):
        pulumi.set(__self__, "metric_configurations", metric_configurations)
        pulumi.set(__self__, "resource_type_name", resource_type_name)

    @property
    @pulumi.getter(name="metricConfigurations")
    def metric_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs']]]:
        return pulumi.get(self, "metric_configurations")

    @metric_configurations.setter
    def metric_configurations(self, value: pulumi.Input[Sequence[pulumi.Input['ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs']]]):
        pulumi.set(self, "metric_configurations", value)

    @property
    @pulumi.getter(name="resourceTypeName")
    def resource_type_name(self) -> pulumi.Input[builtins.str]:
        return pulumi.get(self, "resource_type_name")

    @resource_type_name.setter
    def resource_type_name(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "resource_type_name", value)


if not MYPY:
    class ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict(TypedDict):
        aggregations: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
        dimensions: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
        name: pulumi.Input[builtins.str]
elif False:
    ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs:
    def __init__(__self__, *,
                 aggregations: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
                 dimensions: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
                 name: pulumi.Input[builtins.str]):
        pulumi.set(__self__, "aggregations", aggregations)
        pulumi.set(__self__, "dimensions", dimensions)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def aggregations(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
        return pulumi.get(self, "aggregations")

    @aggregations.setter
    def aggregations(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        pulumi.set(self, "aggregations", value)

    @property
    @pulumi.getter
    def dimensions(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
        return pulumi.get(self, "dimensions")

    @dimensions.setter
    def dimensions(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
        pulumi.set(self, "dimensions", value)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[builtins.str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "name", value)


if not MYPY:
    class ProviderAzureCredentialResourceDiscoveryTagFilterArgsDict(TypedDict):
        key: pulumi.Input[builtins.str]
        """
        The key of the tag filter.
        """
        value: pulumi.Input[builtins.str]
        """
        The value of the tag filter.
        """
elif False:
    ProviderAzureCredentialResourceDiscoveryTagFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAzureCredentialResourceDiscoveryTagFilterArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[builtins.str],
                 value: pulumi.Input[builtins.str]):
        """
        :param pulumi.Input[builtins.str] key: The key of the tag filter.
        :param pulumi.Input[builtins.str] value: The value of the tag filter.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[builtins.str]:
        """
        The key of the tag filter.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> pulumi.Input[builtins.str]:
        """
        The value of the tag filter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobCustomNamespaceArgsDict(TypedDict):
        name: builtins.str
        """
        The name of the custom namespace to scrape.
        """
        scrape_interval_seconds: builtins.int
        """
        The interval in seconds to scrape the custom namespace.
        """
        metrics: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict']]
        """
        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.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobCustomNamespaceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobCustomNamespaceArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 scrape_interval_seconds: builtins.int,
                 metrics: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']] = None):
        """
        :param builtins.str name: The name of the custom namespace to scrape.
        :param builtins.int scrape_interval_seconds: The interval in seconds to scrape the custom namespace.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs'] metrics: 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.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "scrape_interval_seconds", scrape_interval_seconds)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        The name of the custom namespace to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="scrapeIntervalSeconds")
    def scrape_interval_seconds(self) -> builtins.int:
        """
        The interval in seconds to scrape the custom namespace.
        """
        return pulumi.get(self, "scrape_interval_seconds")

    @scrape_interval_seconds.setter
    def scrape_interval_seconds(self, value: builtins.int):
        pulumi.set(self, "scrape_interval_seconds", value)

    @property
    @pulumi.getter
    def metrics(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']]:
        """
        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.
        """
        return pulumi.get(self, "metrics")

    @metrics.setter
    def metrics(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs']]):
        pulumi.set(self, "metrics", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict(TypedDict):
        name: builtins.str
        """
        The name of the metric to scrape.
        """
        statistics: Sequence[builtins.str]
        """
        A set of statistics to scrape.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobCustomNamespaceMetricArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 statistics: Sequence[builtins.str]):
        """
        :param builtins.str name: The name of the metric to scrape.
        :param Sequence[builtins.str] statistics: A set of statistics to scrape.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "statistics", statistics)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        The name of the metric to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def statistics(self) -> Sequence[builtins.str]:
        """
        A set of statistics to scrape.
        """
        return pulumi.get(self, "statistics")

    @statistics.setter
    def statistics(self, value: Sequence[builtins.str]):
        pulumi.set(self, "statistics", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobServiceArgsDict(TypedDict):
        name: builtins.str
        """
        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.
        """
        scrape_interval_seconds: builtins.int
        """
        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.
        """
        tags_to_add_to_metrics: Sequence[builtins.str]
        """
        A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
        metrics: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobServiceMetricArgsDict']]
        """
        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.
        """
        resource_discovery_tag_filters: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict']]
        """
        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.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobServiceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobServiceArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 scrape_interval_seconds: builtins.int,
                 tags_to_add_to_metrics: Sequence[builtins.str],
                 metrics: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobServiceMetricArgs']] = None,
                 resource_discovery_tag_filters: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']] = None):
        """
        :param builtins.str name: 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.
        :param builtins.int scrape_interval_seconds: 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.
        :param Sequence[builtins.str] tags_to_add_to_metrics: A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobServiceMetricArgs'] metrics: 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.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs'] resource_discovery_tag_filters: 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.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "scrape_interval_seconds", scrape_interval_seconds)
        pulumi.set(__self__, "tags_to_add_to_metrics", tags_to_add_to_metrics)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)
        if resource_discovery_tag_filters is not None:
            pulumi.set(__self__, "resource_discovery_tag_filters", resource_discovery_tag_filters)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        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.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="scrapeIntervalSeconds")
    def scrape_interval_seconds(self) -> builtins.int:
        """
        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.
        """
        return pulumi.get(self, "scrape_interval_seconds")

    @scrape_interval_seconds.setter
    def scrape_interval_seconds(self, value: builtins.int):
        pulumi.set(self, "scrape_interval_seconds", value)

    @property
    @pulumi.getter(name="tagsToAddToMetrics")
    def tags_to_add_to_metrics(self) -> Sequence[builtins.str]:
        """
        A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
        return pulumi.get(self, "tags_to_add_to_metrics")

    @tags_to_add_to_metrics.setter
    def tags_to_add_to_metrics(self, value: Sequence[builtins.str]):
        pulumi.set(self, "tags_to_add_to_metrics", value)

    @property
    @pulumi.getter
    def metrics(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobServiceMetricArgs']]:
        """
        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.
        """
        return pulumi.get(self, "metrics")

    @metrics.setter
    def metrics(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobServiceMetricArgs']]):
        pulumi.set(self, "metrics", value)

    @property
    @pulumi.getter(name="resourceDiscoveryTagFilters")
    def resource_discovery_tag_filters(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']]:
        """
        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.
        """
        return pulumi.get(self, "resource_discovery_tag_filters")

    @resource_discovery_tag_filters.setter
    def resource_discovery_tag_filters(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs']]):
        pulumi.set(self, "resource_discovery_tag_filters", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobServiceMetricArgsDict(TypedDict):
        name: builtins.str
        """
        The name of the metric to scrape.
        """
        statistics: Sequence[builtins.str]
        """
        A set of statistics to scrape.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobServiceMetricArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobServiceMetricArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 statistics: Sequence[builtins.str]):
        """
        :param builtins.str name: The name of the metric to scrape.
        :param Sequence[builtins.str] statistics: A set of statistics to scrape.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "statistics", statistics)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        The name of the metric to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def statistics(self) -> Sequence[builtins.str]:
        """
        A set of statistics to scrape.
        """
        return pulumi.get(self, "statistics")

    @statistics.setter
    def statistics(self, value: Sequence[builtins.str]):
        pulumi.set(self, "statistics", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict(TypedDict):
        key: builtins.str
        """
        The key of the tag filter.
        """
        value: builtins.str
        """
        The value of the tag filter.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobServiceResourceDiscoveryTagFilterArgs:
    def __init__(__self__, *,
                 key: builtins.str,
                 value: builtins.str):
        """
        :param builtins.str key: The key of the tag filter.
        :param builtins.str value: The value of the tag filter.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> builtins.str:
        """
        The key of the tag filter.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: builtins.str):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> builtins.str:
        """
        The value of the tag filter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: builtins.str):
        pulumi.set(self, "value", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobsScrapeJobArgsDict(TypedDict):
        aws_account_resource_id: builtins.str
        """
        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 `resource_id` attribute of the `cloudProvider.AwsAccount` resource.
        """
        disabled_reason: builtins.str
        """
        When the AWS CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
        """
        enabled: builtins.bool
        """
        Whether the AWS CloudWatch Scrape Job is enabled or not.
        """
        export_tags: builtins.bool
        """
        When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
        """
        id: builtins.str
        name: builtins.str
        regions: Sequence[builtins.str]
        """
        The set of AWS region names that this AWS CloudWatch Scrape Job is configured to scrape.
        """
        regions_subset_override_used: builtins.bool
        """
        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.
        """
        role_arn: builtins.str
        """
        The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this AWS CloudWatch Scrape Job.
        """
        stack_id: builtins.str
        static_labels: Mapping[str, builtins.str]
        """
        A set of static labels to add to all metrics exported by this scrape job.
        """
        custom_namespaces: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgsDict']]
        """
        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.
        """
        services: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgsDict']]
        """
        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.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobsScrapeJobArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobsScrapeJobArgs:
    def __init__(__self__, *,
                 aws_account_resource_id: builtins.str,
                 disabled_reason: builtins.str,
                 enabled: builtins.bool,
                 export_tags: builtins.bool,
                 id: builtins.str,
                 name: builtins.str,
                 regions: Sequence[builtins.str],
                 regions_subset_override_used: builtins.bool,
                 role_arn: builtins.str,
                 stack_id: builtins.str,
                 static_labels: Mapping[str, builtins.str],
                 custom_namespaces: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs']] = None,
                 services: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs']] = None):
        """
        :param builtins.str aws_account_resource_id: 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 `resource_id` attribute of the `cloudProvider.AwsAccount` resource.
        :param builtins.str disabled_reason: When the AWS CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
        :param builtins.bool enabled: Whether the AWS CloudWatch Scrape Job is enabled or not.
        :param builtins.bool export_tags: When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
        :param Sequence[builtins.str] regions: The set of AWS region names that this AWS CloudWatch Scrape Job is configured to scrape.
        :param builtins.bool regions_subset_override_used: 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.
        :param builtins.str role_arn: The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this AWS CloudWatch Scrape Job.
        :param Mapping[str, builtins.str] static_labels: A set of static labels to add to all metrics exported by this scrape job.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs'] custom_namespaces: 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.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs'] services: 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.
        """
        pulumi.set(__self__, "aws_account_resource_id", aws_account_resource_id)
        pulumi.set(__self__, "disabled_reason", disabled_reason)
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "export_tags", export_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "regions", regions)
        pulumi.set(__self__, "regions_subset_override_used", regions_subset_override_used)
        pulumi.set(__self__, "role_arn", role_arn)
        pulumi.set(__self__, "stack_id", stack_id)
        pulumi.set(__self__, "static_labels", static_labels)
        if custom_namespaces is not None:
            pulumi.set(__self__, "custom_namespaces", custom_namespaces)
        if services is not None:
            pulumi.set(__self__, "services", services)

    @property
    @pulumi.getter(name="awsAccountResourceId")
    def aws_account_resource_id(self) -> builtins.str:
        """
        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 `resource_id` attribute of the `cloudProvider.AwsAccount` resource.
        """
        return pulumi.get(self, "aws_account_resource_id")

    @aws_account_resource_id.setter
    def aws_account_resource_id(self, value: builtins.str):
        pulumi.set(self, "aws_account_resource_id", value)

    @property
    @pulumi.getter(name="disabledReason")
    def disabled_reason(self) -> builtins.str:
        """
        When the AWS CloudWatch Scrape Job is disabled, this will show the reason that it is in that state.
        """
        return pulumi.get(self, "disabled_reason")

    @disabled_reason.setter
    def disabled_reason(self, value: builtins.str):
        pulumi.set(self, "disabled_reason", value)

    @property
    @pulumi.getter
    def enabled(self) -> builtins.bool:
        """
        Whether the AWS CloudWatch Scrape Job is enabled or not.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: builtins.bool):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="exportTags")
    def export_tags(self) -> builtins.bool:
        """
        When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`.
        """
        return pulumi.get(self, "export_tags")

    @export_tags.setter
    def export_tags(self, value: builtins.bool):
        pulumi.set(self, "export_tags", value)

    @property
    @pulumi.getter
    def id(self) -> builtins.str:
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: builtins.str):
        pulumi.set(self, "id", value)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def regions(self) -> Sequence[builtins.str]:
        """
        The set of AWS region names that this AWS CloudWatch Scrape Job is configured to scrape.
        """
        return pulumi.get(self, "regions")

    @regions.setter
    def regions(self, value: Sequence[builtins.str]):
        pulumi.set(self, "regions", value)

    @property
    @pulumi.getter(name="regionsSubsetOverrideUsed")
    def regions_subset_override_used(self) -> builtins.bool:
        """
        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.
        """
        return pulumi.get(self, "regions_subset_override_used")

    @regions_subset_override_used.setter
    def regions_subset_override_used(self, value: builtins.bool):
        pulumi.set(self, "regions_subset_override_used", value)

    @property
    @pulumi.getter(name="roleArn")
    def role_arn(self) -> builtins.str:
        """
        The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this AWS CloudWatch Scrape Job.
        """
        return pulumi.get(self, "role_arn")

    @role_arn.setter
    def role_arn(self, value: builtins.str):
        pulumi.set(self, "role_arn", value)

    @property
    @pulumi.getter(name="stackId")
    def stack_id(self) -> builtins.str:
        return pulumi.get(self, "stack_id")

    @stack_id.setter
    def stack_id(self, value: builtins.str):
        pulumi.set(self, "stack_id", value)

    @property
    @pulumi.getter(name="staticLabels")
    def static_labels(self) -> Mapping[str, builtins.str]:
        """
        A set of static labels to add to all metrics exported by this scrape job.
        """
        return pulumi.get(self, "static_labels")

    @static_labels.setter
    def static_labels(self, value: Mapping[str, builtins.str]):
        pulumi.set(self, "static_labels", value)

    @property
    @pulumi.getter(name="customNamespaces")
    def custom_namespaces(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs']]:
        """
        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.
        """
        return pulumi.get(self, "custom_namespaces")

    @custom_namespaces.setter
    def custom_namespaces(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs']]):
        pulumi.set(self, "custom_namespaces", value)

    @property
    @pulumi.getter
    def services(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs']]:
        """
        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.
        """
        return pulumi.get(self, "services")

    @services.setter
    def services(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs']]):
        pulumi.set(self, "services", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgsDict(TypedDict):
        name: builtins.str
        """
        The name of the custom namespace to scrape.
        """
        scrape_interval_seconds: builtins.int
        """
        The interval in seconds to scrape the custom namespace.
        """
        metrics: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgsDict']]
        """
        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.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 scrape_interval_seconds: builtins.int,
                 metrics: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs']] = None):
        """
        :param builtins.str name: The name of the custom namespace to scrape.
        :param builtins.int scrape_interval_seconds: The interval in seconds to scrape the custom namespace.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs'] metrics: 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.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "scrape_interval_seconds", scrape_interval_seconds)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        The name of the custom namespace to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="scrapeIntervalSeconds")
    def scrape_interval_seconds(self) -> builtins.int:
        """
        The interval in seconds to scrape the custom namespace.
        """
        return pulumi.get(self, "scrape_interval_seconds")

    @scrape_interval_seconds.setter
    def scrape_interval_seconds(self, value: builtins.int):
        pulumi.set(self, "scrape_interval_seconds", value)

    @property
    @pulumi.getter
    def metrics(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs']]:
        """
        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.
        """
        return pulumi.get(self, "metrics")

    @metrics.setter
    def metrics(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs']]):
        pulumi.set(self, "metrics", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgsDict(TypedDict):
        name: builtins.str
        """
        The name of the metric to scrape.
        """
        statistics: Sequence[builtins.str]
        """
        A set of statistics to scrape.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobsScrapeJobCustomNamespaceMetricArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 statistics: Sequence[builtins.str]):
        """
        :param builtins.str name: The name of the metric to scrape.
        :param Sequence[builtins.str] statistics: A set of statistics to scrape.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "statistics", statistics)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        The name of the metric to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def statistics(self) -> Sequence[builtins.str]:
        """
        A set of statistics to scrape.
        """
        return pulumi.get(self, "statistics")

    @statistics.setter
    def statistics(self, value: Sequence[builtins.str]):
        pulumi.set(self, "statistics", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgsDict(TypedDict):
        name: builtins.str
        """
        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.
        """
        scrape_interval_seconds: builtins.int
        """
        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.
        """
        tags_to_add_to_metrics: Sequence[builtins.str]
        """
        A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
        metrics: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgsDict']]
        """
        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.
        """
        resource_discovery_tag_filters: NotRequired[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgsDict']]
        """
        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.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 scrape_interval_seconds: builtins.int,
                 tags_to_add_to_metrics: Sequence[builtins.str],
                 metrics: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs']] = None,
                 resource_discovery_tag_filters: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs']] = None):
        """
        :param builtins.str name: 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.
        :param builtins.int scrape_interval_seconds: 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.
        :param Sequence[builtins.str] tags_to_add_to_metrics: A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs'] metrics: 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.
        :param Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs'] resource_discovery_tag_filters: 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.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "scrape_interval_seconds", scrape_interval_seconds)
        pulumi.set(__self__, "tags_to_add_to_metrics", tags_to_add_to_metrics)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)
        if resource_discovery_tag_filters is not None:
            pulumi.set(__self__, "resource_discovery_tag_filters", resource_discovery_tag_filters)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        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.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="scrapeIntervalSeconds")
    def scrape_interval_seconds(self) -> builtins.int:
        """
        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.
        """
        return pulumi.get(self, "scrape_interval_seconds")

    @scrape_interval_seconds.setter
    def scrape_interval_seconds(self, value: builtins.int):
        pulumi.set(self, "scrape_interval_seconds", value)

    @property
    @pulumi.getter(name="tagsToAddToMetrics")
    def tags_to_add_to_metrics(self) -> Sequence[builtins.str]:
        """
        A set of tags to add to all metrics exported by this scrape job, for use in PromQL queries.
        """
        return pulumi.get(self, "tags_to_add_to_metrics")

    @tags_to_add_to_metrics.setter
    def tags_to_add_to_metrics(self, value: Sequence[builtins.str]):
        pulumi.set(self, "tags_to_add_to_metrics", value)

    @property
    @pulumi.getter
    def metrics(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs']]:
        """
        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.
        """
        return pulumi.get(self, "metrics")

    @metrics.setter
    def metrics(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs']]):
        pulumi.set(self, "metrics", value)

    @property
    @pulumi.getter(name="resourceDiscoveryTagFilters")
    def resource_discovery_tag_filters(self) -> Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs']]:
        """
        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.
        """
        return pulumi.get(self, "resource_discovery_tag_filters")

    @resource_discovery_tag_filters.setter
    def resource_discovery_tag_filters(self, value: Optional[Sequence['GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs']]):
        pulumi.set(self, "resource_discovery_tag_filters", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgsDict(TypedDict):
        name: builtins.str
        """
        The name of the metric to scrape.
        """
        statistics: Sequence[builtins.str]
        """
        A set of statistics to scrape.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceMetricArgs:
    def __init__(__self__, *,
                 name: builtins.str,
                 statistics: Sequence[builtins.str]):
        """
        :param builtins.str name: The name of the metric to scrape.
        :param Sequence[builtins.str] statistics: A set of statistics to scrape.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "statistics", statistics)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        """
        The name of the metric to scrape.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def statistics(self) -> Sequence[builtins.str]:
        """
        A set of statistics to scrape.
        """
        return pulumi.get(self, "statistics")

    @statistics.setter
    def statistics(self, value: Sequence[builtins.str]):
        pulumi.set(self, "statistics", value)


if not MYPY:
    class GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgsDict(TypedDict):
        key: builtins.str
        """
        The key of the tag filter.
        """
        value: builtins.str
        """
        The value of the tag filter.
        """
elif False:
    GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAwsCloudwatchScrapeJobsScrapeJobServiceResourceDiscoveryTagFilterArgs:
    def __init__(__self__, *,
                 key: builtins.str,
                 value: builtins.str):
        """
        :param builtins.str key: The key of the tag filter.
        :param builtins.str value: The value of the tag filter.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> builtins.str:
        """
        The key of the tag filter.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: builtins.str):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> builtins.str:
        """
        The value of the tag filter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: builtins.str):
        pulumi.set(self, "value", value)


if not MYPY:
    class GetProviderAzureCredentialAutoDiscoveryConfigurationArgsDict(TypedDict):
        resource_type_configurations: Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict']
        """
        The list of resource type configurations.
        """
        subscription_id: builtins.str
        """
        The subscription ID of the Azure account.
        """
elif False:
    GetProviderAzureCredentialAutoDiscoveryConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAzureCredentialAutoDiscoveryConfigurationArgs:
    def __init__(__self__, *,
                 resource_type_configurations: Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs'],
                 subscription_id: builtins.str):
        """
        :param Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs'] resource_type_configurations: The list of resource type configurations.
        :param builtins.str subscription_id: The subscription ID of the Azure account.
        """
        pulumi.set(__self__, "resource_type_configurations", resource_type_configurations)
        pulumi.set(__self__, "subscription_id", subscription_id)

    @property
    @pulumi.getter(name="resourceTypeConfigurations")
    def resource_type_configurations(self) -> Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs']:
        """
        The list of resource type configurations.
        """
        return pulumi.get(self, "resource_type_configurations")

    @resource_type_configurations.setter
    def resource_type_configurations(self, value: Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs']):
        pulumi.set(self, "resource_type_configurations", value)

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> builtins.str:
        """
        The subscription ID of the Azure account.
        """
        return pulumi.get(self, "subscription_id")

    @subscription_id.setter
    def subscription_id(self, value: builtins.str):
        pulumi.set(self, "subscription_id", value)


if not MYPY:
    class GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict(TypedDict):
        metric_configurations: Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict']
        resource_type_name: builtins.str
elif False:
    GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationArgs:
    def __init__(__self__, *,
                 metric_configurations: Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs'],
                 resource_type_name: builtins.str):
        pulumi.set(__self__, "metric_configurations", metric_configurations)
        pulumi.set(__self__, "resource_type_name", resource_type_name)

    @property
    @pulumi.getter(name="metricConfigurations")
    def metric_configurations(self) -> Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs']:
        return pulumi.get(self, "metric_configurations")

    @metric_configurations.setter
    def metric_configurations(self, value: Sequence['GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs']):
        pulumi.set(self, "metric_configurations", value)

    @property
    @pulumi.getter(name="resourceTypeName")
    def resource_type_name(self) -> builtins.str:
        return pulumi.get(self, "resource_type_name")

    @resource_type_name.setter
    def resource_type_name(self, value: builtins.str):
        pulumi.set(self, "resource_type_name", value)


if not MYPY:
    class GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict(TypedDict):
        aggregations: Sequence[builtins.str]
        dimensions: Sequence[builtins.str]
        name: builtins.str
elif False:
    GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAzureCredentialAutoDiscoveryConfigurationResourceTypeConfigurationMetricConfigurationArgs:
    def __init__(__self__, *,
                 aggregations: Sequence[builtins.str],
                 dimensions: Sequence[builtins.str],
                 name: builtins.str):
        pulumi.set(__self__, "aggregations", aggregations)
        pulumi.set(__self__, "dimensions", dimensions)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def aggregations(self) -> Sequence[builtins.str]:
        return pulumi.get(self, "aggregations")

    @aggregations.setter
    def aggregations(self, value: Sequence[builtins.str]):
        pulumi.set(self, "aggregations", value)

    @property
    @pulumi.getter
    def dimensions(self) -> Sequence[builtins.str]:
        return pulumi.get(self, "dimensions")

    @dimensions.setter
    def dimensions(self, value: Sequence[builtins.str]):
        pulumi.set(self, "dimensions", value)

    @property
    @pulumi.getter
    def name(self) -> builtins.str:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: builtins.str):
        pulumi.set(self, "name", value)


if not MYPY:
    class GetProviderAzureCredentialResourceDiscoveryTagFilterArgsDict(TypedDict):
        key: builtins.str
        """
        The key of the tag filter.
        """
        value: builtins.str
        """
        The value of the tag filter.
        """
elif False:
    GetProviderAzureCredentialResourceDiscoveryTagFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetProviderAzureCredentialResourceDiscoveryTagFilterArgs:
    def __init__(__self__, *,
                 key: builtins.str,
                 value: builtins.str):
        """
        :param builtins.str key: The key of the tag filter.
        :param builtins.str value: The value of the tag filter.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> builtins.str:
        """
        The key of the tag filter.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: builtins.str):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def value(self) -> builtins.str:
        """
        The value of the tag filter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: builtins.str):
        pulumi.set(self, "value", value)


