o
    0_Wcr                     @   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 ejr?d 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 G dd	 d	eZdS )
    N)Enum)Request)DictListOptionalUnionAny)datetime)SessionEndedReason)SessionEndedErrorc                       sr   e Zd ZdZdddddddZddd	d
dddZdZd fdd	Zdd Zdd Z	dd Z
dd Zdd Z  ZS )SessionEndedRequestuF  
    A SessionEndedRequest is an object that represents a request made to an Alexa skill to notify that a session was ended. Your service receives a SessionEndedRequest when a currently open session is closed for one of the following reasons: &lt;ol&gt;&lt;li&gt;The user says “exit”&lt;/li&gt;&lt;li&gt;the user does not respond or says something that does not match an intent defined in your voice interface while the device is listening for the user’s response&lt;/li&gt;&lt;li&gt;an error occurs&lt;/li&gt;&lt;/ol&gt;


    :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
    :param reason: Describes why the session ended.
    :type reason: (optional) ask_sdk_model.session_ended_reason.SessionEndedReason
    :param error: An error object providing more information about the error that occurred.
    :type error: (optional) ask_sdk_model.session_ended_error.SessionEndedError

    strr	   z5ask_sdk_model.session_ended_reason.SessionEndedReasonz3ask_sdk_model.session_ended_error.SessionEndedError)object_type
request_id	timestamplocalereasonerrortypeZ	requestIdr   r   r   r   FNc                    s8   d| _ | j | _tt| j| j |||d || _|| _dS )uk  A SessionEndedRequest is an object that represents a request made to an Alexa skill to notify that a session was ended. Your service receives a SessionEndedRequest when a currently open session is closed for one of the following reasons: &lt;ol&gt;&lt;li&gt;The user says “exit”&lt;/li&gt;&lt;li&gt;the user does not respond or says something that does not match an intent defined in your voice interface while the device is listening for the user’s response&lt;/li&gt;&lt;li&gt;an error occurs&lt;/li&gt;&lt;/ol&gt;

        :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
        :param reason: Describes why the session ended.
        :type reason: (optional) ask_sdk_model.session_ended_reason.SessionEndedReason
        :param error: An error object providing more information about the error that occurred.
        :type error: (optional) ask_sdk_model.session_ended_error.SessionEndedError
        r   )r   r   r   r   N)Z)_SessionEndedRequest__discriminator_valuer   superr   __init__r   r   )selfr   r   r   r   r   	__class__ ED:\Flask\env\Lib\site-packages\ask_sdk_model/session_ended_request.pyr   C   s
   
zSessionEndedRequest.__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>b   s    z-SessionEndedRequest.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"   l   s
   )six	iteritemsdeserialized_typesgetattrr   listmapr   r    r   r   dictitems)r   resultattr_r    r   r   r   r   Y   s&   





zSessionEndedRequest.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_strw   s   zSessionEndedRequest.to_strc                 C   s   |   S )zFor `print` and `pprint`)r3   r2   r   r   r   __repr__|   s   zSessionEndedRequest.__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SessionEndedRequest.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r6   r   r   r   __ne__   s   
zSessionEndedRequest.__ne__)NNNNN)__name__
__module____qualname____doc__r'   Zattribute_mapZsupports_multiple_typesr   r   r3   r4   r8   r9   __classcell__r   r   r   r   r      s.    
r   )r0   rer%   typingenumr   Zask_sdk_model.requestr   TYPE_CHECKINGr   r   r   r   r   r	   Z"ask_sdk_model.session_ended_reasonr
   ZSessionEndedReason_8be684f4Z!ask_sdk_model.session_ended_errorr   ZSessionEndedError_39281860r   r   r   r   r   <module>   s   