o
    0_Wc                     @   s   d dl Z d dlZd dlZd dlZd dlmZ ejrQd dlmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ G dd deZ dS )    N)Enum)DictListOptionalUnionAny)datetime)Reprompt)	Directive)ExperimentTriggerResponse)CanFulfillIntent)OutputSpeech)Cardc                	   @   sr   e Zd ZdZdddddddd	d
Zddddddddd
ZdZd!ddZdd Zdd Z	dd Z
dd Zdd  ZdS )"Responsea  

    :param output_speech: 
    :type output_speech: (optional) ask_sdk_model.ui.output_speech.OutputSpeech
    :param card: 
    :type card: (optional) ask_sdk_model.ui.card.Card
    :param reprompt: 
    :type reprompt: (optional) ask_sdk_model.ui.reprompt.Reprompt
    :param directives: 
    :type directives: (optional) list[ask_sdk_model.directive.Directive]
    :param api_response: API response object containing API response value(s)
    :type api_response: (optional) object
    :param should_end_session: 
    :type should_end_session: (optional) bool
    :param can_fulfill_intent: 
    :type can_fulfill_intent: (optional) ask_sdk_model.canfulfill.can_fulfill_intent.CanFulfillIntent
    :param experimentation: Experiment trigger response from skill
    :type experimentation: (optional) ask_sdk_model.interfaces.alexa.experimentation.experiment_trigger_response.ExperimentTriggerResponse

    z+ask_sdk_model.ui.output_speech.OutputSpeechzask_sdk_model.ui.card.Cardz"ask_sdk_model.ui.reprompt.Repromptz'list[ask_sdk_model.directive.Directive]objectboolz<ask_sdk_model.canfulfill.can_fulfill_intent.CanFulfillIntentzdask_sdk_model.interfaces.alexa.experimentation.experiment_trigger_response.ExperimentTriggerResponse)output_speechcardreprompt
directivesapi_responseshould_end_sessioncan_fulfill_intentexperimentationZoutputSpeechr   r   r   ZapiResponseZshouldEndSessionZcanFulfillIntentr   FNc	           	      C   s:   d| _ || _|| _|| _|| _|| _|| _|| _|| _dS )a  

        :param output_speech: 
        :type output_speech: (optional) ask_sdk_model.ui.output_speech.OutputSpeech
        :param card: 
        :type card: (optional) ask_sdk_model.ui.card.Card
        :param reprompt: 
        :type reprompt: (optional) ask_sdk_model.ui.reprompt.Reprompt
        :param directives: 
        :type directives: (optional) list[ask_sdk_model.directive.Directive]
        :param api_response: API response object containing API response value(s)
        :type api_response: (optional) object
        :param should_end_session: 
        :type should_end_session: (optional) bool
        :param can_fulfill_intent: 
        :type can_fulfill_intent: (optional) ask_sdk_model.canfulfill.can_fulfill_intent.CanFulfillIntent
        :param experimentation: Experiment trigger response from skill
        :type experimentation: (optional) ask_sdk_model.interfaces.alexa.experimentation.experiment_trigger_response.ExperimentTriggerResponse
        N)	Z_Response__discriminator_valuer   r   r   r   r   r   r   r   )	selfr   r   r   r   r   r   r   r    r   8D:\Flask\env\Lib\site-packages\ask_sdk_model/response.py__init__N   s   
zResponse.__init__c                 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>w   s    z"Response.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   n   s&   





zResponse.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_str   s   zResponse.to_strc                 C   s   |   S )zFor `print` and `pprint`)r5   r4   r   r   r   __repr__   s   zResponse.__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Response.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r8   r   r   r   __ne__   s   
zResponse.__ne__)NNNNNNNN)__name__
__module____qualname____doc__r)   Zattribute_mapZsupports_multiple_typesr   r   r5   r6   r:   r;   r   r   r   r   r   "   s6    

 r   )!r2   rer'   typingenumr   TYPE_CHECKINGr   r   r   r   r   r   Zask_sdk_model.ui.repromptr	   ZReprompt_ffee6ea4Zask_sdk_model.directiver
   ZDirective_e3e6b000ZJask_sdk_model.interfaces.alexa.experimentation.experiment_trigger_responser   Z"ExperimentTriggerResponse_5daea3f3Z+ask_sdk_model.canfulfill.can_fulfill_intentr   ZCanFulfillIntent_8d777e62Zask_sdk_model.ui.output_speechr   ZOutputSpeech_a070f8fbZask_sdk_model.ui.cardr   ZCard_3a03f3c4r   r   r   r   r   r   <module>   s   