o
    i.                     @   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://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                   @   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#   u/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/issuing/_token.pyDevice   s   
 r%   c                   @   s<   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   s   
 r*   c                   @   s8   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(   token_risk_scoreN)r   r   r    r!   r"   r
   r#   r#   r#   r$   VisaI   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line1postal_codeN)r   r   r    r!   r"   r#   r#   r#   r$   CardholderAddress\   s
   
 r/   
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   r/   r
   r!   r"   intr   r	   _inner_class_typesr#   r#   r#   r$   WalletProvider[   s@   
 
"r^   device
mastercardr`   visar   rb   wallet_provider)r_   r`   rb   rc   N)r   r   r    r   r%   r*   r,   r^   r
   r"   r   r]   r#   r#   r#   r$   NetworkData   s    
 W
rd   r   cardcreatedr   idlast4livemodera   networknetwork_datanetwork_updated_atobject)activedeleted	requested	suspendedstatus)	apple_pay
google_paysamsung_payrc   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rv   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrorr   r   clsrv   resultr#   r#   r$   list   s   
z
Token.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rx   ry   rz   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   postrz   )r}   r   r   r|   r   rg   rv   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   rz   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   rg   rv   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   rd   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   