a
    g07                     @   s   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 d dlmZmZmZmZ d d	lmZmZmZmZmZ erd d
lmZ G dd ded ed ZdS )    )ExpandableField)
ListObject)ListableAPIResource)RequestOptions)StripeObject)UpdateableAPIResource)sanitize_id)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Cardc                   @   s  e Zd ZU dZdZeed  ed< G dd deZ	G dd de
ZG dd	 d	eZG d
d de
ZG dd de
Zed ed< eed< ee ed< eed< ee ed< eed< ed ed< ee	 ed< eed< ed ed< ed ed< eed  ed< eed ed  dd d!Zeed ed  dd"d#Zeeed$ d d%d&d'Zeeed$ d d%d(d)Zeeed* d d%d+d,Zeeed* d d%d-d.Zde	iZd/S )0Tokena  
    An issuing token object is created when an issued card is added to a digital wallet. As a [card issuer](https://stripe.com/docs/issuing), you can [view and manage these tokens](https://stripe.com/docs/issuing/controls/token-management) through Stripe.
    zissuing.tokenOBJECT_NAMEc                   @   s   e Zd ZU G dd deZG dd deZG dd deZG dd deZee e	d	< ee e	d
< e
d e	d< ee e	d< ee e	d< eeeedZdS )zToken.NetworkDatac                   @   sZ   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< eed  ed< dS )	zToken.NetworkData.Devicedevice_fingerprint
ip_addresslocationnameZphone_number)otherphonewatchtypeN)__name__
__module____qualname__r   str__annotations__r    r"   r"   c/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/stripe/issuing/_token.pyDevice   s   
r$   c                   @   s6   e Zd ZU ee ed< eed< eed< ee ed< dS )zToken.NetworkData.Mastercardcard_reference_idtoken_reference_idtoken_requestor_idZtoken_requestor_nameN)r   r   r   r   r    r!   r"   r"   r"   r#   
Mastercard9   s
   
r(   c                   @   s2   e Zd ZU eed< eed< eed< ee ed< dS )zToken.NetworkData.Visar%   r&   r'   Ztoken_risk_scoreN)r   r   r   r    r!   r   r"   r"   r"   r#   VisaK   s
   
r)   c                   @   s   e Zd ZU G dd deZee ed< ee ed< ee	d  ed< ee ed< ee ed< ee ed	< ee ed
< ee
e	d   ed< ee	d  ed< ee ed< deiZdS )z Token.NetworkData.WalletProviderc                   @   s   e Zd ZU eed< eed< dS )z2Token.NetworkData.WalletProvider.CardholderAddressline1Zpostal_codeN)r   r   r   r    r!   r"   r"   r"   r#   CardholderAddress^   s   
r+   Z
account_idZaccount_trust_score)ZappZmanualZon_filer   Zcard_number_sourceZcardholder_addressZcardholder_nameZdevice_trust_scoreZhashed_account_email_address)Zaccount_card_too_newZaccount_recently_changedZaccount_too_newZaccount_too_new_since_launchZadditional_deviceZdata_expiredZdefer_id_v_decisionZdevice_recently_lostZgood_activity_historyZhas_suspended_tokensZ	high_riskZinactive_accountZlong_account_tenureZlow_account_scoreZlow_device_scoreZlow_phone_number_scoreZnetwork_service_errorZoutside_home_territoryZ provisioning_cardholder_mismatchZ+provisioning_device_and_cardholder_mismatchZprovisioning_device_mismatchZ#same_device_no_prior_authenticationZ+same_device_successful_prior_authenticationZsoftware_updateZsuspicious_activityZtoo_many_different_cardholdersZtoo_many_recent_attemptsZtoo_many_recent_tokensZreason_codes)ZapproveZdeclineZrequire_authZsuggested_decisionZsuggested_decision_versionN)r   r   r   r   r+   r   r    r!   intr   r
   _inner_class_typesr"   r"   r"   r#   WalletProvider]   s,   

%r.   device
mastercardr0   visar   r2   wallet_provider)r/   r0   r2   r3   N)r   r   r   r   r$   r(   r)   r.   r   r!   r   r-   r"   r"   r"   r#   NetworkData   s   
Wr4   c                   @   sf   e Zd ZU eed< ed ed< ee ed< eee  ed< ee ed< ee ed< eed  ed	< d
S )Token.ListParamscardzToken.ListParamsCreated|intcreatedZending_beforeexpandlimitZstarting_afteractivedeleted	requested	suspendedstatusN)	r   r   r   r    r!   r   r
   r,   r   r"   r"   r"   r#   
ListParams   s   
r@   c                   @   s>   e Zd ZU ee ed< ee ed< ee ed< ee ed< dS )zToken.ListParamsCreatedgtZgteltZlteN)r   r   r   r   r,   r!   r"   r"   r"   r#   ListParamsCreated   s
   
rC   c                   @   s*   e Zd ZU eee  ed< ed ed< dS )Token.ModifyParamsr8   )r;   r<   r>   r?   N)r   r   r   r   r
   r    r!   r   r"   r"   r"   r#   ModifyParams   s   
rE   c                   @   s   e Zd ZU eee  ed< dS )Token.RetrieveParamsr8   N)r   r   r   r   r
   r    r!   r"   r"   r"   r#   RetrieveParams   s   
rG   r   r6   r7   r   idZlast4Zlivemoder1   networkZnetwork_dataZnetwork_updated_atobjectr:   r?   )Z	apple_payZ
google_payZsamsung_payr3   r5   )paramsreturnc                 K   s4   | j d|  |d}t|ts0tdt|j |S )C
        Lists all Issuing Token objects for a given card.
        getrK   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrorr   r   clsrK   resultr"   r"   r#   list5  s    
z
Token.listc                    s:   | j d|  |dI dH }t|ts6tdt|j |S )rM   rN   rO   NrP   )_static_request_asyncrR   rS   r   rT   r   r   rU   r"   r"   r#   
list_asyncG  s    
zToken.list_asyncrD   )rH   rK   rL   c                 K   s*   d|   t|f }td| jd||dS )`
        Attempts to update the specified Issuing Token object to the status specified.
        %s/%sr   postrO   )rR   r   r   rQ   rV   rH   rK   urlr"   r"   r#   modify[  s    zToken.modifyc                    s0   d|   t|f }td| jd||dI dH S )r[   r\   r   r]   rO   N)rR   r   r   rY   r^   r"   r"   r#   modify_asyncl  s    
zToken.modify_asyncrF   c                 K   s   | |fi |}|   |S )4
        Retrieves an Issuing Token object.
        )refreshrV   rH   rK   instancer"   r"   r#   retrieve}  s    zToken.retrievec                    s"   | |fi |}|  I dH  |S )rb   N)Zrefresh_asyncrd   r"   r"   r#   retrieve_async  s    zToken.retrieve_asyncN)r   r   r   __doc__r   r	   r   r!   r   r4   r   r@   r   rC   rE   rG   r   r,   r   r    boolclassmethodr   r   rX   rZ   r`   ra   rf   rg   r-   r"   r"   r"   r#   r      sZ   
 & 


r   N)Zstripe._expandable_fieldr   Zstripe._list_objectr   Zstripe._listable_api_resourcer   Zstripe._request_optionsr   Zstripe._stripe_objectr   Zstripe._updateable_api_resourcer   Zstripe._utilr   typingr	   r
   r   r   Ztyping_extensionsr   r   r   r   r   Zstripe.issuing._cardr   r   r"   r"   r"   r#   <module>   s   