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

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'ApplicationSettingsCampaignHookArgs',
    'ApplicationSettingsLimitsArgs',
    'ApplicationSettingsQuietTimeArgs',
    'CampaignCampaignEmailMessageArgs',
    'CampaignCampaignEventFilterArgs',
    'CampaignCampaignHookArgs',
    'CampaignCampaignSmsMessageArgs',
    'CampaignEventDimensionsArgs',
    'CampaignLimitsArgs',
    'CampaignMessageConfigurationArgs',
    'CampaignMessageArgs',
    'CampaignQuietTimeArgs',
    'CampaignScheduleArgs',
    'CampaignSetDimensionArgs',
    'CampaignWriteTreatmentResourceArgs',
    'PushTemplateAPNSPushNotificationTemplateArgs',
    'PushTemplateAndroidPushNotificationTemplateArgs',
    'PushTemplateDefaultPushNotificationTemplateArgs',
    'SegmentBehaviorArgs',
    'SegmentCoordinatesArgs',
    'SegmentDemographicArgs',
    'SegmentGPSPointArgs',
    'SegmentGroupsArgs',
    'SegmentLocationArgs',
    'SegmentRecencyArgs',
    'SegmentSegmentDimensionsArgs',
    'SegmentSegmentGroupsArgs',
    'SegmentSetDimensionArgs',
    'SegmentSourceSegmentsArgs',
]

@pulumi.input_type
class ApplicationSettingsCampaignHookArgs:
    def __init__(__self__, *,
                 lambda_function_name: Optional[pulumi.Input[str]] = None,
                 mode: Optional[pulumi.Input[str]] = None,
                 web_url: Optional[pulumi.Input[str]] = None):
        if lambda_function_name is not None:
            pulumi.set(__self__, "lambda_function_name", lambda_function_name)
        if mode is not None:
            pulumi.set(__self__, "mode", mode)
        if web_url is not None:
            pulumi.set(__self__, "web_url", web_url)

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

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

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

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

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

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


@pulumi.input_type
class ApplicationSettingsLimitsArgs:
    def __init__(__self__, *,
                 daily: Optional[pulumi.Input[int]] = None,
                 maximum_duration: Optional[pulumi.Input[int]] = None,
                 messages_per_second: Optional[pulumi.Input[int]] = None,
                 total: Optional[pulumi.Input[int]] = None):
        if daily is not None:
            pulumi.set(__self__, "daily", daily)
        if maximum_duration is not None:
            pulumi.set(__self__, "maximum_duration", maximum_duration)
        if messages_per_second is not None:
            pulumi.set(__self__, "messages_per_second", messages_per_second)
        if total is not None:
            pulumi.set(__self__, "total", total)

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

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

    @property
    @pulumi.getter(name="maximumDuration")
    def maximum_duration(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "maximum_duration")

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

    @property
    @pulumi.getter(name="messagesPerSecond")
    def messages_per_second(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "messages_per_second")

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

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

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


@pulumi.input_type
class ApplicationSettingsQuietTimeArgs:
    def __init__(__self__, *,
                 end: pulumi.Input[str],
                 start: pulumi.Input[str]):
        pulumi.set(__self__, "end", end)
        pulumi.set(__self__, "start", start)

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

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

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

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


@pulumi.input_type
class CampaignCampaignEmailMessageArgs:
    def __init__(__self__, *,
                 body: Optional[pulumi.Input[str]] = None,
                 from_address: Optional[pulumi.Input[str]] = None,
                 html_body: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        if body is not None:
            pulumi.set(__self__, "body", body)
        if from_address is not None:
            pulumi.set(__self__, "from_address", from_address)
        if html_body is not None:
            pulumi.set(__self__, "html_body", html_body)
        if title is not None:
            pulumi.set(__self__, "title", title)

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

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

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

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

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

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

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

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


@pulumi.input_type
class CampaignCampaignEventFilterArgs:
    def __init__(__self__, *,
                 dimensions: Optional[pulumi.Input['CampaignEventDimensionsArgs']] = None,
                 filter_type: Optional[pulumi.Input[str]] = None):
        if dimensions is not None:
            pulumi.set(__self__, "dimensions", dimensions)
        if filter_type is not None:
            pulumi.set(__self__, "filter_type", filter_type)

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

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

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

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


@pulumi.input_type
class CampaignCampaignHookArgs:
    def __init__(__self__, *,
                 lambda_function_name: Optional[pulumi.Input[str]] = None,
                 mode: Optional[pulumi.Input[str]] = None,
                 web_url: Optional[pulumi.Input[str]] = None):
        if lambda_function_name is not None:
            pulumi.set(__self__, "lambda_function_name", lambda_function_name)
        if mode is not None:
            pulumi.set(__self__, "mode", mode)
        if web_url is not None:
            pulumi.set(__self__, "web_url", web_url)

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

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

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

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

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

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


@pulumi.input_type
class CampaignCampaignSmsMessageArgs:
    def __init__(__self__, *,
                 body: Optional[pulumi.Input[str]] = None,
                 entity_id: Optional[pulumi.Input[str]] = None,
                 message_type: Optional[pulumi.Input[str]] = None,
                 origination_number: Optional[pulumi.Input[str]] = None,
                 sender_id: Optional[pulumi.Input[str]] = None,
                 template_id: Optional[pulumi.Input[str]] = None):
        if body is not None:
            pulumi.set(__self__, "body", body)
        if entity_id is not None:
            pulumi.set(__self__, "entity_id", entity_id)
        if message_type is not None:
            pulumi.set(__self__, "message_type", message_type)
        if origination_number is not None:
            pulumi.set(__self__, "origination_number", origination_number)
        if sender_id is not None:
            pulumi.set(__self__, "sender_id", sender_id)
        if template_id is not None:
            pulumi.set(__self__, "template_id", template_id)

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class CampaignEventDimensionsArgs:
    def __init__(__self__, *,
                 attributes: Optional[Any] = None,
                 event_type: Optional[pulumi.Input['CampaignSetDimensionArgs']] = None,
                 metrics: Optional[Any] = None):
        if attributes is not None:
            pulumi.set(__self__, "attributes", attributes)
        if event_type is not None:
            pulumi.set(__self__, "event_type", event_type)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)

    @property
    @pulumi.getter
    def attributes(self) -> Optional[Any]:
        return pulumi.get(self, "attributes")

    @attributes.setter
    def attributes(self, value: Optional[Any]):
        pulumi.set(self, "attributes", value)

    @property
    @pulumi.getter(name="eventType")
    def event_type(self) -> Optional[pulumi.Input['CampaignSetDimensionArgs']]:
        return pulumi.get(self, "event_type")

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

    @property
    @pulumi.getter
    def metrics(self) -> Optional[Any]:
        return pulumi.get(self, "metrics")

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


@pulumi.input_type
class CampaignLimitsArgs:
    def __init__(__self__, *,
                 daily: Optional[pulumi.Input[int]] = None,
                 maximum_duration: Optional[pulumi.Input[int]] = None,
                 messages_per_second: Optional[pulumi.Input[int]] = None,
                 total: Optional[pulumi.Input[int]] = None):
        if daily is not None:
            pulumi.set(__self__, "daily", daily)
        if maximum_duration is not None:
            pulumi.set(__self__, "maximum_duration", maximum_duration)
        if messages_per_second is not None:
            pulumi.set(__self__, "messages_per_second", messages_per_second)
        if total is not None:
            pulumi.set(__self__, "total", total)

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

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

    @property
    @pulumi.getter(name="maximumDuration")
    def maximum_duration(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "maximum_duration")

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

    @property
    @pulumi.getter(name="messagesPerSecond")
    def messages_per_second(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "messages_per_second")

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

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

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


@pulumi.input_type
class CampaignMessageConfigurationArgs:
    def __init__(__self__, *,
                 a_dm_message: Optional[pulumi.Input['CampaignMessageArgs']] = None,
                 a_pns_message: Optional[pulumi.Input['CampaignMessageArgs']] = None,
                 baidu_message: Optional[pulumi.Input['CampaignMessageArgs']] = None,
                 default_message: Optional[pulumi.Input['CampaignMessageArgs']] = None,
                 email_message: Optional[pulumi.Input['CampaignCampaignEmailMessageArgs']] = None,
                 g_cm_message: Optional[pulumi.Input['CampaignMessageArgs']] = None,
                 s_ms_message: Optional[pulumi.Input['CampaignCampaignSmsMessageArgs']] = None):
        if a_dm_message is not None:
            pulumi.set(__self__, "a_dm_message", a_dm_message)
        if a_pns_message is not None:
            pulumi.set(__self__, "a_pns_message", a_pns_message)
        if baidu_message is not None:
            pulumi.set(__self__, "baidu_message", baidu_message)
        if default_message is not None:
            pulumi.set(__self__, "default_message", default_message)
        if email_message is not None:
            pulumi.set(__self__, "email_message", email_message)
        if g_cm_message is not None:
            pulumi.set(__self__, "g_cm_message", g_cm_message)
        if s_ms_message is not None:
            pulumi.set(__self__, "s_ms_message", s_ms_message)

    @property
    @pulumi.getter(name="aDMMessage")
    def a_dm_message(self) -> Optional[pulumi.Input['CampaignMessageArgs']]:
        return pulumi.get(self, "a_dm_message")

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

    @property
    @pulumi.getter(name="aPNSMessage")
    def a_pns_message(self) -> Optional[pulumi.Input['CampaignMessageArgs']]:
        return pulumi.get(self, "a_pns_message")

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

    @property
    @pulumi.getter(name="baiduMessage")
    def baidu_message(self) -> Optional[pulumi.Input['CampaignMessageArgs']]:
        return pulumi.get(self, "baidu_message")

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

    @property
    @pulumi.getter(name="defaultMessage")
    def default_message(self) -> Optional[pulumi.Input['CampaignMessageArgs']]:
        return pulumi.get(self, "default_message")

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

    @property
    @pulumi.getter(name="emailMessage")
    def email_message(self) -> Optional[pulumi.Input['CampaignCampaignEmailMessageArgs']]:
        return pulumi.get(self, "email_message")

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

    @property
    @pulumi.getter(name="gCMMessage")
    def g_cm_message(self) -> Optional[pulumi.Input['CampaignMessageArgs']]:
        return pulumi.get(self, "g_cm_message")

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

    @property
    @pulumi.getter(name="sMSMessage")
    def s_ms_message(self) -> Optional[pulumi.Input['CampaignCampaignSmsMessageArgs']]:
        return pulumi.get(self, "s_ms_message")

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


@pulumi.input_type
class CampaignMessageArgs:
    def __init__(__self__, *,
                 action: Optional[pulumi.Input[str]] = None,
                 body: Optional[pulumi.Input[str]] = None,
                 image_icon_url: Optional[pulumi.Input[str]] = None,
                 image_small_icon_url: Optional[pulumi.Input[str]] = None,
                 image_url: Optional[pulumi.Input[str]] = None,
                 json_body: Optional[pulumi.Input[str]] = None,
                 media_url: Optional[pulumi.Input[str]] = None,
                 raw_content: Optional[pulumi.Input[str]] = None,
                 silent_push: Optional[pulumi.Input[bool]] = None,
                 time_to_live: Optional[pulumi.Input[int]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None):
        if action is not None:
            pulumi.set(__self__, "action", action)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if image_icon_url is not None:
            pulumi.set(__self__, "image_icon_url", image_icon_url)
        if image_small_icon_url is not None:
            pulumi.set(__self__, "image_small_icon_url", image_small_icon_url)
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if json_body is not None:
            pulumi.set(__self__, "json_body", json_body)
        if media_url is not None:
            pulumi.set(__self__, "media_url", media_url)
        if raw_content is not None:
            pulumi.set(__self__, "raw_content", raw_content)
        if silent_push is not None:
            pulumi.set(__self__, "silent_push", silent_push)
        if time_to_live is not None:
            pulumi.set(__self__, "time_to_live", time_to_live)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if url is not None:
            pulumi.set(__self__, "url", url)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        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(name="jsonBody")
    def json_body(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "json_body")

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

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

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

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

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

    @property
    @pulumi.getter(name="silentPush")
    def silent_push(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "silent_push")

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

    @property
    @pulumi.getter(name="timeToLive")
    def time_to_live(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "time_to_live")

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

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

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

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

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


@pulumi.input_type
class CampaignQuietTimeArgs:
    def __init__(__self__, *,
                 end: pulumi.Input[str],
                 start: pulumi.Input[str]):
        pulumi.set(__self__, "end", end)
        pulumi.set(__self__, "start", start)

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

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

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

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


@pulumi.input_type
class CampaignScheduleArgs:
    def __init__(__self__, *,
                 end_time: Optional[pulumi.Input[str]] = None,
                 event_filter: Optional[pulumi.Input['CampaignCampaignEventFilterArgs']] = None,
                 frequency: Optional[pulumi.Input[str]] = None,
                 is_local_time: Optional[pulumi.Input[bool]] = None,
                 quiet_time: Optional[pulumi.Input['CampaignQuietTimeArgs']] = None,
                 start_time: Optional[pulumi.Input[str]] = None,
                 time_zone: Optional[pulumi.Input[str]] = None):
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if event_filter is not None:
            pulumi.set(__self__, "event_filter", event_filter)
        if frequency is not None:
            pulumi.set(__self__, "frequency", frequency)
        if is_local_time is not None:
            pulumi.set(__self__, "is_local_time", is_local_time)
        if quiet_time is not None:
            pulumi.set(__self__, "quiet_time", quiet_time)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)
        if time_zone is not None:
            pulumi.set(__self__, "time_zone", time_zone)

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

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

    @property
    @pulumi.getter(name="eventFilter")
    def event_filter(self) -> Optional[pulumi.Input['CampaignCampaignEventFilterArgs']]:
        return pulumi.get(self, "event_filter")

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

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

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

    @property
    @pulumi.getter(name="isLocalTime")
    def is_local_time(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "is_local_time")

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

    @property
    @pulumi.getter(name="quietTime")
    def quiet_time(self) -> Optional[pulumi.Input['CampaignQuietTimeArgs']]:
        return pulumi.get(self, "quiet_time")

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

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

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

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

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


@pulumi.input_type
class CampaignSetDimensionArgs:
    def __init__(__self__, *,
                 dimension_type: Optional[pulumi.Input[str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if dimension_type is not None:
            pulumi.set(__self__, "dimension_type", dimension_type)
        if values is not None:
            pulumi.set(__self__, "values", values)

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

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

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

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


@pulumi.input_type
class CampaignWriteTreatmentResourceArgs:
    def __init__(__self__, *,
                 message_configuration: Optional[pulumi.Input['CampaignMessageConfigurationArgs']] = None,
                 schedule: Optional[pulumi.Input['CampaignScheduleArgs']] = None,
                 size_percent: Optional[pulumi.Input[int]] = None,
                 treatment_description: Optional[pulumi.Input[str]] = None,
                 treatment_name: Optional[pulumi.Input[str]] = None):
        if message_configuration is not None:
            pulumi.set(__self__, "message_configuration", message_configuration)
        if schedule is not None:
            pulumi.set(__self__, "schedule", schedule)
        if size_percent is not None:
            pulumi.set(__self__, "size_percent", size_percent)
        if treatment_description is not None:
            pulumi.set(__self__, "treatment_description", treatment_description)
        if treatment_name is not None:
            pulumi.set(__self__, "treatment_name", treatment_name)

    @property
    @pulumi.getter(name="messageConfiguration")
    def message_configuration(self) -> Optional[pulumi.Input['CampaignMessageConfigurationArgs']]:
        return pulumi.get(self, "message_configuration")

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

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

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

    @property
    @pulumi.getter(name="sizePercent")
    def size_percent(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "size_percent")

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

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

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

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

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


@pulumi.input_type
class PushTemplateAPNSPushNotificationTemplateArgs:
    def __init__(__self__, *,
                 action: Optional[pulumi.Input[str]] = None,
                 body: Optional[pulumi.Input[str]] = None,
                 media_url: Optional[pulumi.Input[str]] = None,
                 sound: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None):
        if action is not None:
            pulumi.set(__self__, "action", action)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if media_url is not None:
            pulumi.set(__self__, "media_url", media_url)
        if sound is not None:
            pulumi.set(__self__, "sound", sound)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if url is not None:
            pulumi.set(__self__, "url", url)

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class PushTemplateAndroidPushNotificationTemplateArgs:
    def __init__(__self__, *,
                 action: Optional[pulumi.Input[str]] = None,
                 body: Optional[pulumi.Input[str]] = None,
                 image_icon_url: Optional[pulumi.Input[str]] = None,
                 image_url: Optional[pulumi.Input[str]] = None,
                 small_image_icon_url: Optional[pulumi.Input[str]] = None,
                 sound: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None):
        if action is not None:
            pulumi.set(__self__, "action", action)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if image_icon_url is not None:
            pulumi.set(__self__, "image_icon_url", image_icon_url)
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if small_image_icon_url is not None:
            pulumi.set(__self__, "small_image_icon_url", small_image_icon_url)
        if sound is not None:
            pulumi.set(__self__, "sound", sound)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if url is not None:
            pulumi.set(__self__, "url", url)

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

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

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

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

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

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

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        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(name="smallImageIconUrl")
    def small_image_icon_url(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "small_image_icon_url")

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

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

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

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

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

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

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


@pulumi.input_type
class PushTemplateDefaultPushNotificationTemplateArgs:
    def __init__(__self__, *,
                 action: Optional[pulumi.Input[str]] = None,
                 body: Optional[pulumi.Input[str]] = None,
                 sound: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None):
        if action is not None:
            pulumi.set(__self__, "action", action)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if sound is not None:
            pulumi.set(__self__, "sound", sound)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if url is not None:
            pulumi.set(__self__, "url", url)

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class SegmentBehaviorArgs:
    def __init__(__self__, *,
                 recency: Optional[pulumi.Input['SegmentRecencyArgs']] = None):
        if recency is not None:
            pulumi.set(__self__, "recency", recency)

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

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


@pulumi.input_type
class SegmentCoordinatesArgs:
    def __init__(__self__, *,
                 latitude: pulumi.Input[float],
                 longitude: pulumi.Input[float]):
        pulumi.set(__self__, "latitude", latitude)
        pulumi.set(__self__, "longitude", longitude)

    @property
    @pulumi.getter
    def latitude(self) -> pulumi.Input[float]:
        return pulumi.get(self, "latitude")

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

    @property
    @pulumi.getter
    def longitude(self) -> pulumi.Input[float]:
        return pulumi.get(self, "longitude")

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


@pulumi.input_type
class SegmentDemographicArgs:
    def __init__(__self__, *,
                 app_version: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None,
                 channel: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None,
                 device_type: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None,
                 make: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None,
                 model: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None,
                 platform: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None):
        if app_version is not None:
            pulumi.set(__self__, "app_version", app_version)
        if channel is not None:
            pulumi.set(__self__, "channel", channel)
        if device_type is not None:
            pulumi.set(__self__, "device_type", device_type)
        if make is not None:
            pulumi.set(__self__, "make", make)
        if model is not None:
            pulumi.set(__self__, "model", model)
        if platform is not None:
            pulumi.set(__self__, "platform", platform)

    @property
    @pulumi.getter(name="appVersion")
    def app_version(self) -> Optional[pulumi.Input['SegmentSetDimensionArgs']]:
        return pulumi.get(self, "app_version")

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

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

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

    @property
    @pulumi.getter(name="deviceType")
    def device_type(self) -> Optional[pulumi.Input['SegmentSetDimensionArgs']]:
        return pulumi.get(self, "device_type")

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

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

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

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

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

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

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


@pulumi.input_type
class SegmentGPSPointArgs:
    def __init__(__self__, *,
                 coordinates: pulumi.Input['SegmentCoordinatesArgs'],
                 range_in_kilometers: pulumi.Input[float]):
        pulumi.set(__self__, "coordinates", coordinates)
        pulumi.set(__self__, "range_in_kilometers", range_in_kilometers)

    @property
    @pulumi.getter
    def coordinates(self) -> pulumi.Input['SegmentCoordinatesArgs']:
        return pulumi.get(self, "coordinates")

    @coordinates.setter
    def coordinates(self, value: pulumi.Input['SegmentCoordinatesArgs']):
        pulumi.set(self, "coordinates", value)

    @property
    @pulumi.getter(name="rangeInKilometers")
    def range_in_kilometers(self) -> pulumi.Input[float]:
        return pulumi.get(self, "range_in_kilometers")

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


@pulumi.input_type
class SegmentGroupsArgs:
    def __init__(__self__, *,
                 dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['SegmentSegmentDimensionsArgs']]]] = None,
                 source_segments: Optional[pulumi.Input[Sequence[pulumi.Input['SegmentSourceSegmentsArgs']]]] = None,
                 source_type: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if dimensions is not None:
            pulumi.set(__self__, "dimensions", dimensions)
        if source_segments is not None:
            pulumi.set(__self__, "source_segments", source_segments)
        if source_type is not None:
            pulumi.set(__self__, "source_type", source_type)
        if type is not None:
            pulumi.set(__self__, "type", type)

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

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

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

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

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

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

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

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


@pulumi.input_type
class SegmentLocationArgs:
    def __init__(__self__, *,
                 country: Optional[pulumi.Input['SegmentSetDimensionArgs']] = None,
                 g_ps_point: Optional[pulumi.Input['SegmentGPSPointArgs']] = None):
        if country is not None:
            pulumi.set(__self__, "country", country)
        if g_ps_point is not None:
            pulumi.set(__self__, "g_ps_point", g_ps_point)

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

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

    @property
    @pulumi.getter(name="gPSPoint")
    def g_ps_point(self) -> Optional[pulumi.Input['SegmentGPSPointArgs']]:
        return pulumi.get(self, "g_ps_point")

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


@pulumi.input_type
class SegmentRecencyArgs:
    def __init__(__self__, *,
                 duration: pulumi.Input[str],
                 recency_type: pulumi.Input[str]):
        pulumi.set(__self__, "duration", duration)
        pulumi.set(__self__, "recency_type", recency_type)

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

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

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

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


@pulumi.input_type
class SegmentSegmentDimensionsArgs:
    def __init__(__self__, *,
                 attributes: Optional[Any] = None,
                 behavior: Optional[pulumi.Input['SegmentBehaviorArgs']] = None,
                 demographic: Optional[pulumi.Input['SegmentDemographicArgs']] = None,
                 location: Optional[pulumi.Input['SegmentLocationArgs']] = None,
                 metrics: Optional[Any] = None,
                 user_attributes: Optional[Any] = None):
        if attributes is not None:
            pulumi.set(__self__, "attributes", attributes)
        if behavior is not None:
            pulumi.set(__self__, "behavior", behavior)
        if demographic is not None:
            pulumi.set(__self__, "demographic", demographic)
        if location is not None:
            pulumi.set(__self__, "location", location)
        if metrics is not None:
            pulumi.set(__self__, "metrics", metrics)
        if user_attributes is not None:
            pulumi.set(__self__, "user_attributes", user_attributes)

    @property
    @pulumi.getter
    def attributes(self) -> Optional[Any]:
        return pulumi.get(self, "attributes")

    @attributes.setter
    def attributes(self, value: Optional[Any]):
        pulumi.set(self, "attributes", value)

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

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

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

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

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

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

    @property
    @pulumi.getter
    def metrics(self) -> Optional[Any]:
        return pulumi.get(self, "metrics")

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

    @property
    @pulumi.getter(name="userAttributes")
    def user_attributes(self) -> Optional[Any]:
        return pulumi.get(self, "user_attributes")

    @user_attributes.setter
    def user_attributes(self, value: Optional[Any]):
        pulumi.set(self, "user_attributes", value)


@pulumi.input_type
class SegmentSegmentGroupsArgs:
    def __init__(__self__, *,
                 groups: Optional[pulumi.Input[Sequence[pulumi.Input['SegmentGroupsArgs']]]] = None,
                 include: Optional[pulumi.Input[str]] = None):
        if groups is not None:
            pulumi.set(__self__, "groups", groups)
        if include is not None:
            pulumi.set(__self__, "include", include)

    @property
    @pulumi.getter
    def groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SegmentGroupsArgs']]]]:
        return pulumi.get(self, "groups")

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

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

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


@pulumi.input_type
class SegmentSetDimensionArgs:
    def __init__(__self__, *,
                 dimension_type: Optional[pulumi.Input[str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if dimension_type is not None:
            pulumi.set(__self__, "dimension_type", dimension_type)
        if values is not None:
            pulumi.set(__self__, "values", values)

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

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

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

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


@pulumi.input_type
class SegmentSourceSegmentsArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str],
                 version: Optional[pulumi.Input[int]] = None):
        pulumi.set(__self__, "id", id)
        if version is not None:
            pulumi.set(__self__, "version", version)

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

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

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

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


