a
    !f"3                     @   s   d dl mZ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 d dlmZ erd d	lmZ G d
d ded ed ZdS )    )ListableAPIResourceUpdateableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)
quote_plus)Cardc                   @   sf  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d*ee ee e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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                   @   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/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/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#   
Mastercard;   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#   VisaM   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                   @   s^   e Zd ZU eed< ed ed< ed ed< ed ed< ed ed	< ed ed
< ed ed< dS )Token.ListParamscardzToken.ListParamsCreated|intcreatedr    Zending_before	List[str]expandr,   limitZstarting_afterz6Literal['active', 'deleted', 'requested', 'suspended']statusN)r   r   r   r    r!   r   r"   r"   r"   r#   
ListParams   s   
r<   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )zToken.ListParamsCreatedr,   gtZgteltZlteNr   r   r   r   r!   r"   r"   r"   r#   ListParamsCreated   s
   
r@   c                   @   s&   e Zd ZU ed ed< ed ed< dS )Token.ModifyParamsr8   r9   )activedeleted	suspendedr;   N)r   r   r   r   r!   r   r"   r"   r"   r#   ModifyParams   s   
rE   c                   @   s   e Zd ZU ed ed< dS )Token.RetrieveParamsr8   r9   Nr?   r"   r"   r"   r#   RetrieveParams  s   
rG   r   r6   r7   r   idZlast4Zlivemoder1   networkZnetwork_dataZnetwork_updated_atobject)rB   rC   	requestedrD   r;   )Z	apple_payZ
google_payZsamsung_payr3   Nr5   )api_keystripe_versionstripe_accountparamsreturnc                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )zC
        Lists all Issuing Token objects for a given card.
        get)rL   rM   rN   rO   z%Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrorr   r   )clsrL   rM   rN   rO   resultr"   r"   r#   list7  s    
z
Token.listrA   )rH   rO   rP   c                 K   s*   d|   t|f }td| jd||dS )z`
        Attempts to update the specified Issuing Token object to the status specified.
        z%s/%sr   post)rO   )rS   r   r   rR   )rV   rH   rO   urlr"   r"   r#   modifyU  s
    zToken.modifyrF   c                 K   s   | |fi |}|   |S )z4
        Retrieves an Issuing Token object.
        )refresh)rV   rH   rO   instancer"   r"   r#   retrieveb  s    zToken.retrieve)NNN)r   r   r   __doc__r   r   r   r!   r   r4   r   r<   r   r@   rE   rG   r   r,   r
   r    boolclassmethodr   r   rX   r[   r^   r-   r"   r"   r"   r#   r      sX   
 & 
   
r   N)Zstripe.api_resources.abstractr   r   Z%stripe.api_resources.expandable_fieldr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   typingr   r	   r
   r   Ztyping_extensionsr   r   r   r   r   urllib.parser   Z!stripe.api_resources.issuing.cardr   r   r"   r"   r"   r#   <module>   s   