# 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 as _builtins
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__ = [
    'AlertManagerContactPointArgs',
    'AlertManagerContactPointArgsDict',
    'CockpitEndpointArgs',
    'CockpitEndpointArgsDict',
    'CockpitPushUrlArgs',
    'CockpitPushUrlArgsDict',
    'ExporterDatadogDestinationArgs',
    'ExporterDatadogDestinationArgsDict',
    'ExporterOtlpDestinationArgs',
    'ExporterOtlpDestinationArgsDict',
    'TokenScopesArgs',
    'TokenScopesArgsDict',
]

MYPY = False

if not MYPY:
    class AlertManagerContactPointArgsDict(TypedDict):
        email: NotRequired[pulumi.Input[_builtins.str]]
        """
        Email addresses for the alert receivers
        """
elif False:
    AlertManagerContactPointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AlertManagerContactPointArgs:
    def __init__(__self__, *,
                 email: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] email: Email addresses for the alert receivers
        """
        if email is not None:
            pulumi.set(__self__, "email", email)

    @_builtins.property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Email addresses for the alert receivers
        """
        return pulumi.get(self, "email")

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


if not MYPY:
    class CockpitEndpointArgsDict(TypedDict):
        alertmanager_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).
        """
        grafana_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Deprecated) URL for Grafana.
        """
        logs_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
        metrics_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
        traces_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Deprecated) URL for [traces](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#traces) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
elif False:
    CockpitEndpointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CockpitEndpointArgs:
    def __init__(__self__, *,
                 alertmanager_url: Optional[pulumi.Input[_builtins.str]] = None,
                 grafana_url: Optional[pulumi.Input[_builtins.str]] = None,
                 logs_url: Optional[pulumi.Input[_builtins.str]] = None,
                 metrics_url: Optional[pulumi.Input[_builtins.str]] = None,
                 traces_url: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] alertmanager_url: (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).
        :param pulumi.Input[_builtins.str] grafana_url: (Deprecated) URL for Grafana.
        :param pulumi.Input[_builtins.str] logs_url: (Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        :param pulumi.Input[_builtins.str] metrics_url: (Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        :param pulumi.Input[_builtins.str] traces_url: (Deprecated) URL for [traces](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#traces) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
        if alertmanager_url is not None:
            pulumi.set(__self__, "alertmanager_url", alertmanager_url)
        if grafana_url is not None:
            pulumi.set(__self__, "grafana_url", grafana_url)
        if logs_url is not None:
            pulumi.set(__self__, "logs_url", logs_url)
        if metrics_url is not None:
            pulumi.set(__self__, "metrics_url", metrics_url)
        if traces_url is not None:
            pulumi.set(__self__, "traces_url", traces_url)

    @_builtins.property
    @pulumi.getter(name="alertmanagerUrl")
    def alertmanager_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).
        """
        return pulumi.get(self, "alertmanager_url")

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

    @_builtins.property
    @pulumi.getter(name="grafanaUrl")
    def grafana_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Deprecated) URL for Grafana.
        """
        return pulumi.get(self, "grafana_url")

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

    @_builtins.property
    @pulumi.getter(name="logsUrl")
    def logs_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
        return pulumi.get(self, "logs_url")

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

    @_builtins.property
    @pulumi.getter(name="metricsUrl")
    def metrics_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
        return pulumi.get(self, "metrics_url")

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

    @_builtins.property
    @pulumi.getter(name="tracesUrl")
    def traces_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Deprecated) URL for [traces](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#traces) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.
        """
        return pulumi.get(self, "traces_url")

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


if not MYPY:
    class CockpitPushUrlArgsDict(TypedDict):
        push_logs_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        Push URL for logs (Grafana Loki)
        """
        push_metrics_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        Push URL for metrics (Grafana Mimir)
        """
elif False:
    CockpitPushUrlArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CockpitPushUrlArgs:
    def __init__(__self__, *,
                 push_logs_url: Optional[pulumi.Input[_builtins.str]] = None,
                 push_metrics_url: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] push_logs_url: Push URL for logs (Grafana Loki)
        :param pulumi.Input[_builtins.str] push_metrics_url: Push URL for metrics (Grafana Mimir)
        """
        if push_logs_url is not None:
            pulumi.set(__self__, "push_logs_url", push_logs_url)
        if push_metrics_url is not None:
            pulumi.set(__self__, "push_metrics_url", push_metrics_url)

    @_builtins.property
    @pulumi.getter(name="pushLogsUrl")
    def push_logs_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Push URL for logs (Grafana Loki)
        """
        return pulumi.get(self, "push_logs_url")

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

    @_builtins.property
    @pulumi.getter(name="pushMetricsUrl")
    def push_metrics_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Push URL for metrics (Grafana Mimir)
        """
        return pulumi.get(self, "push_metrics_url")

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


if not MYPY:
    class ExporterDatadogDestinationArgsDict(TypedDict):
        api_key: pulumi.Input[_builtins.str]
        """
        Datadog API key. Sensitive.
        """
        endpoint: NotRequired[pulumi.Input[_builtins.str]]
        """
        Datadog endpoint URL. Defaults to `https://api.datadoghq.com`.
        """
elif False:
    ExporterDatadogDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ExporterDatadogDestinationArgs:
    def __init__(__self__, *,
                 api_key: pulumi.Input[_builtins.str],
                 endpoint: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] api_key: Datadog API key. Sensitive.
        :param pulumi.Input[_builtins.str] endpoint: Datadog endpoint URL. Defaults to `https://api.datadoghq.com`.
        """
        pulumi.set(__self__, "api_key", api_key)
        if endpoint is not None:
            pulumi.set(__self__, "endpoint", endpoint)

    @_builtins.property
    @pulumi.getter(name="apiKey")
    def api_key(self) -> pulumi.Input[_builtins.str]:
        """
        Datadog API key. Sensitive.
        """
        return pulumi.get(self, "api_key")

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

    @_builtins.property
    @pulumi.getter
    def endpoint(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Datadog endpoint URL. Defaults to `https://api.datadoghq.com`.
        """
        return pulumi.get(self, "endpoint")

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


if not MYPY:
    class ExporterOtlpDestinationArgsDict(TypedDict):
        endpoint: pulumi.Input[_builtins.str]
        """
        OTLP endpoint URL.
        """
        headers: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Headers to include in requests.
        """
elif False:
    ExporterOtlpDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ExporterOtlpDestinationArgs:
    def __init__(__self__, *,
                 endpoint: pulumi.Input[_builtins.str],
                 headers: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] endpoint: OTLP endpoint URL.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] headers: Headers to include in requests.
        """
        pulumi.set(__self__, "endpoint", endpoint)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)

    @_builtins.property
    @pulumi.getter
    def endpoint(self) -> pulumi.Input[_builtins.str]:
        """
        OTLP endpoint URL.
        """
        return pulumi.get(self, "endpoint")

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

    @_builtins.property
    @pulumi.getter
    def headers(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Headers to include in requests.
        """
        return pulumi.get(self, "headers")

    @headers.setter
    def headers(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "headers", value)


if not MYPY:
    class TokenScopesArgsDict(TypedDict):
        query_logs: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to query logs.
        """
        query_metrics: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to query metrics.
        """
        query_traces: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to query traces.
        """
        setup_alerts: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to set up alerts.
        """
        setup_logs_rules: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to set up logs rules.
        """
        setup_metrics_rules: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to set up metrics rules.
        """
        write_logs: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to write logs.
        """
        write_metrics: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to write metrics.
        """
        write_traces: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Permission to write traces.
        """
elif False:
    TokenScopesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TokenScopesArgs:
    def __init__(__self__, *,
                 query_logs: Optional[pulumi.Input[_builtins.bool]] = None,
                 query_metrics: Optional[pulumi.Input[_builtins.bool]] = None,
                 query_traces: Optional[pulumi.Input[_builtins.bool]] = None,
                 setup_alerts: Optional[pulumi.Input[_builtins.bool]] = None,
                 setup_logs_rules: Optional[pulumi.Input[_builtins.bool]] = None,
                 setup_metrics_rules: Optional[pulumi.Input[_builtins.bool]] = None,
                 write_logs: Optional[pulumi.Input[_builtins.bool]] = None,
                 write_metrics: Optional[pulumi.Input[_builtins.bool]] = None,
                 write_traces: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] query_logs: Permission to query logs.
        :param pulumi.Input[_builtins.bool] query_metrics: Permission to query metrics.
        :param pulumi.Input[_builtins.bool] query_traces: Permission to query traces.
        :param pulumi.Input[_builtins.bool] setup_alerts: Permission to set up alerts.
        :param pulumi.Input[_builtins.bool] setup_logs_rules: Permission to set up logs rules.
        :param pulumi.Input[_builtins.bool] setup_metrics_rules: Permission to set up metrics rules.
        :param pulumi.Input[_builtins.bool] write_logs: Permission to write logs.
        :param pulumi.Input[_builtins.bool] write_metrics: Permission to write metrics.
        :param pulumi.Input[_builtins.bool] write_traces: Permission to write traces.
        """
        if query_logs is not None:
            pulumi.set(__self__, "query_logs", query_logs)
        if query_metrics is not None:
            pulumi.set(__self__, "query_metrics", query_metrics)
        if query_traces is not None:
            pulumi.set(__self__, "query_traces", query_traces)
        if setup_alerts is not None:
            pulumi.set(__self__, "setup_alerts", setup_alerts)
        if setup_logs_rules is not None:
            pulumi.set(__self__, "setup_logs_rules", setup_logs_rules)
        if setup_metrics_rules is not None:
            pulumi.set(__self__, "setup_metrics_rules", setup_metrics_rules)
        if write_logs is not None:
            pulumi.set(__self__, "write_logs", write_logs)
        if write_metrics is not None:
            pulumi.set(__self__, "write_metrics", write_metrics)
        if write_traces is not None:
            pulumi.set(__self__, "write_traces", write_traces)

    @_builtins.property
    @pulumi.getter(name="queryLogs")
    def query_logs(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to query logs.
        """
        return pulumi.get(self, "query_logs")

    @query_logs.setter
    def query_logs(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "query_logs", value)

    @_builtins.property
    @pulumi.getter(name="queryMetrics")
    def query_metrics(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to query metrics.
        """
        return pulumi.get(self, "query_metrics")

    @query_metrics.setter
    def query_metrics(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "query_metrics", value)

    @_builtins.property
    @pulumi.getter(name="queryTraces")
    def query_traces(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to query traces.
        """
        return pulumi.get(self, "query_traces")

    @query_traces.setter
    def query_traces(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "query_traces", value)

    @_builtins.property
    @pulumi.getter(name="setupAlerts")
    def setup_alerts(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to set up alerts.
        """
        return pulumi.get(self, "setup_alerts")

    @setup_alerts.setter
    def setup_alerts(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "setup_alerts", value)

    @_builtins.property
    @pulumi.getter(name="setupLogsRules")
    def setup_logs_rules(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to set up logs rules.
        """
        return pulumi.get(self, "setup_logs_rules")

    @setup_logs_rules.setter
    def setup_logs_rules(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "setup_logs_rules", value)

    @_builtins.property
    @pulumi.getter(name="setupMetricsRules")
    def setup_metrics_rules(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to set up metrics rules.
        """
        return pulumi.get(self, "setup_metrics_rules")

    @setup_metrics_rules.setter
    def setup_metrics_rules(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "setup_metrics_rules", value)

    @_builtins.property
    @pulumi.getter(name="writeLogs")
    def write_logs(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to write logs.
        """
        return pulumi.get(self, "write_logs")

    @write_logs.setter
    def write_logs(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "write_logs", value)

    @_builtins.property
    @pulumi.getter(name="writeMetrics")
    def write_metrics(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to write metrics.
        """
        return pulumi.get(self, "write_metrics")

    @write_metrics.setter
    def write_metrics(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "write_metrics", value)

    @_builtins.property
    @pulumi.getter(name="writeTraces")
    def write_traces(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Permission to write traces.
        """
        return pulumi.get(self, "write_traces")

    @write_traces.setter
    def write_traces(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "write_traces", value)


