o
    0_WcþL  ã                   @   s~   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ ej	r5d dlm
Z
mZmZmZmZ d dlmZ G dd„ deƒZdS )é    N)ÚEnum)ÚABCMetaÚabstractmethod)ÚDictÚListÚOptionalÚUnionÚAny)Údatetimec                   @   s²  e Zd ZdZdddddœZdddddœZd	Zi d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“i d,d-“d.d/“d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“dFdG“dHdI“dJdK“dLdM“¥i dNdO“dPdQ“dRdS“dTdU“dVdW“dXdY“dZd[“d\d]“d^d_“d`da“dbdc“ddde“dfdg“dhdi“djdk“dldm“¥ZdZe	Z
ed}dodp„ƒZedqdr„ ƒZdsdt„ Zdudv„ Zdwdx„ Zdydz„ Zd{d|„ ZdnS )~ÚRequestu-!  
    A request object that provides the details of the userâ€™s request. The request body contains the parameters necessary for the service to perform its logic and generate a response.


    :param object_type: Describes the type of the request.
    :type object_type: (optional) str
    :param request_id: Represents the unique identifier for the specific request.
    :type request_id: (optional) str
    :param timestamp: Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to verify the request when hosting your skill as a web service.
    :type timestamp: (optional) datetime
    :param locale: A string indicating the userâ€™s locale. For example: en-US. This value is only provided with certain request types.
    :type locale: (optional) str

    .. note::

        This is an abstract class. Use the following mapping, to figure out
        the model class to be instantiated, that sets ``type`` variable.

        | AlexaSkillEvent.SkillEnabled: :py:class:`ask_sdk_model.events.skillevents.skill_enabled_request.SkillEnabledRequest`,
        |
        | AlexaHouseholdListEvent.ListUpdated: :py:class:`ask_sdk_model.services.list_management.list_updated_event_request.ListUpdatedEventRequest`,
        |
        | Alexa.Presentation.APL.UserEvent: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.user_event.UserEvent`,
        |
        | AlexaSkillEvent.SkillDisabled: :py:class:`ask_sdk_model.events.skillevents.skill_disabled_request.SkillDisabledRequest`,
        |
        | AlexaHouseholdListEvent.ItemsCreated: :py:class:`ask_sdk_model.services.list_management.list_items_created_event_request.ListItemsCreatedEventRequest`,
        |
        | SessionResumedRequest: :py:class:`ask_sdk_model.session_resumed_request.SessionResumedRequest`,
        |
        | SessionEndedRequest: :py:class:`ask_sdk_model.session_ended_request.SessionEndedRequest`,
        |
        | Alexa.Presentation.APL.LoadIndexListData: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.load_index_list_data_event.LoadIndexListDataEvent`,
        |
        | Alexa.Presentation.APL.LoadTokenListData: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.load_token_list_data_event.LoadTokenListDataEvent`,
        |
        | AudioPlayer.PlaybackFailed: :py:class:`ask_sdk_model.interfaces.audioplayer.playback_failed_request.PlaybackFailedRequest`,
        |
        | CanFulfillIntentRequest: :py:class:`ask_sdk_model.canfulfill.can_fulfill_intent_request.CanFulfillIntentRequest`,
        |
        | CustomInterfaceController.Expired: :py:class:`ask_sdk_model.interfaces.custom_interface_controller.expired_request.ExpiredRequest`,
        |
        | Alexa.Presentation.HTML.Message: :py:class:`ask_sdk_model.interfaces.alexa.presentation.html.message_request.MessageRequest`,
        |
        | LaunchRequest: :py:class:`ask_sdk_model.launch_request.LaunchRequest`,
        |
        | Alexa.Authorization.Grant: :py:class:`ask_sdk_model.authorization.authorization_grant_request.AuthorizationGrantRequest`,
        |
        | Reminders.ReminderCreated: :py:class:`ask_sdk_model.services.reminder_management.reminder_created_event_request.ReminderCreatedEventRequest`,
        |
        | Alexa.Presentation.APLT.UserEvent: :py:class:`ask_sdk_model.interfaces.alexa.presentation.aplt.user_event.UserEvent`,
        |
        | AlexaHouseholdListEvent.ItemsUpdated: :py:class:`ask_sdk_model.services.list_management.list_items_updated_event_request.ListItemsUpdatedEventRequest`,
        |
        | AlexaHouseholdListEvent.ListCreated: :py:class:`ask_sdk_model.services.list_management.list_created_event_request.ListCreatedEventRequest`,
        |
        | AudioPlayer.PlaybackStarted: :py:class:`ask_sdk_model.interfaces.audioplayer.playback_started_request.PlaybackStartedRequest`,
        |
        | AudioPlayer.PlaybackNearlyFinished: :py:class:`ask_sdk_model.interfaces.audioplayer.playback_nearly_finished_request.PlaybackNearlyFinishedRequest`,
        |
        | CustomInterfaceController.EventsReceived: :py:class:`ask_sdk_model.interfaces.custom_interface_controller.events_received_request.EventsReceivedRequest`,
        |
        | Reminders.ReminderStatusChanged: :py:class:`ask_sdk_model.services.reminder_management.reminder_status_changed_event_request.ReminderStatusChangedEventRequest`,
        |
        | AlexaHouseholdListEvent.ItemsDeleted: :py:class:`ask_sdk_model.services.list_management.list_items_deleted_event_request.ListItemsDeletedEventRequest`,
        |
        | Reminders.ReminderDeleted: :py:class:`ask_sdk_model.services.reminder_management.reminder_deleted_event_request.ReminderDeletedEventRequest`,
        |
        | Connections.Response: :py:class:`ask_sdk_model.interfaces.connections.connections_response.ConnectionsResponse`,
        |
        | AlexaHouseholdListEvent.ListDeleted: :py:class:`ask_sdk_model.services.list_management.list_deleted_event_request.ListDeletedEventRequest`,
        |
        | GameEngine.InputHandlerEvent: :py:class:`ask_sdk_model.interfaces.game_engine.input_handler_event_request.InputHandlerEventRequest`,
        |
        | PlaybackController.PauseCommandIssued: :py:class:`ask_sdk_model.interfaces.playbackcontroller.pause_command_issued_request.PauseCommandIssuedRequest`,
        |
        | PlaybackController.PlayCommandIssued: :py:class:`ask_sdk_model.interfaces.playbackcontroller.play_command_issued_request.PlayCommandIssuedRequest`,
        |
        | AudioPlayer.PlaybackFinished: :py:class:`ask_sdk_model.interfaces.audioplayer.playback_finished_request.PlaybackFinishedRequest`,
        |
        | AlexaSkillEvent.ProactiveSubscriptionChanged: :py:class:`ask_sdk_model.events.skillevents.proactive_subscription_changed_request.ProactiveSubscriptionChangedRequest`,
        |
        | Display.ElementSelected: :py:class:`ask_sdk_model.interfaces.display.element_selected_request.ElementSelectedRequest`,
        |
        | AlexaSkillEvent.SkillPermissionChanged: :py:class:`ask_sdk_model.events.skillevents.permission_changed_request.PermissionChangedRequest`,
        |
        | Reminders.ReminderUpdated: :py:class:`ask_sdk_model.services.reminder_management.reminder_updated_event_request.ReminderUpdatedEventRequest`,
        |
        | Alexa.Presentation.APL.RuntimeError: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.runtime_error_event.RuntimeErrorEvent`,
        |
        | Alexa.Presentation.HTML.RuntimeError: :py:class:`ask_sdk_model.interfaces.alexa.presentation.html.runtime_error_request.RuntimeErrorRequest`,
        |
        | Dialog.InputRequest: :py:class:`ask_sdk_model.dialog.input_request.InputRequest`,
        |
        | IntentRequest: :py:class:`ask_sdk_model.intent_request.IntentRequest`,
        |
        | Dialog.API.Invoked: :py:class:`ask_sdk_model.interfaces.conversations.api_invocation_request.APIInvocationRequest`,
        |
        | Reminders.ReminderStarted: :py:class:`ask_sdk_model.services.reminder_management.reminder_started_event_request.ReminderStartedEventRequest`,
        |
        | AudioPlayer.PlaybackStopped: :py:class:`ask_sdk_model.interfaces.audioplayer.playback_stopped_request.PlaybackStoppedRequest`,
        |
        | PlaybackController.PreviousCommandIssued: :py:class:`ask_sdk_model.interfaces.playbackcontroller.previous_command_issued_request.PreviousCommandIssuedRequest`,
        |
        | AlexaSkillEvent.SkillAccountLinked: :py:class:`ask_sdk_model.events.skillevents.account_linked_request.AccountLinkedRequest`,
        |
        | Messaging.MessageReceived: :py:class:`ask_sdk_model.interfaces.messaging.message_received_request.MessageReceivedRequest`,
        |
        | Connections.Request: :py:class:`ask_sdk_model.interfaces.connections.connections_request.ConnectionsRequest`,
        |
        | System.ExceptionEncountered: :py:class:`ask_sdk_model.interfaces.system.exception_encountered_request.ExceptionEncounteredRequest`,
        |
        | AlexaSkillEvent.SkillPermissionAccepted: :py:class:`ask_sdk_model.events.skillevents.permission_accepted_request.PermissionAcceptedRequest`,
        |
        | PlaybackController.NextCommandIssued: :py:class:`ask_sdk_model.interfaces.playbackcontroller.next_command_issued_request.NextCommandIssuedRequest`,
        |
        | Alexa.Presentation.APLA.RuntimeError: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apla.runtime_error_event.RuntimeErrorEvent`

    Ústrr
   )Úobject_typeÚ
request_idÚ	timestampÚlocaleÚtypeZ	requestIdr   r   FzAlexaSkillEvent.SkillEnabledzJask_sdk_model.events.skillevents.skill_enabled_request.SkillEnabledRequestz#AlexaHouseholdListEvent.ListUpdatedzYask_sdk_model.services.list_management.list_updated_event_request.ListUpdatedEventRequestz Alexa.Presentation.APL.UserEventzDask_sdk_model.interfaces.alexa.presentation.apl.user_event.UserEventzAlexaSkillEvent.SkillDisabledzLask_sdk_model.events.skillevents.skill_disabled_request.SkillDisabledRequestz$AlexaHouseholdListEvent.ItemsCreatedzdask_sdk_model.services.list_management.list_items_created_event_request.ListItemsCreatedEventRequestZSessionResumedRequestz;ask_sdk_model.session_resumed_request.SessionResumedRequestZSessionEndedRequestz7ask_sdk_model.session_ended_request.SessionEndedRequestz(Alexa.Presentation.APL.LoadIndexListDatazaask_sdk_model.interfaces.alexa.presentation.apl.load_index_list_data_event.LoadIndexListDataEventz(Alexa.Presentation.APL.LoadTokenListDatazaask_sdk_model.interfaces.alexa.presentation.apl.load_token_list_data_event.LoadTokenListDataEventzAudioPlayer.PlaybackFailedzRask_sdk_model.interfaces.audioplayer.playback_failed_request.PlaybackFailedRequestZCanFulfillIntentRequestzKask_sdk_model.canfulfill.can_fulfill_intent_request.CanFulfillIntentRequestz!CustomInterfaceController.ExpiredzSask_sdk_model.interfaces.custom_interface_controller.expired_request.ExpiredRequestzAlexa.Presentation.HTML.MessagezOask_sdk_model.interfaces.alexa.presentation.html.message_request.MessageRequestZLaunchRequestz*ask_sdk_model.launch_request.LaunchRequestzAlexa.Authorization.GrantzQask_sdk_model.authorization.authorization_grant_request.AuthorizationGrantRequestzReminders.ReminderCreatedzeask_sdk_model.services.reminder_management.reminder_created_event_request.ReminderCreatedEventRequestz!Alexa.Presentation.APLT.UserEventzEask_sdk_model.interfaces.alexa.presentation.aplt.user_event.UserEventz$AlexaHouseholdListEvent.ItemsUpdatedzdask_sdk_model.services.list_management.list_items_updated_event_request.ListItemsUpdatedEventRequestz#AlexaHouseholdListEvent.ListCreatedzYask_sdk_model.services.list_management.list_created_event_request.ListCreatedEventRequestzAudioPlayer.PlaybackStartedzTask_sdk_model.interfaces.audioplayer.playback_started_request.PlaybackStartedRequestz"AudioPlayer.PlaybackNearlyFinishedzcask_sdk_model.interfaces.audioplayer.playback_nearly_finished_request.PlaybackNearlyFinishedRequestz(CustomInterfaceController.EventsReceivedzbask_sdk_model.interfaces.custom_interface_controller.events_received_request.EventsReceivedRequestzReminders.ReminderStatusChangedzrask_sdk_model.services.reminder_management.reminder_status_changed_event_request.ReminderStatusChangedEventRequestz$AlexaHouseholdListEvent.ItemsDeletedzdask_sdk_model.services.list_management.list_items_deleted_event_request.ListItemsDeletedEventRequestzReminders.ReminderDeletedzeask_sdk_model.services.reminder_management.reminder_deleted_event_request.ReminderDeletedEventRequestzConnections.ResponsezMask_sdk_model.interfaces.connections.connections_response.ConnectionsResponsez#AlexaHouseholdListEvent.ListDeletedzYask_sdk_model.services.list_management.list_deleted_event_request.ListDeletedEventRequestzGameEngine.InputHandlerEventzYask_sdk_model.interfaces.game_engine.input_handler_event_request.InputHandlerEventRequestz%PlaybackController.PauseCommandIssuedzbask_sdk_model.interfaces.playbackcontroller.pause_command_issued_request.PauseCommandIssuedRequestz$PlaybackController.PlayCommandIssuedz`ask_sdk_model.interfaces.playbackcontroller.play_command_issued_request.PlayCommandIssuedRequestzAudioPlayer.PlaybackFinishedzVask_sdk_model.interfaces.audioplayer.playback_finished_request.PlaybackFinishedRequestz,AlexaSkillEvent.ProactiveSubscriptionChangedzkask_sdk_model.events.skillevents.proactive_subscription_changed_request.ProactiveSubscriptionChangedRequestzDisplay.ElementSelectedzPask_sdk_model.interfaces.display.element_selected_request.ElementSelectedRequestz&AlexaSkillEvent.SkillPermissionChangedzTask_sdk_model.events.skillevents.permission_changed_request.PermissionChangedRequestzReminders.ReminderUpdatedzeask_sdk_model.services.reminder_management.reminder_updated_event_request.ReminderUpdatedEventRequestz#Alexa.Presentation.APL.RuntimeErrorzUask_sdk_model.interfaces.alexa.presentation.apl.runtime_error_event.RuntimeErrorEventz$Alexa.Presentation.HTML.RuntimeErrorzZask_sdk_model.interfaces.alexa.presentation.html.runtime_error_request.RuntimeErrorRequestzDialog.InputRequestz/ask_sdk_model.dialog.input_request.InputRequestZIntentRequestz*ask_sdk_model.intent_request.IntentRequestzDialog.API.InvokedzRask_sdk_model.interfaces.conversations.api_invocation_request.APIInvocationRequestzReminders.ReminderStartedzeask_sdk_model.services.reminder_management.reminder_started_event_request.ReminderStartedEventRequestzAudioPlayer.PlaybackStoppedzTask_sdk_model.interfaces.audioplayer.playback_stopped_request.PlaybackStoppedRequestz(PlaybackController.PreviousCommandIssuedzhask_sdk_model.interfaces.playbackcontroller.previous_command_issued_request.PreviousCommandIssuedRequestz"AlexaSkillEvent.SkillAccountLinkedzLask_sdk_model.events.skillevents.account_linked_request.AccountLinkedRequestzMessaging.MessageReceivedzRask_sdk_model.interfaces.messaging.message_received_request.MessageReceivedRequestzConnections.RequestzKask_sdk_model.interfaces.connections.connections_request.ConnectionsRequestzSystem.ExceptionEncounteredzYask_sdk_model.interfaces.system.exception_encountered_request.ExceptionEncounteredRequestz'AlexaSkillEvent.SkillPermissionAcceptedzVask_sdk_model.events.skillevents.permission_accepted_request.PermissionAcceptedRequestz$PlaybackController.NextCommandIssuedz`ask_sdk_model.interfaces.playbackcontroller.next_command_issued_request.NextCommandIssuedRequestz$Alexa.Presentation.APLA.RuntimeErrorzVask_sdk_model.interfaces.alexa.presentation.apla.runtime_error_event.RuntimeErrorEventNc                 C   s"   d| _ || _|| _|| _|| _dS )u;  A request object that provides the details of the userâ€™s request. The request body contains the parameters necessary for the service to perform its logic and generate a response.

        :param object_type: Describes the type of the request.
        :type object_type: (optional) str
        :param request_id: Represents the unique identifier for the specific request.
        :type request_id: (optional) str
        :param timestamp: Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to verify the request when hosting your skill as a web service.
        :type timestamp: (optional) datetime
        :param locale: A string indicating the userâ€™s locale. For example: en-US. This value is only provided with certain request types.
        :type locale: (optional) str
        N)Z_Request__discriminator_valuer   r   r   r   )Úselfr   r   r   r   © r   ú7D:\Flask\env\Lib\site-packages\ask_sdk_model/request.pyÚ__init__Ý   s
   
zRequest.__init__c                 C   s   || j  }| j |¡S )z:Returns the real base class specified by the discriminator)Újson_discriminator_keyÚdiscriminator_value_class_mapÚget)ÚclsÚdataZdiscriminator_valuer   r   r   Úget_real_child_modelò   s   
zRequest.get_real_child_modelc                 C   s¦   i }t  | j¡D ]H\}}t| |ƒ}t|tƒr"ttdd„ |ƒƒ||< qt|tƒr-|j||< qt	|dƒr9| 
¡ ||< qt|tƒrLttdd„ | ¡ ƒƒ||< q|||< q|S )z&Returns the model properties as a dictc                 S   s&   t | dƒr	|  ¡ S t| tƒr| jS | S )NÚto_dict©Úhasattrr   Ú
isinstancer   Úvalue)Úxr   r   r   Ú<lambda>  s    z!Request.to_dict.<locals>.<lambda>r   c                 S   sF   t | d dƒr| d | d  ¡ fS t| d tƒr!| d | d jfS | S )Né   r   r   r   )Úitemr   r   r   r"     s
   ÿÿ)ÚsixÚ	iteritemsÚdeserialized_typesÚgetattrr   ÚlistÚmapr   r    r   r   ÚdictÚitems)r   ÚresultÚattrÚ_r    r   r   r   r   ù   s&   

ý


û
zRequest.to_dictc                 C   s   t  |  ¡ ¡S )z.Returns the string representation of the model)ÚpprintÚpformatr   ©r   r   r   r   Úto_str  s   zRequest.to_strc                 C   s   |   ¡ S )zFor `print` and `pprint`)r3   r2   r   r   r   Ú__repr__  s   zRequest.__repr__c                 C   s   t |tƒsdS | j|jkS )z&Returns true if both objects are equalF)r   r   Ú__dict__©r   Úotherr   r   r   Ú__eq__!  s   
zRequest.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r6   r   r   r   Ú__ne__)  s   
zRequest.__ne__)NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   Zattribute_mapZsupports_multiple_typesr   r   r   Ú__metaclass__r   r   Úclassmethodr   r   r3   r4   r8   r9   r   r   r   r   r      sú    xüüÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î5
r   )r0   Úrer%   ÚtypingÚenumr   Úabcr   r   ÚTYPE_CHECKINGr   r   r   r   r	   r
   Úobjectr   r   r   r   r   Ú<module>   s   