o
    rN)j!.                     @   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mZmZmZ d dlmZmZmZ erTd d	lmZ d d
lmZ d dlmZ d dlmZ G dd ded e	d ZdS )    )ExpandableField)
ListObject)ListableAPIResource)StripeObject)UpdateableAPIResource)sanitize_id)ClassVarListOptionalcast)LiteralUnpackTYPE_CHECKING)Card)TokenListParams)TokenModifyParams)TokenRetrieveParamsc                   @   s  e Zd ZU dZdZeed  ed< 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ded ded  fddZeded ded  fddZed
eded dd fddZed
eded dd fd d!Zed
eded" dd fd#d$Zed
eded" dd fd%d&Zde	iZd'S )(Tokena  
    An issuing token object is created when an issued card is added to a digital wallet. As a [card issuer](https://docs.stripe.com/issuing), you can [view and manage these tokens](https://docs.stripe.com/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                   @   sd   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namephone_number)otherphonewatchtypeN)__name__
__module____qualname__r
   str__annotations__r    r#   r#   v/var/www/html/finance.cargoinsureonline.com/_shared/backend-venv/lib/python3.10/site-packages/stripe/issuing/_token.pyDevice   s   
 r%   c                   @   <   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_idtoken_requestor_nameNr   r   r    r
   r!   r"   r#   r#   r#   r$   
Mastercard7      
 r,   c                   @   r&   )zToken.NetworkData.Visar'   r(   r)   token_risk_scoreNr+   r#   r#   r#   r$   VisaI   r-   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line1postal_codeN)r   r   r    r!   r"   r#   r#   r#   r$   CardholderAddress\   s
   
 r2   
account_idaccount_trust_score)appmanualon_filer   card_number_sourcecardholder_addresscardholder_namedevice_trust_scorehashed_account_email_address)account_card_too_newaccount_recently_changedaccount_too_newaccount_too_new_since_launchadditional_devicedata_expireddefer_id_v_decisiondevice_recently_lostgood_activity_historyhas_suspended_tokens	high_riskinactive_accountlong_account_tenurelow_account_scorelow_device_scorelow_phone_number_scorenetwork_service_erroroutside_home_territory provisioning_cardholder_mismatch+provisioning_device_and_cardholder_mismatchprovisioning_device_mismatch#same_device_no_prior_authentication+same_device_successful_prior_authenticationsoftware_updatesuspicious_activitytoo_many_different_cardholderstoo_many_recent_attemptstoo_many_recent_tokensreason_codes)approvedeclinerequire_authsuggested_decisionsuggested_decision_versionN)r   r   r    r   r2   r
   r!   r"   intr   r	   _inner_class_typesr#   r#   r#   r$   WalletProvider[   s@   
 
"ra   device
mastercardrc   visar   re   wallet_provider)rb   rc   re   rf   N)r   r   r    r   r%   r,   r/   ra   r
   r"   r   r`   r#   r#   r#   r$   NetworkData   s    
 W
rg   r   cardcreatedr   idlast4livemoderd   networknetwork_datanetwork_updated_atobject)activedeleted	requested	suspendedstatus)	apple_pay
google_paysamsung_payrf   paramsr   returnc                 K   s4   | j d|  |d}t|tstdt|j |S )C
        Lists all Issuing Token objects for a given card.
        getry   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrorr   r   clsry   resultr#   r#   r$   list   s   
z
Token.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r{   r|   r}   Nr~   )_static_request_asyncr   r   r   r   r   r   r   r#   r#   r$   
list_async  s   
zToken.list_asyncr   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   postr}   )r   r   r   r   r   rj   ry   urlr#   r#   r$   modify  s   zToken.modifyc                    s2   d|   t|f }td| jd||dI dH S )r   r   r   r   r}   N)r   r   r   r   r   r#   r#   r$   modify_async&  s   
zToken.modify_asyncr   c                 K   s   | |fi |}|   |S )4
        Retrieves an Issuing Token object.
        )refreshr   rj   ry   instancer#   r#   r$   retrieve7  s   zToken.retrievec                    s$   | |fi |}|  I dH  |S )r   N)refresh_asyncr   r#   r#   r$   retrieve_asyncB  s   zToken.retrieve_asyncN)r   r   r    __doc__r   r   r   r"   r   rg   r   r_   r
   r!   boolclassmethodr   r   r   r   r   r   r   r   r`   r#   r#   r#   r$   r      s   
  &

r   N)stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr   typingr   r	   r
   r   typing_extensionsr   r   r   stripe.issuing._cardr   (stripe.params.issuing._token_list_paramsr   *stripe.params.issuing._token_modify_paramsr   ,stripe.params.issuing._token_retrieve_paramsr   r   r#   r#   r#   r$   <module>   s   