a
    !fM                     @   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mZmZ d d	lmZmZmZmZmZ erd 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 ZdS )    )util)ListableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)class_method_variant)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Account)Customer)AccountOwner)AccountOwnershipc                
   @   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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e	 ed< ee
 ed< ee ed< ed ed< eed< ee ed< eed< eed < ee ed!< eed"< ed ed#< eed$  ed%< ee ed&< eeed'   ed(< ed) ed*< ed+ ed,< eed-  ed.< edTeee ee ee ed0 d d1d2d3ZeedUeee ee ee ed0 d d1d4d5Z edVee ed0 d d6d7d5Z e!d8dWee ed0 d d6d9d5Z edXee ee ee ed: e"d  d;d<d=Z#edYeee ee ee ed> e"d? d1d@dAZ$eedZeee ee ee ed> e"d? d1dBdCZ%ed[ee ed> e"d? d6dDdCZ%e!dEd\ee ed> e"d? d6dFdCZ%ed]eee ee ee edG d d1dHdIZ&eed^eee ee ee edG d d1dJdKZ'ed_ee edG d d6dLdKZ'e!dMd`ee edG d d6dNdKZ'eeedO d dPdQdRZ(e	e
eedSZ)d/S )ar   z
    A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.
    zfinancial_connections.accountOBJECT_NAMEc                   @   s:   e Zd ZU eed  ed< eed  ed< ed ed< dS )zAccount.AccountHolderAccountResourceaccountr   customer)r   r   typeN)__name__
__module____qualname__r   r   __annotations__r    r!   r!   s/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/financial_connections/account.pyAccountHolder'   s   
r#   c                   @   st   e Zd ZU G dd deZG dd deZeed< ee ed< ee ed< e	e
ef ed< ed	 ed
< eed	ZdS )zAccount.Balancec                   @   s"   e Zd ZU eeeef  ed< dS )zAccount.Balance.Cash	availableNr   r   r   r   r
   strintr    r!   r!   r!   r"   Cash6   s   
r(   c                   @   s"   e Zd ZU eeeef  ed< dS )zAccount.Balance.CreditusedNr%   r!   r!   r!   r"   Credit@   s   
r*   Zas_ofcashcreditcurrent)r+   r,   r   N)r   r   r   r   r(   r*   r'   r    r   r
   r&   r   _inner_class_typesr!   r!   r!   r"   Balance5   s   


r/   c                   @   s"   e Zd ZU eed< ed ed< dS )zAccount.BalanceRefreshlast_attempted_atfailedpendingZ	succeededstatusNr   r   r   r'   r    r   r!   r!   r!   r"   BalanceRefresh^   s   
r6   c                   @   s"   e Zd ZU eed< ed ed< dS )zAccount.OwnershipRefreshr0   r1   r4   Nr5   r!   r!   r!   r"   OwnershipRefreshh   s   
r7   c                   @   s   e Zd ZU ed ed< dS )Account.DisconnectParams	List[str]expandNr   r   r   r   r    r!   r!   r!   r"   DisconnectParamsr   s   
r<   c                   @   sV   e Zd ZU 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 )Account.ListParamsAccount.ListParamsAccountHolderaccount_holderr&   ending_beforer9   r:   r'   limitsessionstarting_afterNr;   r!   r!   r!   r"   
ListParamsx   s   
rD   c                   @   s&   e Zd ZU ed ed< ed ed< dS )r>   r&   r   r   Nr;   r!   r!   r!   r"   ListParamsAccountHolder   s   
rE   c                   @   sF   e Zd ZU ed ed< ed ed< ed ed< eed< ed ed< d	S )
Account.ListOwnersParamsr&   r@   r9   r:   r'   rA   	ownershiprC   N)r   r   r   r   r    r&   r!   r!   r!   r"   ListOwnersParams   s   
rH   c                   @   s*   e Zd ZU ed ed< eed  ed< dS )Account.RefreshAccountParamsr9   r:   )balancerG   featuresN)r   r   r   r   r    r   r   r!   r!   r!   r"   RefreshAccountParams   s   
rL   c                   @   s   e Zd ZU ed ed< dS )Account.RetrieveParamsr9   r:   Nr;   r!   r!   r!   r"   RetrieveParams   s   
rN   r?   rJ   balance_refresh)r+   r,   Z
investmentothercategorycreatedZdisplay_nameidZinstitution_nameZlast4Zlivemodeobjectr   rG   ownership_refresh)ZbalancesrG   Zpayment_methodZtransactionsZpermissions)activedisconnectedZinactiver4   )Zcheckingcredit_cardZline_of_creditZmortgagerP   ZsavingsZsubcategory)linkZus_bank_accountZsupported_payment_method_typesNr8   )r   api_keystripe_versionstripe_accountparamsreturnc              
   K   s*   t d| jddjt|d||||dS )
        Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).
        r   post7/v1/financial_connections/accounts/{account}/disconnectr   rZ   r[   r\   r]   r   _static_requestformatr   sanitize_idclsr   rZ   r[   r\   r]   r!   r!   r"   _cls_disconnect  s    zAccount._cls_disconnectc                 K   s   dS r_   Nr!   r   rZ   r[   r\   r]   r!   r!   r"   
disconnect;  s    zAccount.disconnect)idempotency_keyr]   r^   c                 K   s   dS rk   r!   selfrn   r]   r!   r!   r"   rm   K  s    rj   c              
   K   s,   t d| jddjt| dd||dS )r_   r   r`   ra   rS   rb   rn   r]   r   _requestrf   r   rg   getro   r!   r!   r"   rm   X  s    r=   )rZ   r[   r\   r]   r^   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )zJ
        Returns a list of Financial Connections Account objects.
        rt   rc   z%Expected list object from API, got %s)re   Z	class_url
isinstancer   	TypeErrorr   r   )ri   rZ   r[   r\   r]   resultr!   r!   r"   listo  s    
zAccount.listrF   r   c              
   K   s.   t td | jddjt|d||||dS )6
        Lists all owners for a given Account
        r   rt   3/v1/financial_connections/accounts/{account}/ownersrb   rc   )r   r   re   rf   r   rg   rh   r!   r!   r"   _cls_list_owners  s    zAccount._cls_list_ownersc                 K   s   dS ry   Nr!   rl   r!   r!   r"   list_owners  s    zAccount.list_ownersc                 K   s   dS r|   r!   ro   r!   r!   r"   r}     s    r{   c              
   K   s0   t td | jddjt| dd||dS )ry   r   rt   rz   rS   rb   rq   )r   r   rs   rf   r   rg   rt   ro   r!   r!   r"   r}     s    rI   c              
   K   s*   t d| jddjt|d||||dS )U
        Refreshes the data associated with a Financial Connections Account.
        r   r`   4/v1/financial_connections/accounts/{account}/refreshrb   rc   rd   rh   r!   r!   r"   _cls_refresh_account  s    zAccount._cls_refresh_accountc                 K   s   dS r~   Nr!   rl   r!   r!   r"   refresh_account  s    zAccount.refresh_accountc                 K   s   dS r   r!   ro   r!   r!   r"   r   	  s    r   c              
   K   s,   t d| jddjt| dd||dS )r~   r   r`   r   rS   rb   rq   rr   ro   r!   r!   r"   r     s    rM   )rS   r]   r^   c                 K   s   | |fi |}|   |S )zL
        Retrieves the details of an Financial Connections Account.
        )refresh)ri   rS   r]   instancer!   r!   r"   retrieve-  s    zAccount.retrieve)r?   rJ   rO   rU   )NNN)NNN)N)N)NNN)NNN)NNN)N)N)NNN)NNN)N)N)*r   r   r   __doc__r   r	   r   r    r   r#   r/   r6   r7   r   r<   rD   r   rE   rH   rL   rN   r   r'   r&   boolr   r   classmethodr   rj   r   staticmethodrm   r   r   rx   r{   r}   r   r   r   r.   r!   r!   r!   r"   r      s  
)



                           r   N)$Zstriper   Zstripe.api_resources.abstractr   Z%stripe.api_resources.expandable_fieldr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   Zstripe.utilr   typingr	   r
   r   r   r   r   Ztyping_extensionsr   r   r   r   r   Zstripe.api_resources.accountr   r   Zstripe.api_resources.customerr   Z8stripe.api_resources.financial_connections.account_ownerr   Z<stripe.api_resources.financial_connections.account_ownershipr   r!   r!   r!   r"   <module>   s    