o
    0_Wc³3  ã                   @   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                   @   sB  e Zd ZdZddiZddi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+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“dFdG“dHdI“¥ZdZe	Z
edYdKdL„ƒZedMdN„ ƒZdOdP„ ZdQdR„ ZdSdT„ ZdUdV„ ZdWdX„ ZdJS )ZÚ	Directivea­  

    :param object_type: 
    :type object_type: (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.

        | CustomInterfaceController.StopEventHandler: :py:class:`ask_sdk_model.interfaces.custom_interface_controller.stop_event_handler_directive.StopEventHandlerDirective`,
        |
        | Navigation.Assistance.AnnounceRoadRegulation: :py:class:`ask_sdk_model.interfaces.navigation.assistance.announce_road_regulation.AnnounceRoadRegulation`,
        |
        | Connections.SendRequest: :py:class:`ask_sdk_model.interfaces.connections.send_request_directive.SendRequestDirective`,
        |
        | Dialog.UpdateDynamicEntities: :py:class:`ask_sdk_model.dialog.dynamic_entities_directive.DynamicEntitiesDirective`,
        |
        | CustomInterfaceController.StartEventHandler: :py:class:`ask_sdk_model.interfaces.custom_interface_controller.start_event_handler_directive.StartEventHandlerDirective`,
        |
        | GadgetController.SetLight: :py:class:`ask_sdk_model.interfaces.gadget_controller.set_light_directive.SetLightDirective`,
        |
        | Alexa.Presentation.APL.SendIndexListData: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.send_index_list_data_directive.SendIndexListDataDirective`,
        |
        | Dialog.Delegate: :py:class:`ask_sdk_model.dialog.delegate_directive.DelegateDirective`,
        |
        | Dialog.ConfirmIntent: :py:class:`ask_sdk_model.dialog.confirm_intent_directive.ConfirmIntentDirective`,
        |
        | CustomInterfaceController.SendDirective: :py:class:`ask_sdk_model.interfaces.custom_interface_controller.send_directive_directive.SendDirectiveDirective`,
        |
        | Alexa.Presentation.HTML.HandleMessage: :py:class:`ask_sdk_model.interfaces.alexa.presentation.html.handle_message_directive.HandleMessageDirective`,
        |
        | Alexa.Presentation.APLA.RenderDocument: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apla.render_document_directive.RenderDocumentDirective`,
        |
        | Dialog.ElicitSlot: :py:class:`ask_sdk_model.dialog.elicit_slot_directive.ElicitSlotDirective`,
        |
        | Alexa.Presentation.HTML.Start: :py:class:`ask_sdk_model.interfaces.alexa.presentation.html.start_directive.StartDirective`,
        |
        | AudioPlayer.Stop: :py:class:`ask_sdk_model.interfaces.audioplayer.stop_directive.StopDirective`,
        |
        | Dialog.ConfirmSlot: :py:class:`ask_sdk_model.dialog.confirm_slot_directive.ConfirmSlotDirective`,
        |
        | AudioPlayer.Play: :py:class:`ask_sdk_model.interfaces.audioplayer.play_directive.PlayDirective`,
        |
        | Alexa.Presentation.APL.ExecuteCommands: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.execute_commands_directive.ExecuteCommandsDirective`,
        |
        | Display.RenderTemplate: :py:class:`ask_sdk_model.interfaces.display.render_template_directive.RenderTemplateDirective`,
        |
        | Conversations.ResetContext: :py:class:`ask_sdk_model.interfaces.conversations.reset_context_directive.ResetContextDirective`,
        |
        | Dialog.DelegateRequest: :py:class:`ask_sdk_model.dialog.delegate_request_directive.DelegateRequestDirective`,
        |
        | Hint: :py:class:`ask_sdk_model.interfaces.display.hint_directive.HintDirective`,
        |
        | Connections.StartConnection: :py:class:`ask_sdk_model.interfaces.connections.v1.start_connection_directive.StartConnectionDirective`,
        |
        | Alexa.Presentation.APLT.RenderDocument: :py:class:`ask_sdk_model.interfaces.alexa.presentation.aplt.render_document_directive.RenderDocumentDirective`,
        |
        | GameEngine.StartInputHandler: :py:class:`ask_sdk_model.interfaces.game_engine.start_input_handler_directive.StartInputHandlerDirective`,
        |
        | VideoApp.Launch: :py:class:`ask_sdk_model.interfaces.videoapp.launch_directive.LaunchDirective`,
        |
        | Alexa.Presentation.APLT.ExecuteCommands: :py:class:`ask_sdk_model.interfaces.alexa.presentation.aplt.execute_commands_directive.ExecuteCommandsDirective`,
        |
        | GameEngine.StopInputHandler: :py:class:`ask_sdk_model.interfaces.game_engine.stop_input_handler_directive.StopInputHandlerDirective`,
        |
        | Tasks.CompleteTask: :py:class:`ask_sdk_model.interfaces.tasks.complete_task_directive.CompleteTaskDirective`,
        |
        | Alexa.Presentation.APL.RenderDocument: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.render_document_directive.RenderDocumentDirective`,
        |
        | Connections.SendResponse: :py:class:`ask_sdk_model.interfaces.connections.send_response_directive.SendResponseDirective`,
        |
        | Alexa.Presentation.APL.SendTokenListData: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.send_token_list_data_directive.SendTokenListDataDirective`,
        |
        | AudioPlayer.ClearQueue: :py:class:`ask_sdk_model.interfaces.audioplayer.clear_queue_directive.ClearQueueDirective`,
        |
        | Alexa.Presentation.APL.UpdateIndexListData: :py:class:`ask_sdk_model.interfaces.alexa.presentation.apl.update_index_list_data_directive.UpdateIndexListDataDirective`

    Úobject_typeÚstrÚtypeFz*CustomInterfaceController.StopEventHandlerzkask_sdk_model.interfaces.custom_interface_controller.stop_event_handler_directive.StopEventHandlerDirectivez,Navigation.Assistance.AnnounceRoadRegulationz^ask_sdk_model.interfaces.navigation.assistance.announce_road_regulation.AnnounceRoadRegulationzConnections.SendRequestzPask_sdk_model.interfaces.connections.send_request_directive.SendRequestDirectivezDialog.UpdateDynamicEntitieszHask_sdk_model.dialog.dynamic_entities_directive.DynamicEntitiesDirectivez+CustomInterfaceController.StartEventHandlerzmask_sdk_model.interfaces.custom_interface_controller.start_event_handler_directive.StartEventHandlerDirectivezGadgetController.SetLightzPask_sdk_model.interfaces.gadget_controller.set_light_directive.SetLightDirectivez(Alexa.Presentation.APL.SendIndexListDataziask_sdk_model.interfaces.alexa.presentation.apl.send_index_list_data_directive.SendIndexListDataDirectivezDialog.Delegatez9ask_sdk_model.dialog.delegate_directive.DelegateDirectivezDialog.ConfirmIntentzDask_sdk_model.dialog.confirm_intent_directive.ConfirmIntentDirectivez'CustomInterfaceController.SendDirectivezdask_sdk_model.interfaces.custom_interface_controller.send_directive_directive.SendDirectiveDirectivez%Alexa.Presentation.HTML.HandleMessagez`ask_sdk_model.interfaces.alexa.presentation.html.handle_message_directive.HandleMessageDirectivez&Alexa.Presentation.APLA.RenderDocumentzbask_sdk_model.interfaces.alexa.presentation.apla.render_document_directive.RenderDocumentDirectivezDialog.ElicitSlotz>ask_sdk_model.dialog.elicit_slot_directive.ElicitSlotDirectivezAlexa.Presentation.HTML.StartzOask_sdk_model.interfaces.alexa.presentation.html.start_directive.StartDirectivezAudioPlayer.StopzAask_sdk_model.interfaces.audioplayer.stop_directive.StopDirectivezDialog.ConfirmSlotz@ask_sdk_model.dialog.confirm_slot_directive.ConfirmSlotDirectivezAudioPlayer.PlayzAask_sdk_model.interfaces.audioplayer.play_directive.PlayDirectivez&Alexa.Presentation.APL.ExecuteCommandszcask_sdk_model.interfaces.alexa.presentation.apl.execute_commands_directive.ExecuteCommandsDirectivezDisplay.RenderTemplatezRask_sdk_model.interfaces.display.render_template_directive.RenderTemplateDirectivezConversations.ResetContextzTask_sdk_model.interfaces.conversations.reset_context_directive.ResetContextDirectivezDialog.DelegateRequestzHask_sdk_model.dialog.delegate_request_directive.DelegateRequestDirectiveZHintz=ask_sdk_model.interfaces.display.hint_directive.HintDirectivezConnections.StartConnectionz[ask_sdk_model.interfaces.connections.v1.start_connection_directive.StartConnectionDirectivez&Alexa.Presentation.APLT.RenderDocumentzbask_sdk_model.interfaces.alexa.presentation.aplt.render_document_directive.RenderDocumentDirectivezGameEngine.StartInputHandlerz]ask_sdk_model.interfaces.game_engine.start_input_handler_directive.StartInputHandlerDirectivezVideoApp.LaunchzBask_sdk_model.interfaces.videoapp.launch_directive.LaunchDirectivez'Alexa.Presentation.APLT.ExecuteCommandszdask_sdk_model.interfaces.alexa.presentation.aplt.execute_commands_directive.ExecuteCommandsDirectivezGameEngine.StopInputHandlerz[ask_sdk_model.interfaces.game_engine.stop_input_handler_directive.StopInputHandlerDirectivezTasks.CompleteTaskzLask_sdk_model.interfaces.tasks.complete_task_directive.CompleteTaskDirectivez%Alexa.Presentation.APL.RenderDocumentzaask_sdk_model.interfaces.alexa.presentation.apl.render_document_directive.RenderDocumentDirectivezConnections.SendResponsezRask_sdk_model.interfaces.connections.send_response_directive.SendResponseDirectivez(Alexa.Presentation.APL.SendTokenListDataziask_sdk_model.interfaces.alexa.presentation.apl.send_token_list_data_directive.SendTokenListDataDirectivezAudioPlayer.ClearQueuezNask_sdk_model.interfaces.audioplayer.clear_queue_directive.ClearQueueDirectivez*Alexa.Presentation.APL.UpdateIndexListDatazmask_sdk_model.interfaces.alexa.presentation.apl.update_index_list_data_directive.UpdateIndexListDataDirectiveNc                 C   s   d| _ || _dS )zQ

        :param object_type: 
        :type object_type: (optional) str
        N)Z_Directive__discriminator_valuer   )Úselfr   © r   ú9D:\Flask\env\Lib\site-packages\ask_sdk_model/directive.pyÚ__init__Ÿ   s   
zDirective.__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Directive.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#Directive.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Directive.to_dictc                 C   s   t  |  ¡ ¡S )z.Returns the string representation of the model)ÚpprintÚpformatr   ©r   r   r   r   Úto_strÐ   s   zDirective.to_strc                 C   s   |   ¡ S )zFor `print` and `pprint`)r0   r/   r   r   r   Ú__repr__Õ   s   zDirective.__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Directive.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r3   r   r   r   Ú__ne__â   s   
zDirective.__ne__)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   Zattribute_mapZsupports_multiple_typesr   r   r   Ú__metaclass__r   r   Úclassmethodr   r   r0   r1   r5   r6   r   r   r   r   r      s®    Pÿÿÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ%
r   )r-   Úrer"   ÚtypingÚenumr   Úabcr   r   ÚTYPE_CHECKINGr   r   r   r   r	   r
   Úobjectr   r   r   r   r   Ú<module>   s   