# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

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__ = [
    'IntegrationDefaultRouteArgs',
    'IntegrationDefaultRouteArgsDict',
    'IntegrationDefaultRouteMsteamsArgs',
    'IntegrationDefaultRouteMsteamsArgsDict',
    'IntegrationDefaultRouteSlackArgs',
    'IntegrationDefaultRouteSlackArgsDict',
    'IntegrationDefaultRouteTelegramArgs',
    'IntegrationDefaultRouteTelegramArgsDict',
    'IntegrationTemplatesArgs',
    'IntegrationTemplatesArgsDict',
    'IntegrationTemplatesEmailArgs',
    'IntegrationTemplatesEmailArgsDict',
    'IntegrationTemplatesMicrosoftTeamsArgs',
    'IntegrationTemplatesMicrosoftTeamsArgsDict',
    'IntegrationTemplatesMobileAppArgs',
    'IntegrationTemplatesMobileAppArgsDict',
    'IntegrationTemplatesPhoneCallArgs',
    'IntegrationTemplatesPhoneCallArgsDict',
    'IntegrationTemplatesSlackArgs',
    'IntegrationTemplatesSlackArgsDict',
    'IntegrationTemplatesSmsArgs',
    'IntegrationTemplatesSmsArgsDict',
    'IntegrationTemplatesTelegramArgs',
    'IntegrationTemplatesTelegramArgsDict',
    'IntegrationTemplatesWebArgs',
    'IntegrationTemplatesWebArgsDict',
    'RouteMsteamsArgs',
    'RouteMsteamsArgsDict',
    'RouteSlackArgs',
    'RouteSlackArgsDict',
    'RouteTelegramArgs',
    'RouteTelegramArgsDict',
    'ScheduleSlackArgs',
    'ScheduleSlackArgsDict',
]

MYPY = False

if not MYPY:
    class IntegrationDefaultRouteArgsDict(TypedDict):
        escalation_chain_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the escalation chain.
        """
        id: NotRequired[pulumi.Input[str]]
        msteams: NotRequired[pulumi.Input['IntegrationDefaultRouteMsteamsArgsDict']]
        """
        MS teams-specific settings for a route.
        """
        slack: NotRequired[pulumi.Input['IntegrationDefaultRouteSlackArgsDict']]
        """
        Slack-specific settings for a route.
        """
        telegram: NotRequired[pulumi.Input['IntegrationDefaultRouteTelegramArgsDict']]
        """
        Telegram-specific settings for a route.
        """
elif False:
    IntegrationDefaultRouteArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationDefaultRouteArgs:
    def __init__(__self__, *,
                 escalation_chain_id: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 msteams: Optional[pulumi.Input['IntegrationDefaultRouteMsteamsArgs']] = None,
                 slack: Optional[pulumi.Input['IntegrationDefaultRouteSlackArgs']] = None,
                 telegram: Optional[pulumi.Input['IntegrationDefaultRouteTelegramArgs']] = None):
        """
        :param pulumi.Input[str] escalation_chain_id: The ID of the escalation chain.
        :param pulumi.Input['IntegrationDefaultRouteMsteamsArgs'] msteams: MS teams-specific settings for a route.
        :param pulumi.Input['IntegrationDefaultRouteSlackArgs'] slack: Slack-specific settings for a route.
        :param pulumi.Input['IntegrationDefaultRouteTelegramArgs'] telegram: Telegram-specific settings for a route.
        """
        if escalation_chain_id is not None:
            pulumi.set(__self__, "escalation_chain_id", escalation_chain_id)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if msteams is not None:
            pulumi.set(__self__, "msteams", msteams)
        if slack is not None:
            pulumi.set(__self__, "slack", slack)
        if telegram is not None:
            pulumi.set(__self__, "telegram", telegram)

    @property
    @pulumi.getter(name="escalationChainId")
    def escalation_chain_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the escalation chain.
        """
        return pulumi.get(self, "escalation_chain_id")

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

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

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

    @property
    @pulumi.getter
    def msteams(self) -> Optional[pulumi.Input['IntegrationDefaultRouteMsteamsArgs']]:
        """
        MS teams-specific settings for a route.
        """
        return pulumi.get(self, "msteams")

    @msteams.setter
    def msteams(self, value: Optional[pulumi.Input['IntegrationDefaultRouteMsteamsArgs']]):
        pulumi.set(self, "msteams", value)

    @property
    @pulumi.getter
    def slack(self) -> Optional[pulumi.Input['IntegrationDefaultRouteSlackArgs']]:
        """
        Slack-specific settings for a route.
        """
        return pulumi.get(self, "slack")

    @slack.setter
    def slack(self, value: Optional[pulumi.Input['IntegrationDefaultRouteSlackArgs']]):
        pulumi.set(self, "slack", value)

    @property
    @pulumi.getter
    def telegram(self) -> Optional[pulumi.Input['IntegrationDefaultRouteTelegramArgs']]:
        """
        Telegram-specific settings for a route.
        """
        return pulumi.get(self, "telegram")

    @telegram.setter
    def telegram(self, value: Optional[pulumi.Input['IntegrationDefaultRouteTelegramArgs']]):
        pulumi.set(self, "telegram", value)


if not MYPY:
    class IntegrationDefaultRouteMsteamsArgsDict(TypedDict):
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Enable notification in MS teams. Defaults to `true`.
        """
        id: NotRequired[pulumi.Input[str]]
        """
        MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
        """
elif False:
    IntegrationDefaultRouteMsteamsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationDefaultRouteMsteamsArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Enable notification in MS teams. Defaults to `true`.
        :param pulumi.Input[str] id: MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
        """
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable notification in MS teams. Defaults to `true`.
        """
        return pulumi.get(self, "enabled")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
        """
        return pulumi.get(self, "id")

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


if not MYPY:
    class IntegrationDefaultRouteSlackArgsDict(TypedDict):
        channel_id: NotRequired[pulumi.Input[str]]
        """
        Slack channel id. Alerts will be directed to this channel in Slack.
        """
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Enable notification in Slack. Defaults to `true`.
        """
elif False:
    IntegrationDefaultRouteSlackArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationDefaultRouteSlackArgs:
    def __init__(__self__, *,
                 channel_id: Optional[pulumi.Input[str]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] channel_id: Slack channel id. Alerts will be directed to this channel in Slack.
        :param pulumi.Input[bool] enabled: Enable notification in Slack. Defaults to `true`.
        """
        if channel_id is not None:
            pulumi.set(__self__, "channel_id", channel_id)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter(name="channelId")
    def channel_id(self) -> Optional[pulumi.Input[str]]:
        """
        Slack channel id. Alerts will be directed to this channel in Slack.
        """
        return pulumi.get(self, "channel_id")

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

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable notification in Slack. Defaults to `true`.
        """
        return pulumi.get(self, "enabled")

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


if not MYPY:
    class IntegrationDefaultRouteTelegramArgsDict(TypedDict):
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Enable notification in Telegram. Defaults to `true`.
        """
        id: NotRequired[pulumi.Input[str]]
        """
        Telegram channel id. Alerts will be directed to this channel in Telegram.
        """
elif False:
    IntegrationDefaultRouteTelegramArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationDefaultRouteTelegramArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Enable notification in Telegram. Defaults to `true`.
        :param pulumi.Input[str] id: Telegram channel id. Alerts will be directed to this channel in Telegram.
        """
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable notification in Telegram. Defaults to `true`.
        """
        return pulumi.get(self, "enabled")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        Telegram channel id. Alerts will be directed to this channel in Telegram.
        """
        return pulumi.get(self, "id")

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


if not MYPY:
    class IntegrationTemplatesArgsDict(TypedDict):
        acknowledge_signal: NotRequired[pulumi.Input[str]]
        """
        Template for sending a signal to acknowledge the Incident.
        """
        email: NotRequired[pulumi.Input['IntegrationTemplatesEmailArgsDict']]
        """
        Templates for Email.
        """
        grouping_key: NotRequired[pulumi.Input[str]]
        """
        Template for the key by which alerts are grouped.
        """
        microsoft_teams: NotRequired[pulumi.Input['IntegrationTemplatesMicrosoftTeamsArgsDict']]
        """
        Templates for Microsoft Teams. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
        """
        mobile_app: NotRequired[pulumi.Input['IntegrationTemplatesMobileAppArgsDict']]
        """
        Templates for Mobile app push notifications.
        """
        phone_call: NotRequired[pulumi.Input['IntegrationTemplatesPhoneCallArgsDict']]
        """
        Templates for Phone Call.
        """
        resolve_signal: NotRequired[pulumi.Input[str]]
        """
        Template for sending a signal to resolve the Incident.
        """
        slack: NotRequired[pulumi.Input['IntegrationTemplatesSlackArgsDict']]
        """
        Templates for Slack.
        """
        sms: NotRequired[pulumi.Input['IntegrationTemplatesSmsArgsDict']]
        """
        Templates for SMS.
        """
        source_link: NotRequired[pulumi.Input[str]]
        """
        Template for a source link.
        """
        telegram: NotRequired[pulumi.Input['IntegrationTemplatesTelegramArgsDict']]
        """
        Templates for Telegram.
        """
        web: NotRequired[pulumi.Input['IntegrationTemplatesWebArgsDict']]
        """
        Templates for Web.
        """
elif False:
    IntegrationTemplatesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesArgs:
    def __init__(__self__, *,
                 acknowledge_signal: Optional[pulumi.Input[str]] = None,
                 email: Optional[pulumi.Input['IntegrationTemplatesEmailArgs']] = None,
                 grouping_key: Optional[pulumi.Input[str]] = None,
                 microsoft_teams: Optional[pulumi.Input['IntegrationTemplatesMicrosoftTeamsArgs']] = None,
                 mobile_app: Optional[pulumi.Input['IntegrationTemplatesMobileAppArgs']] = None,
                 phone_call: Optional[pulumi.Input['IntegrationTemplatesPhoneCallArgs']] = None,
                 resolve_signal: Optional[pulumi.Input[str]] = None,
                 slack: Optional[pulumi.Input['IntegrationTemplatesSlackArgs']] = None,
                 sms: Optional[pulumi.Input['IntegrationTemplatesSmsArgs']] = None,
                 source_link: Optional[pulumi.Input[str]] = None,
                 telegram: Optional[pulumi.Input['IntegrationTemplatesTelegramArgs']] = None,
                 web: Optional[pulumi.Input['IntegrationTemplatesWebArgs']] = None):
        """
        :param pulumi.Input[str] acknowledge_signal: Template for sending a signal to acknowledge the Incident.
        :param pulumi.Input['IntegrationTemplatesEmailArgs'] email: Templates for Email.
        :param pulumi.Input[str] grouping_key: Template for the key by which alerts are grouped.
        :param pulumi.Input['IntegrationTemplatesMicrosoftTeamsArgs'] microsoft_teams: Templates for Microsoft Teams. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
        :param pulumi.Input['IntegrationTemplatesMobileAppArgs'] mobile_app: Templates for Mobile app push notifications.
        :param pulumi.Input['IntegrationTemplatesPhoneCallArgs'] phone_call: Templates for Phone Call.
        :param pulumi.Input[str] resolve_signal: Template for sending a signal to resolve the Incident.
        :param pulumi.Input['IntegrationTemplatesSlackArgs'] slack: Templates for Slack.
        :param pulumi.Input['IntegrationTemplatesSmsArgs'] sms: Templates for SMS.
        :param pulumi.Input[str] source_link: Template for a source link.
        :param pulumi.Input['IntegrationTemplatesTelegramArgs'] telegram: Templates for Telegram.
        :param pulumi.Input['IntegrationTemplatesWebArgs'] web: Templates for Web.
        """
        if acknowledge_signal is not None:
            pulumi.set(__self__, "acknowledge_signal", acknowledge_signal)
        if email is not None:
            pulumi.set(__self__, "email", email)
        if grouping_key is not None:
            pulumi.set(__self__, "grouping_key", grouping_key)
        if microsoft_teams is not None:
            pulumi.set(__self__, "microsoft_teams", microsoft_teams)
        if mobile_app is not None:
            pulumi.set(__self__, "mobile_app", mobile_app)
        if phone_call is not None:
            pulumi.set(__self__, "phone_call", phone_call)
        if resolve_signal is not None:
            pulumi.set(__self__, "resolve_signal", resolve_signal)
        if slack is not None:
            pulumi.set(__self__, "slack", slack)
        if sms is not None:
            pulumi.set(__self__, "sms", sms)
        if source_link is not None:
            pulumi.set(__self__, "source_link", source_link)
        if telegram is not None:
            pulumi.set(__self__, "telegram", telegram)
        if web is not None:
            pulumi.set(__self__, "web", web)

    @property
    @pulumi.getter(name="acknowledgeSignal")
    def acknowledge_signal(self) -> Optional[pulumi.Input[str]]:
        """
        Template for sending a signal to acknowledge the Incident.
        """
        return pulumi.get(self, "acknowledge_signal")

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

    @property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input['IntegrationTemplatesEmailArgs']]:
        """
        Templates for Email.
        """
        return pulumi.get(self, "email")

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

    @property
    @pulumi.getter(name="groupingKey")
    def grouping_key(self) -> Optional[pulumi.Input[str]]:
        """
        Template for the key by which alerts are grouped.
        """
        return pulumi.get(self, "grouping_key")

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

    @property
    @pulumi.getter(name="microsoftTeams")
    def microsoft_teams(self) -> Optional[pulumi.Input['IntegrationTemplatesMicrosoftTeamsArgs']]:
        """
        Templates for Microsoft Teams. **NOTE**: Microsoft Teams templates are only available on Grafana Cloud.
        """
        return pulumi.get(self, "microsoft_teams")

    @microsoft_teams.setter
    def microsoft_teams(self, value: Optional[pulumi.Input['IntegrationTemplatesMicrosoftTeamsArgs']]):
        pulumi.set(self, "microsoft_teams", value)

    @property
    @pulumi.getter(name="mobileApp")
    def mobile_app(self) -> Optional[pulumi.Input['IntegrationTemplatesMobileAppArgs']]:
        """
        Templates for Mobile app push notifications.
        """
        return pulumi.get(self, "mobile_app")

    @mobile_app.setter
    def mobile_app(self, value: Optional[pulumi.Input['IntegrationTemplatesMobileAppArgs']]):
        pulumi.set(self, "mobile_app", value)

    @property
    @pulumi.getter(name="phoneCall")
    def phone_call(self) -> Optional[pulumi.Input['IntegrationTemplatesPhoneCallArgs']]:
        """
        Templates for Phone Call.
        """
        return pulumi.get(self, "phone_call")

    @phone_call.setter
    def phone_call(self, value: Optional[pulumi.Input['IntegrationTemplatesPhoneCallArgs']]):
        pulumi.set(self, "phone_call", value)

    @property
    @pulumi.getter(name="resolveSignal")
    def resolve_signal(self) -> Optional[pulumi.Input[str]]:
        """
        Template for sending a signal to resolve the Incident.
        """
        return pulumi.get(self, "resolve_signal")

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

    @property
    @pulumi.getter
    def slack(self) -> Optional[pulumi.Input['IntegrationTemplatesSlackArgs']]:
        """
        Templates for Slack.
        """
        return pulumi.get(self, "slack")

    @slack.setter
    def slack(self, value: Optional[pulumi.Input['IntegrationTemplatesSlackArgs']]):
        pulumi.set(self, "slack", value)

    @property
    @pulumi.getter
    def sms(self) -> Optional[pulumi.Input['IntegrationTemplatesSmsArgs']]:
        """
        Templates for SMS.
        """
        return pulumi.get(self, "sms")

    @sms.setter
    def sms(self, value: Optional[pulumi.Input['IntegrationTemplatesSmsArgs']]):
        pulumi.set(self, "sms", value)

    @property
    @pulumi.getter(name="sourceLink")
    def source_link(self) -> Optional[pulumi.Input[str]]:
        """
        Template for a source link.
        """
        return pulumi.get(self, "source_link")

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

    @property
    @pulumi.getter
    def telegram(self) -> Optional[pulumi.Input['IntegrationTemplatesTelegramArgs']]:
        """
        Templates for Telegram.
        """
        return pulumi.get(self, "telegram")

    @telegram.setter
    def telegram(self, value: Optional[pulumi.Input['IntegrationTemplatesTelegramArgs']]):
        pulumi.set(self, "telegram", value)

    @property
    @pulumi.getter
    def web(self) -> Optional[pulumi.Input['IntegrationTemplatesWebArgs']]:
        """
        Templates for Web.
        """
        return pulumi.get(self, "web")

    @web.setter
    def web(self, value: Optional[pulumi.Input['IntegrationTemplatesWebArgs']]):
        pulumi.set(self, "web", value)


if not MYPY:
    class IntegrationTemplatesEmailArgsDict(TypedDict):
        message: NotRequired[pulumi.Input[str]]
        """
        Template for Alert message.
        """
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesEmailArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesEmailArgs:
    def __init__(__self__, *,
                 message: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] message: Template for Alert message.
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if message is not None:
            pulumi.set(__self__, "message", message)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert message.
        """
        return pulumi.get(self, "message")

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

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesMicrosoftTeamsArgsDict(TypedDict):
        image_url: NotRequired[pulumi.Input[str]]
        """
        Template for Alert image url.
        """
        message: NotRequired[pulumi.Input[str]]
        """
        Template for Alert message.
        """
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesMicrosoftTeamsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesMicrosoftTeamsArgs:
    def __init__(__self__, *,
                 image_url: Optional[pulumi.Input[str]] = None,
                 message: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] image_url: Template for Alert image url.
        :param pulumi.Input[str] message: Template for Alert message.
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if message is not None:
            pulumi.set(__self__, "message", message)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert image url.
        """
        return pulumi.get(self, "image_url")

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

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert message.
        """
        return pulumi.get(self, "message")

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

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesMobileAppArgsDict(TypedDict):
        message: NotRequired[pulumi.Input[str]]
        """
        Template for Alert message.
        """
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesMobileAppArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesMobileAppArgs:
    def __init__(__self__, *,
                 message: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] message: Template for Alert message.
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if message is not None:
            pulumi.set(__self__, "message", message)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert message.
        """
        return pulumi.get(self, "message")

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

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesPhoneCallArgsDict(TypedDict):
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesPhoneCallArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesPhoneCallArgs:
    def __init__(__self__, *,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesSlackArgsDict(TypedDict):
        image_url: NotRequired[pulumi.Input[str]]
        """
        Template for Alert image url.
        """
        message: NotRequired[pulumi.Input[str]]
        """
        Template for Alert message.
        """
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesSlackArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesSlackArgs:
    def __init__(__self__, *,
                 image_url: Optional[pulumi.Input[str]] = None,
                 message: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] image_url: Template for Alert image url.
        :param pulumi.Input[str] message: Template for Alert message.
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if message is not None:
            pulumi.set(__self__, "message", message)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert image url.
        """
        return pulumi.get(self, "image_url")

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

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert message.
        """
        return pulumi.get(self, "message")

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

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesSmsArgsDict(TypedDict):
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesSmsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesSmsArgs:
    def __init__(__self__, *,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesTelegramArgsDict(TypedDict):
        image_url: NotRequired[pulumi.Input[str]]
        """
        Template for Alert image url.
        """
        message: NotRequired[pulumi.Input[str]]
        """
        Template for Alert message.
        """
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesTelegramArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesTelegramArgs:
    def __init__(__self__, *,
                 image_url: Optional[pulumi.Input[str]] = None,
                 message: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] image_url: Template for Alert image url.
        :param pulumi.Input[str] message: Template for Alert message.
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if message is not None:
            pulumi.set(__self__, "message", message)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert image url.
        """
        return pulumi.get(self, "image_url")

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

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert message.
        """
        return pulumi.get(self, "message")

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

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class IntegrationTemplatesWebArgsDict(TypedDict):
        image_url: NotRequired[pulumi.Input[str]]
        """
        Template for Alert image url.
        """
        message: NotRequired[pulumi.Input[str]]
        """
        Template for Alert message.
        """
        title: NotRequired[pulumi.Input[str]]
        """
        Template for Alert title.
        """
elif False:
    IntegrationTemplatesWebArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IntegrationTemplatesWebArgs:
    def __init__(__self__, *,
                 image_url: Optional[pulumi.Input[str]] = None,
                 message: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] image_url: Template for Alert image url.
        :param pulumi.Input[str] message: Template for Alert message.
        :param pulumi.Input[str] title: Template for Alert title.
        """
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if message is not None:
            pulumi.set(__self__, "message", message)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert image url.
        """
        return pulumi.get(self, "image_url")

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

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert message.
        """
        return pulumi.get(self, "message")

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

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        """
        Template for Alert title.
        """
        return pulumi.get(self, "title")

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


if not MYPY:
    class RouteMsteamsArgsDict(TypedDict):
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Enable notification in MS teams. Defaults to `true`.
        """
        id: NotRequired[pulumi.Input[str]]
        """
        MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
        """
elif False:
    RouteMsteamsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RouteMsteamsArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Enable notification in MS teams. Defaults to `true`.
        :param pulumi.Input[str] id: MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
        """
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable notification in MS teams. Defaults to `true`.
        """
        return pulumi.get(self, "enabled")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        MS teams channel id. Alerts will be directed to this channel in Microsoft teams.
        """
        return pulumi.get(self, "id")

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


if not MYPY:
    class RouteSlackArgsDict(TypedDict):
        channel_id: NotRequired[pulumi.Input[str]]
        """
        Slack channel id. Alerts will be directed to this channel in Slack.
        """
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Enable notification in Slack. Defaults to `true`.
        """
elif False:
    RouteSlackArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RouteSlackArgs:
    def __init__(__self__, *,
                 channel_id: Optional[pulumi.Input[str]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] channel_id: Slack channel id. Alerts will be directed to this channel in Slack.
        :param pulumi.Input[bool] enabled: Enable notification in Slack. Defaults to `true`.
        """
        if channel_id is not None:
            pulumi.set(__self__, "channel_id", channel_id)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter(name="channelId")
    def channel_id(self) -> Optional[pulumi.Input[str]]:
        """
        Slack channel id. Alerts will be directed to this channel in Slack.
        """
        return pulumi.get(self, "channel_id")

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

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable notification in Slack. Defaults to `true`.
        """
        return pulumi.get(self, "enabled")

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


if not MYPY:
    class RouteTelegramArgsDict(TypedDict):
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Enable notification in Telegram. Defaults to `true`.
        """
        id: NotRequired[pulumi.Input[str]]
        """
        Telegram channel id. Alerts will be directed to this channel in Telegram.
        """
elif False:
    RouteTelegramArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RouteTelegramArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Enable notification in Telegram. Defaults to `true`.
        :param pulumi.Input[str] id: Telegram channel id. Alerts will be directed to this channel in Telegram.
        """
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable notification in Telegram. Defaults to `true`.
        """
        return pulumi.get(self, "enabled")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        Telegram channel id. Alerts will be directed to this channel in Telegram.
        """
        return pulumi.get(self, "id")

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


if not MYPY:
    class ScheduleSlackArgsDict(TypedDict):
        channel_id: NotRequired[pulumi.Input[str]]
        """
        Slack channel id. Reminder about schedule shifts will be directed to this channel in Slack.
        """
        user_group_id: NotRequired[pulumi.Input[str]]
        """
        Slack user group id. Members of user group will be updated when on-call users change.
        """
elif False:
    ScheduleSlackArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ScheduleSlackArgs:
    def __init__(__self__, *,
                 channel_id: Optional[pulumi.Input[str]] = None,
                 user_group_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] channel_id: Slack channel id. Reminder about schedule shifts will be directed to this channel in Slack.
        :param pulumi.Input[str] user_group_id: Slack user group id. Members of user group will be updated when on-call users change.
        """
        if channel_id is not None:
            pulumi.set(__self__, "channel_id", channel_id)
        if user_group_id is not None:
            pulumi.set(__self__, "user_group_id", user_group_id)

    @property
    @pulumi.getter(name="channelId")
    def channel_id(self) -> Optional[pulumi.Input[str]]:
        """
        Slack channel id. Reminder about schedule shifts will be directed to this channel in Slack.
        """
        return pulumi.get(self, "channel_id")

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

    @property
    @pulumi.getter(name="userGroupId")
    def user_group_id(self) -> Optional[pulumi.Input[str]]:
        """
        Slack user group id. Members of user group will be updated when on-call users change.
        """
        return pulumi.get(self, "user_group_id")

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


