U
    cc                     @   s   d dl Z d dlZd dlZd dlZd dlmZ ejrrd 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)DictListOptionalUnionAny)datetime)IntentConfirmationStatus)Slotc                   @   s^   e Zd ZdZddddZ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 )Intenta  
    An object that represents what the user wants.


    :param name: A string representing the name of the intent.
    :type name: (optional) str
    :param slots: A map of key-value pairs that further describes what the user meant based on a predefined intent schema. The map can be empty.
    :type slots: (optional) dict(str, ask_sdk_model.slot.Slot)
    :param confirmation_status: 
    :type confirmation_status: (optional) ask_sdk_model.intent_confirmation_status.IntentConfirmationStatus

    strz"dict(str, ask_sdk_model.slot.Slot)zAask_sdk_model.intent_confirmation_status.IntentConfirmationStatus)nameslotsconfirmation_statusr   r   ZconfirmationStatusFNc                 C   s   d| _ || _|| _|| _dS )a  An object that represents what the user wants.

        :param name: A string representing the name of the intent.
        :type name: (optional) str
        :param slots: A map of key-value pairs that further describes what the user meant based on a predefined intent schema. The map can be empty.
        :type slots: (optional) dict(str, ask_sdk_model.slot.Slot)
        :param confirmation_status: 
        :type confirmation_status: (optional) ask_sdk_model.intent_confirmation_status.IntentConfirmationStatus
        N)Z_Intent__discriminator_valuer   r   r   )selfr   r   r    r   8/tmp/pip-unpacked-wheel-urk6bcke/ask_sdk_model/intent.py__init__8   s    zIntent.__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>R   s   z Intent.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   I   s&    





zIntent.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_strg   s    zIntent.to_strc                 C   s   |   S )zFor `print` and `pprint`)r+   r*   r   r   r   __repr__l   s    zIntent.__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__q   s    
zIntent.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r.   r   r   r   __ne__y   s    zIntent.__ne__)NNN)__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.intent_confirmation_statusr	   Z!IntentConfirmationStatus_89f2a248Zask_sdk_model.slotr
   ZSlot_9e3ddabeobjectr   r   r   r   r   <module>   s   