# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'BotAssociationLexBotArgs',
    'HoursOfOperationConfigArgs',
    'HoursOfOperationConfigEndTimeArgs',
    'HoursOfOperationConfigStartTimeArgs',
    'QueueOutboundCallerConfigArgs',
    'QuickConnectQuickConnectConfigArgs',
    'QuickConnectQuickConnectConfigPhoneConfigArgs',
    'QuickConnectQuickConnectConfigQueueConfigArgs',
    'QuickConnectQuickConnectConfigUserConfigArgs',
    'RoutingProfileMediaConcurrencyArgs',
    'RoutingProfileQueueConfigArgs',
    'RoutingProfileQueueConfigsAssociatedArgs',
    'UserHierarchyGroupHierarchyPathArgs',
    'UserHierarchyGroupHierarchyPathLevelFifeArgs',
    'UserHierarchyGroupHierarchyPathLevelFourArgs',
    'UserHierarchyGroupHierarchyPathLevelOneArgs',
    'UserHierarchyGroupHierarchyPathLevelThreeArgs',
    'UserHierarchyGroupHierarchyPathLevelTwoArgs',
    'UserHierarchyStructureHierarchyStructureArgs',
    'UserHierarchyStructureHierarchyStructureLevelFiveArgs',
    'UserHierarchyStructureHierarchyStructureLevelFourArgs',
    'UserHierarchyStructureHierarchyStructureLevelOneArgs',
    'UserHierarchyStructureHierarchyStructureLevelThreeArgs',
    'UserHierarchyStructureHierarchyStructureLevelTwoArgs',
    'GetBotAssociationLexBotArgs',
]

@pulumi.input_type
class BotAssociationLexBotArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 lex_region: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the Amazon Lex (V1) bot.
        :param pulumi.Input[str] lex_region: The Region that the Amazon Lex (V1) bot was created in. Defaults to current region.
        """
        pulumi.set(__self__, "name", name)
        if lex_region is not None:
            pulumi.set(__self__, "lex_region", lex_region)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the Amazon Lex (V1) bot.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="lexRegion")
    def lex_region(self) -> Optional[pulumi.Input[str]]:
        """
        The Region that the Amazon Lex (V1) bot was created in. Defaults to current region.
        """
        return pulumi.get(self, "lex_region")

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


@pulumi.input_type
class HoursOfOperationConfigArgs:
    def __init__(__self__, *,
                 day: pulumi.Input[str],
                 end_time: pulumi.Input['HoursOfOperationConfigEndTimeArgs'],
                 start_time: pulumi.Input['HoursOfOperationConfigStartTimeArgs']):
        """
        :param pulumi.Input[str] day: Specifies the day that the hours of operation applies to.
        :param pulumi.Input['HoursOfOperationConfigEndTimeArgs'] end_time: A end time block specifies the time that your contact center closes. The `end_time` is documented below.
        :param pulumi.Input['HoursOfOperationConfigStartTimeArgs'] start_time: A start time block specifies the time that your contact center opens. The `start_time` is documented below.
        """
        pulumi.set(__self__, "day", day)
        pulumi.set(__self__, "end_time", end_time)
        pulumi.set(__self__, "start_time", start_time)

    @property
    @pulumi.getter
    def day(self) -> pulumi.Input[str]:
        """
        Specifies the day that the hours of operation applies to.
        """
        return pulumi.get(self, "day")

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

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> pulumi.Input['HoursOfOperationConfigEndTimeArgs']:
        """
        A end time block specifies the time that your contact center closes. The `end_time` is documented below.
        """
        return pulumi.get(self, "end_time")

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

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> pulumi.Input['HoursOfOperationConfigStartTimeArgs']:
        """
        A start time block specifies the time that your contact center opens. The `start_time` is documented below.
        """
        return pulumi.get(self, "start_time")

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


@pulumi.input_type
class HoursOfOperationConfigEndTimeArgs:
    def __init__(__self__, *,
                 hours: pulumi.Input[int],
                 minutes: pulumi.Input[int]):
        """
        :param pulumi.Input[int] hours: Specifies the hour of closing.
        :param pulumi.Input[int] minutes: Specifies the minute of closing.
        """
        pulumi.set(__self__, "hours", hours)
        pulumi.set(__self__, "minutes", minutes)

    @property
    @pulumi.getter
    def hours(self) -> pulumi.Input[int]:
        """
        Specifies the hour of closing.
        """
        return pulumi.get(self, "hours")

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

    @property
    @pulumi.getter
    def minutes(self) -> pulumi.Input[int]:
        """
        Specifies the minute of closing.
        """
        return pulumi.get(self, "minutes")

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


@pulumi.input_type
class HoursOfOperationConfigStartTimeArgs:
    def __init__(__self__, *,
                 hours: pulumi.Input[int],
                 minutes: pulumi.Input[int]):
        """
        :param pulumi.Input[int] hours: Specifies the hour of opening.
        :param pulumi.Input[int] minutes: Specifies the minute of opening.
        """
        pulumi.set(__self__, "hours", hours)
        pulumi.set(__self__, "minutes", minutes)

    @property
    @pulumi.getter
    def hours(self) -> pulumi.Input[int]:
        """
        Specifies the hour of opening.
        """
        return pulumi.get(self, "hours")

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

    @property
    @pulumi.getter
    def minutes(self) -> pulumi.Input[int]:
        """
        Specifies the minute of opening.
        """
        return pulumi.get(self, "minutes")

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


@pulumi.input_type
class QueueOutboundCallerConfigArgs:
    def __init__(__self__, *,
                 outbound_caller_id_name: Optional[pulumi.Input[str]] = None,
                 outbound_caller_id_number_id: Optional[pulumi.Input[str]] = None,
                 outbound_flow_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] outbound_caller_id_name: Specifies the caller ID name.
        :param pulumi.Input[str] outbound_caller_id_number_id: Specifies the caller ID number.
        :param pulumi.Input[str] outbound_flow_id: Specifies outbound whisper flow to be used during an outbound call.
        """
        if outbound_caller_id_name is not None:
            pulumi.set(__self__, "outbound_caller_id_name", outbound_caller_id_name)
        if outbound_caller_id_number_id is not None:
            pulumi.set(__self__, "outbound_caller_id_number_id", outbound_caller_id_number_id)
        if outbound_flow_id is not None:
            pulumi.set(__self__, "outbound_flow_id", outbound_flow_id)

    @property
    @pulumi.getter(name="outboundCallerIdName")
    def outbound_caller_id_name(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the caller ID name.
        """
        return pulumi.get(self, "outbound_caller_id_name")

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

    @property
    @pulumi.getter(name="outboundCallerIdNumberId")
    def outbound_caller_id_number_id(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the caller ID number.
        """
        return pulumi.get(self, "outbound_caller_id_number_id")

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

    @property
    @pulumi.getter(name="outboundFlowId")
    def outbound_flow_id(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies outbound whisper flow to be used during an outbound call.
        """
        return pulumi.get(self, "outbound_flow_id")

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


@pulumi.input_type
class QuickConnectQuickConnectConfigArgs:
    def __init__(__self__, *,
                 quick_connect_type: pulumi.Input[str],
                 phone_configs: Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigPhoneConfigArgs']]]] = None,
                 queue_configs: Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigQueueConfigArgs']]]] = None,
                 user_configs: Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigUserConfigArgs']]]] = None):
        """
        :param pulumi.Input[str] quick_connect_type: Specifies the configuration type of the quick connect. valid values are `PHONE_NUMBER`, `QUEUE`, `USER`.
        :param pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigPhoneConfigArgs']]] phone_configs: Specifies the phone configuration of the Quick Connect. This is required only if `quick_connect_type` is `PHONE_NUMBER`. The `phone_config` block is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigQueueConfigArgs']]] queue_configs: Specifies the queue configuration of the Quick Connect. This is required only if `quick_connect_type` is `QUEUE`. The `queue_config` block is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigUserConfigArgs']]] user_configs: Specifies the user configuration of the Quick Connect. This is required only if `quick_connect_type` is `USER`. The `user_config` block is documented below.
        """
        pulumi.set(__self__, "quick_connect_type", quick_connect_type)
        if phone_configs is not None:
            pulumi.set(__self__, "phone_configs", phone_configs)
        if queue_configs is not None:
            pulumi.set(__self__, "queue_configs", queue_configs)
        if user_configs is not None:
            pulumi.set(__self__, "user_configs", user_configs)

    @property
    @pulumi.getter(name="quickConnectType")
    def quick_connect_type(self) -> pulumi.Input[str]:
        """
        Specifies the configuration type of the quick connect. valid values are `PHONE_NUMBER`, `QUEUE`, `USER`.
        """
        return pulumi.get(self, "quick_connect_type")

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

    @property
    @pulumi.getter(name="phoneConfigs")
    def phone_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigPhoneConfigArgs']]]]:
        """
        Specifies the phone configuration of the Quick Connect. This is required only if `quick_connect_type` is `PHONE_NUMBER`. The `phone_config` block is documented below.
        """
        return pulumi.get(self, "phone_configs")

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

    @property
    @pulumi.getter(name="queueConfigs")
    def queue_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigQueueConfigArgs']]]]:
        """
        Specifies the queue configuration of the Quick Connect. This is required only if `quick_connect_type` is `QUEUE`. The `queue_config` block is documented below.
        """
        return pulumi.get(self, "queue_configs")

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

    @property
    @pulumi.getter(name="userConfigs")
    def user_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigUserConfigArgs']]]]:
        """
        Specifies the user configuration of the Quick Connect. This is required only if `quick_connect_type` is `USER`. The `user_config` block is documented below.
        """
        return pulumi.get(self, "user_configs")

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


@pulumi.input_type
class QuickConnectQuickConnectConfigPhoneConfigArgs:
    def __init__(__self__, *,
                 phone_number: pulumi.Input[str]):
        """
        :param pulumi.Input[str] phone_number: Specifies the phone number in in E.164 format.
        """
        pulumi.set(__self__, "phone_number", phone_number)

    @property
    @pulumi.getter(name="phoneNumber")
    def phone_number(self) -> pulumi.Input[str]:
        """
        Specifies the phone number in in E.164 format.
        """
        return pulumi.get(self, "phone_number")

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


@pulumi.input_type
class QuickConnectQuickConnectConfigQueueConfigArgs:
    def __init__(__self__, *,
                 contact_flow_id: pulumi.Input[str],
                 queue_id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] contact_flow_id: Specifies the identifier of the contact flow.
        :param pulumi.Input[str] queue_id: Specifies the identifier for the queue.
        """
        pulumi.set(__self__, "contact_flow_id", contact_flow_id)
        pulumi.set(__self__, "queue_id", queue_id)

    @property
    @pulumi.getter(name="contactFlowId")
    def contact_flow_id(self) -> pulumi.Input[str]:
        """
        Specifies the identifier of the contact flow.
        """
        return pulumi.get(self, "contact_flow_id")

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

    @property
    @pulumi.getter(name="queueId")
    def queue_id(self) -> pulumi.Input[str]:
        """
        Specifies the identifier for the queue.
        """
        return pulumi.get(self, "queue_id")

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


@pulumi.input_type
class QuickConnectQuickConnectConfigUserConfigArgs:
    def __init__(__self__, *,
                 contact_flow_id: pulumi.Input[str],
                 user_id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] contact_flow_id: Specifies the identifier of the contact flow.
        :param pulumi.Input[str] user_id: Specifies the identifier for the user.
        """
        pulumi.set(__self__, "contact_flow_id", contact_flow_id)
        pulumi.set(__self__, "user_id", user_id)

    @property
    @pulumi.getter(name="contactFlowId")
    def contact_flow_id(self) -> pulumi.Input[str]:
        """
        Specifies the identifier of the contact flow.
        """
        return pulumi.get(self, "contact_flow_id")

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

    @property
    @pulumi.getter(name="userId")
    def user_id(self) -> pulumi.Input[str]:
        """
        Specifies the identifier for the user.
        """
        return pulumi.get(self, "user_id")

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


@pulumi.input_type
class RoutingProfileMediaConcurrencyArgs:
    def __init__(__self__, *,
                 channel: pulumi.Input[str],
                 concurrency: pulumi.Input[int]):
        """
        :param pulumi.Input[str] channel: Specifies the channels that agents can handle in the Contact Control Panel (CCP). Valid values are `VOICE`, `CHAT`, `TASK`.
        :param pulumi.Input[int] concurrency: Specifies the number of contacts an agent can have on a channel simultaneously. Valid Range for `VOICE`: Minimum value of 1. Maximum value of 1. Valid Range for `CHAT`: Minimum value of 1. Maximum value of 10. Valid Range for `TASK`: Minimum value of 1. Maximum value of 10.
        """
        pulumi.set(__self__, "channel", channel)
        pulumi.set(__self__, "concurrency", concurrency)

    @property
    @pulumi.getter
    def channel(self) -> pulumi.Input[str]:
        """
        Specifies the channels that agents can handle in the Contact Control Panel (CCP). Valid values are `VOICE`, `CHAT`, `TASK`.
        """
        return pulumi.get(self, "channel")

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

    @property
    @pulumi.getter
    def concurrency(self) -> pulumi.Input[int]:
        """
        Specifies the number of contacts an agent can have on a channel simultaneously. Valid Range for `VOICE`: Minimum value of 1. Maximum value of 1. Valid Range for `CHAT`: Minimum value of 1. Maximum value of 10. Valid Range for `TASK`: Minimum value of 1. Maximum value of 10.
        """
        return pulumi.get(self, "concurrency")

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


@pulumi.input_type
class RoutingProfileQueueConfigArgs:
    def __init__(__self__, *,
                 channel: pulumi.Input[str],
                 delay: pulumi.Input[int],
                 priority: pulumi.Input[int],
                 queue_id: pulumi.Input[str],
                 queue_arn: Optional[pulumi.Input[str]] = None,
                 queue_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] channel: Specifies the channels agents can handle in the Contact Control Panel (CCP) for this routing profile. Valid values are `VOICE`, `CHAT`, `TASK`.
        :param pulumi.Input[int] delay: Specifies the delay, in seconds, that a contact should be in the queue before they are routed to an available agent
        :param pulumi.Input[int] priority: Specifies the order in which contacts are to be handled for the queue.
        :param pulumi.Input[str] queue_id: Specifies the identifier for the queue.
        :param pulumi.Input[str] queue_arn: Specifies the ARN for the queue.
        :param pulumi.Input[str] queue_name: Specifies the name for the queue.
        """
        pulumi.set(__self__, "channel", channel)
        pulumi.set(__self__, "delay", delay)
        pulumi.set(__self__, "priority", priority)
        pulumi.set(__self__, "queue_id", queue_id)
        if queue_arn is not None:
            pulumi.set(__self__, "queue_arn", queue_arn)
        if queue_name is not None:
            pulumi.set(__self__, "queue_name", queue_name)

    @property
    @pulumi.getter
    def channel(self) -> pulumi.Input[str]:
        """
        Specifies the channels agents can handle in the Contact Control Panel (CCP) for this routing profile. Valid values are `VOICE`, `CHAT`, `TASK`.
        """
        return pulumi.get(self, "channel")

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

    @property
    @pulumi.getter
    def delay(self) -> pulumi.Input[int]:
        """
        Specifies the delay, in seconds, that a contact should be in the queue before they are routed to an available agent
        """
        return pulumi.get(self, "delay")

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

    @property
    @pulumi.getter
    def priority(self) -> pulumi.Input[int]:
        """
        Specifies the order in which contacts are to be handled for the queue.
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter(name="queueId")
    def queue_id(self) -> pulumi.Input[str]:
        """
        Specifies the identifier for the queue.
        """
        return pulumi.get(self, "queue_id")

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

    @property
    @pulumi.getter(name="queueArn")
    def queue_arn(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the ARN for the queue.
        """
        return pulumi.get(self, "queue_arn")

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

    @property
    @pulumi.getter(name="queueName")
    def queue_name(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the name for the queue.
        """
        return pulumi.get(self, "queue_name")

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


@pulumi.input_type
class RoutingProfileQueueConfigsAssociatedArgs:
    def __init__(__self__, *,
                 channel: Optional[pulumi.Input[str]] = None,
                 delay: Optional[pulumi.Input[int]] = None,
                 priority: Optional[pulumi.Input[int]] = None,
                 queue_arn: Optional[pulumi.Input[str]] = None,
                 queue_id: Optional[pulumi.Input[str]] = None,
                 queue_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] channel: Specifies the channels that agents can handle in the Contact Control Panel (CCP). Valid values are `VOICE`, `CHAT`, `TASK`.
        :param pulumi.Input[int] delay: Specifies the delay, in seconds, that a contact should be in the queue before they are routed to an available agent
        :param pulumi.Input[int] priority: Specifies the order in which contacts are to be handled for the queue.
        :param pulumi.Input[str] queue_arn: Specifies the ARN for the queue.
        :param pulumi.Input[str] queue_id: Specifies the identifier for the queue.
        :param pulumi.Input[str] queue_name: Specifies the name for the queue.
        """
        if channel is not None:
            pulumi.set(__self__, "channel", channel)
        if delay is not None:
            pulumi.set(__self__, "delay", delay)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if queue_arn is not None:
            pulumi.set(__self__, "queue_arn", queue_arn)
        if queue_id is not None:
            pulumi.set(__self__, "queue_id", queue_id)
        if queue_name is not None:
            pulumi.set(__self__, "queue_name", queue_name)

    @property
    @pulumi.getter
    def channel(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the channels that agents can handle in the Contact Control Panel (CCP). Valid values are `VOICE`, `CHAT`, `TASK`.
        """
        return pulumi.get(self, "channel")

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

    @property
    @pulumi.getter
    def delay(self) -> Optional[pulumi.Input[int]]:
        """
        Specifies the delay, in seconds, that a contact should be in the queue before they are routed to an available agent
        """
        return pulumi.get(self, "delay")

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

    @property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[int]]:
        """
        Specifies the order in which contacts are to be handled for the queue.
        """
        return pulumi.get(self, "priority")

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

    @property
    @pulumi.getter(name="queueArn")
    def queue_arn(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the ARN for the queue.
        """
        return pulumi.get(self, "queue_arn")

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

    @property
    @pulumi.getter(name="queueId")
    def queue_id(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the identifier for the queue.
        """
        return pulumi.get(self, "queue_id")

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

    @property
    @pulumi.getter(name="queueName")
    def queue_name(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the name for the queue.
        """
        return pulumi.get(self, "queue_name")

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


@pulumi.input_type
class UserHierarchyGroupHierarchyPathArgs:
    def __init__(__self__, *,
                 level_fives: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFifeArgs']]]] = None,
                 level_fours: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFourArgs']]]] = None,
                 level_ones: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelOneArgs']]]] = None,
                 level_threes: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelThreeArgs']]]] = None,
                 level_twos: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelTwoArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFifeArgs']]] level_fives: A block that defines the details of level five. The level block is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFourArgs']]] level_fours: A block that defines the details of level four. The level block is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelOneArgs']]] level_ones: A block that defines the details of level one. The level block is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelThreeArgs']]] level_threes: A block that defines the details of level three. The level block is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelTwoArgs']]] level_twos: A block that defines the details of level two. The level block is documented below.
        """
        if level_fives is not None:
            pulumi.set(__self__, "level_fives", level_fives)
        if level_fours is not None:
            pulumi.set(__self__, "level_fours", level_fours)
        if level_ones is not None:
            pulumi.set(__self__, "level_ones", level_ones)
        if level_threes is not None:
            pulumi.set(__self__, "level_threes", level_threes)
        if level_twos is not None:
            pulumi.set(__self__, "level_twos", level_twos)

    @property
    @pulumi.getter(name="levelFives")
    def level_fives(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFifeArgs']]]]:
        """
        A block that defines the details of level five. The level block is documented below.
        """
        return pulumi.get(self, "level_fives")

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

    @property
    @pulumi.getter(name="levelFours")
    def level_fours(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFourArgs']]]]:
        """
        A block that defines the details of level four. The level block is documented below.
        """
        return pulumi.get(self, "level_fours")

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

    @property
    @pulumi.getter(name="levelOnes")
    def level_ones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelOneArgs']]]]:
        """
        A block that defines the details of level one. The level block is documented below.
        """
        return pulumi.get(self, "level_ones")

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

    @property
    @pulumi.getter(name="levelThrees")
    def level_threes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelThreeArgs']]]]:
        """
        A block that defines the details of level three. The level block is documented below.
        """
        return pulumi.get(self, "level_threes")

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

    @property
    @pulumi.getter(name="levelTwos")
    def level_twos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelTwoArgs']]]]:
        """
        A block that defines the details of level two. The level block is documented below.
        """
        return pulumi.get(self, "level_twos")

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


@pulumi.input_type
class UserHierarchyGroupHierarchyPathLevelFifeArgs:
    def __init__(__self__, *,
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy group.
        :param pulumi.Input[str] id: The identifier of the hierarchy group.
        :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters.
        """
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy group.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy group.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the user hierarchy group. Must not be more than 100 characters.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class UserHierarchyGroupHierarchyPathLevelFourArgs:
    def __init__(__self__, *,
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy group.
        :param pulumi.Input[str] id: The identifier of the hierarchy group.
        :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters.
        """
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy group.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy group.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the user hierarchy group. Must not be more than 100 characters.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class UserHierarchyGroupHierarchyPathLevelOneArgs:
    def __init__(__self__, *,
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy group.
        :param pulumi.Input[str] id: The identifier of the hierarchy group.
        :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters.
        """
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy group.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy group.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the user hierarchy group. Must not be more than 100 characters.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class UserHierarchyGroupHierarchyPathLevelThreeArgs:
    def __init__(__self__, *,
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy group.
        :param pulumi.Input[str] id: The identifier of the hierarchy group.
        :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters.
        """
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy group.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy group.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the user hierarchy group. Must not be more than 100 characters.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class UserHierarchyGroupHierarchyPathLevelTwoArgs:
    def __init__(__self__, *,
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy group.
        :param pulumi.Input[str] id: The identifier of the hierarchy group.
        :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters.
        """
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy group.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy group.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the user hierarchy group. Must not be more than 100 characters.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class UserHierarchyStructureHierarchyStructureArgs:
    def __init__(__self__, *,
                 level_five: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFiveArgs']] = None,
                 level_four: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFourArgs']] = None,
                 level_one: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelOneArgs']] = None,
                 level_three: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelThreeArgs']] = None,
                 level_two: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelTwoArgs']] = None):
        """
        :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFiveArgs'] level_five: A block that defines the details of level five. The level block is documented below.
        :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFourArgs'] level_four: A block that defines the details of level four. The level block is documented below.
        :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelOneArgs'] level_one: A block that defines the details of level one. The level block is documented below.
        :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelThreeArgs'] level_three: A block that defines the details of level three. The level block is documented below.
        :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelTwoArgs'] level_two: A block that defines the details of level two. The level block is documented below.
        """
        if level_five is not None:
            pulumi.set(__self__, "level_five", level_five)
        if level_four is not None:
            pulumi.set(__self__, "level_four", level_four)
        if level_one is not None:
            pulumi.set(__self__, "level_one", level_one)
        if level_three is not None:
            pulumi.set(__self__, "level_three", level_three)
        if level_two is not None:
            pulumi.set(__self__, "level_two", level_two)

    @property
    @pulumi.getter(name="levelFive")
    def level_five(self) -> Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFiveArgs']]:
        """
        A block that defines the details of level five. The level block is documented below.
        """
        return pulumi.get(self, "level_five")

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

    @property
    @pulumi.getter(name="levelFour")
    def level_four(self) -> Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFourArgs']]:
        """
        A block that defines the details of level four. The level block is documented below.
        """
        return pulumi.get(self, "level_four")

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

    @property
    @pulumi.getter(name="levelOne")
    def level_one(self) -> Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelOneArgs']]:
        """
        A block that defines the details of level one. The level block is documented below.
        """
        return pulumi.get(self, "level_one")

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

    @property
    @pulumi.getter(name="levelThree")
    def level_three(self) -> Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelThreeArgs']]:
        """
        A block that defines the details of level three. The level block is documented below.
        """
        return pulumi.get(self, "level_three")

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

    @property
    @pulumi.getter(name="levelTwo")
    def level_two(self) -> Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelTwoArgs']]:
        """
        A block that defines the details of level two. The level block is documented below.
        """
        return pulumi.get(self, "level_two")

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


@pulumi.input_type
class UserHierarchyStructureHierarchyStructureLevelFiveArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the user hierarchy level. Must not be more than 50 characters.
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level.
        :param pulumi.Input[str] id: The identifier of the hierarchy level.
        """
        pulumi.set(__self__, "name", name)
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the user hierarchy level. Must not be more than 50 characters.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy level.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy level.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class UserHierarchyStructureHierarchyStructureLevelFourArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the user hierarchy level. Must not be more than 50 characters.
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level.
        :param pulumi.Input[str] id: The identifier of the hierarchy level.
        """
        pulumi.set(__self__, "name", name)
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the user hierarchy level. Must not be more than 50 characters.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy level.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy level.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class UserHierarchyStructureHierarchyStructureLevelOneArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the user hierarchy level. Must not be more than 50 characters.
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level.
        :param pulumi.Input[str] id: The identifier of the hierarchy level.
        """
        pulumi.set(__self__, "name", name)
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the user hierarchy level. Must not be more than 50 characters.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy level.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy level.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class UserHierarchyStructureHierarchyStructureLevelThreeArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the user hierarchy level. Must not be more than 50 characters.
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level.
        :param pulumi.Input[str] id: The identifier of the hierarchy level.
        """
        pulumi.set(__self__, "name", name)
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the user hierarchy level. Must not be more than 50 characters.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy level.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy level.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class UserHierarchyStructureHierarchyStructureLevelTwoArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 arn: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the user hierarchy level. Must not be more than 50 characters.
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level.
        :param pulumi.Input[str] id: The identifier of the hierarchy level.
        """
        pulumi.set(__self__, "name", name)
        if arn is not None:
            pulumi.set(__self__, "arn", arn)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the user hierarchy level. Must not be more than 50 characters.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def arn(self) -> Optional[pulumi.Input[str]]:
        """
        The Amazon Resource Name (ARN) of the hierarchy level.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The identifier of the hierarchy level.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class GetBotAssociationLexBotArgs:
    def __init__(__self__, *,
                 lex_region: str,
                 name: str):
        """
        :param str lex_region: The Region that the Amazon Lex (V1) bot was created in.
        :param str name: The name of the Amazon Lex (V1) bot.
        """
        pulumi.set(__self__, "lex_region", lex_region)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="lexRegion")
    def lex_region(self) -> str:
        """
        The Region that the Amazon Lex (V1) bot was created in.
        """
        return pulumi.get(self, "lex_region")

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

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the Amazon Lex (V1) bot.
        """
        return pulumi.get(self, "name")

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


