U
    cc]                     @   sz   d dl Z d dlZd dlZd dlZd dlmZ ejrfd dlmZmZm	Z	m
Z
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)Responsec                   @   sb   e Zd ZdZdddddZ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 )ResponseEnvelopea+  

    :param version: 
    :type version: (optional) str
    :param session_attributes: 
    :type session_attributes: (optional) dict(str, object)
    :param user_agent: 
    :type user_agent: (optional) str
    :param response: 
    :type response: (optional) ask_sdk_model.response.Response

    strzdict(str, object)zask_sdk_model.response.Response)versionsession_attributes
user_agentresponser   ZsessionAttributesZ	userAgentr   FNc                 C   s"   d| _ || _|| _|| _|| _dS )aN  

        :param version: 
        :type version: (optional) str
        :param session_attributes: 
        :type session_attributes: (optional) dict(str, object)
        :param user_agent: 
        :type user_agent: (optional) str
        :param response: 
        :type response: (optional) ask_sdk_model.response.Response
        N)Z&_ResponseEnvelope__discriminator_valuer   r   r   r   )selfr   r   r   r    r   C/tmp/pip-unpacked-wheel-urk6bcke/ask_sdk_model/response_envelope.py__init__9   s
    zResponseEnvelope.__init__c                 C   s   i }t | jD ]\}}t| |}t|trDttdd |||< qt|trZ|j||< qt	|drr|
 ||< qt|trt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>V   s   z*ResponseEnvelope.to_dict.<locals>.<lambda>r   c                 S   sF   t | d dr"| d | d  fS t| d trB| 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   M   s&    





zResponseEnvelope.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_strk   s    zResponseEnvelope.to_strc                 C   s   |   S )zFor `print` and `pprint`)r+   r*   r   r   r   __repr__p   s    zResponseEnvelope.__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__u   s    
zResponseEnvelope.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r.   r   r   r   __ne__}   s    zResponseEnvelope.__ne__)NNNN)__name__
__module____qualname____doc__r   Zattribute_mapZsupports_multiple_typesr   r   r+   r,   r0   r1   r   r   r   r   r
      s$   
r
   )r(   rer   typingenumr   TYPE_CHECKINGr   r   r   r   r   r   Zask_sdk_model.responser	   ZResponse_121c7e1eobjectr
   r   r   r   r   <module>   s   