U
    ccA                     @   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)Permissionsc                   @   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 )Usera  
    An object that describes the Amazon account for which the skill is enabled.


    :param user_id: A string that represents a unique identifier for the user who made the request. The length of this identifier can vary, but is never more than 255 characters. The userId is automatically generated when a user enables the skill in the Alexa app. Note: Disabling and re-enabling a skill generates a new identifier.
    :type user_id: (optional) str
    :param access_token: A token identifying the user in another system. This is only provided if the user has successfully linked their skill account with their Amazon account.
    :type access_token: (optional) str
    :param permissions: 
    :type permissions: (optional) ask_sdk_model.permissions.Permissions

    strz%ask_sdk_model.permissions.Permissions)user_idaccess_tokenpermissionsZuserIdZaccessTokenr   FNc                 C   s   d| _ || _|| _|| _dS )a  An object that describes the Amazon account for which the skill is enabled.

        :param user_id: A string that represents a unique identifier for the user who made the request. The length of this identifier can vary, but is never more than 255 characters. The userId is automatically generated when a user enables the skill in the Alexa app. Note: Disabling and re-enabling a skill generates a new identifier.
        :type user_id: (optional) str
        :param access_token: A token identifying the user in another system. This is only provided if the user has successfully linked their skill account with their Amazon account.
        :type access_token: (optional) str
        :param permissions: 
        :type permissions: (optional) ask_sdk_model.permissions.Permissions
        N)Z_User__discriminator_valuer   r   r   )selfr   r   r    r   6/tmp/pip-unpacked-wheel-urk6bcke/ask_sdk_model/user.py__init__7   s    zUser.__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>Q   s   zUser.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   H   s&    





zUser.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_strf   s    zUser.to_strc                 C   s   |   S )zFor `print` and `pprint`)r*   r)   r   r   r   __repr__k   s    zUser.__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__p   s    
zUser.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r-   r   r   r   __ne__x   s    zUser.__ne__)NNN)__name__
__module____qualname____doc__r   Zattribute_mapZsupports_multiple_typesr   r   r*   r+   r/   r0   r   r   r   r   r
      s    
r
   )r'   rer   typingenumr   TYPE_CHECKINGr   r   r   r   r   r   Zask_sdk_model.permissionsr	   ZPermissions_9a74ccaaobjectr
   r   r   r   r   <module>   s   