o
    Bi7N                     @   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 d dlmZmZmZ G d	d
 d
eZdS )    )
ListObject)RequestOptions)StripeService)sanitize_id)FinancialAccount)FinancialAccountFeaturesService)DictListcast)LiteralNotRequired	TypedDictc                	       s@  e Zd Z fdd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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G d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZG d7d8 d8eZG d9d: d:eZ G d;d< d<eZ!G d=d> d>eZ"G d?d@ d@eZ#G dAdB dBeZ$G dCdD dDeZ%G dEdF dFeZ&G dGdH dHeZ'i i fdIdJdKe(dLe)e* fdMdNZ+i i fdIdJdKe(dLe)e* fdOdPZ,i fdIdQdKe(dLe*fdRdSZ-i fdIdQdKe(dLe*fdTdUZ.i i fdVe/dIdWdKe(dLe*fdXdYZ0i i fdVe/dIdWdKe(dLe*fdZd[Z1i i fdVe/dId\dKe(dLe*fd]d^Z2i i fdVe/dId\dKe(dLe*fd_d`Z3  Z4S )aFinancialAccountServicec                    s   t  | t| j| _d S )N)super__init__r   
_requestorfeatures)self	requestor	__class__ j/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/treasury/_financial_account_service.pyr      s   z FinancialAccountService.__init__c                   @   s^   e Zd ZU eee  ed< 	 ed ed< 	 eeeef  ed< 	 ed ed< 	 ee ed< dS )	$FinancialAccountService.CreateParamsexpand,FinancialAccountService.CreateParamsFeaturesr   metadata8FinancialAccountService.CreateParamsPlatformRestrictionsplatform_restrictionssupported_currenciesN__name__
__module____qualname__r   r	   str__annotations__r   r   r   r   r   CreateParams   s   
 r&   c                   @   n   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< 	 ed ed< dS )r   7FinancialAccountService.CreateParamsFeaturesCardIssuingcard_issuing<FinancialAccountService.CreateParamsFeaturesDepositInsurancedeposit_insurance>FinancialAccountService.CreateParamsFeaturesFinancialAddressesfinancial_addresses<FinancialAccountService.CreateParamsFeaturesInboundTransfersinbound_transfers<FinancialAccountService.CreateParamsFeaturesIntraStripeFlowsintra_stripe_flows<FinancialAccountService.CreateParamsFeaturesOutboundPaymentsoutbound_payments=FinancialAccountService.CreateParamsFeaturesOutboundTransfersoutbound_transfersNr!   r"   r#   r   r%   r   r   r   r   CreateParamsFeatures,   :   
 r7   c                   @      e Zd ZU eed< dS )r(   	requestedNr!   r"   r#   boolr%   r   r   r   r   CreateParamsFeaturesCardIssuingX      
 r=   c                   @   r9   )r*   r:   Nr;   r   r   r   r   $CreateParamsFeaturesDepositInsurance^   r>   r?   c                   @      e Zd ZU ed ed< dS )r,   AFinancialAccountService.CreateParamsFeaturesFinancialAddressesAbaabaNr6   r   r   r   r   &CreateParamsFeaturesFinancialAddressesd   
   
 rC   c                   @   r9   )rA   r:   Nr;   r   r   r   r   )CreateParamsFeaturesFinancialAddressesAbal   r>   rE   c                   @   r@   )r.   ?FinancialAccountService.CreateParamsFeaturesInboundTransfersAchachNr6   r   r   r   r   $CreateParamsFeaturesInboundTransfersr   rD   rH   c                   @   r9   )rF   r:   Nr;   r   r   r   r   'CreateParamsFeaturesInboundTransfersAchz   r>   rI   c                   @   r9   )r0   r:   Nr;   r   r   r   r   $CreateParamsFeaturesIntraStripeFlows   r>   rJ   c                   @   (   e Zd ZU ed ed< 	 ed ed< dS )r2   ?FinancialAccountService.CreateParamsFeaturesOutboundPaymentsAchrG   JFinancialAccountService.CreateParamsFeaturesOutboundPaymentsUsDomesticWireus_domestic_wireNr6   r   r   r   r   $CreateParamsFeaturesOutboundPayments      
 rO   c                   @   r9   )rL   r:   Nr;   r   r   r   r   'CreateParamsFeaturesOutboundPaymentsAch   r>   rQ   c                   @   r9   )rM   r:   Nr;   r   r   r   r   2CreateParamsFeaturesOutboundPaymentsUsDomesticWire   r>   rR   c                   @   rK   )r4   @FinancialAccountService.CreateParamsFeaturesOutboundTransfersAchrG   KFinancialAccountService.CreateParamsFeaturesOutboundTransfersUsDomesticWirerN   Nr6   r   r   r   r   %CreateParamsFeaturesOutboundTransfers   rP   rU   c                   @   r9   )rS   r:   Nr;   r   r   r   r   (CreateParamsFeaturesOutboundTransfersAch   r>   rV   c                   @   r9   )rT   r:   Nr;   r   r   r   r   3CreateParamsFeaturesOutboundTransfersUsDomesticWire   r>   rW   c                   @   0   e Zd ZU eed  ed< 	 eed  ed< dS )r   
restrictedunrestrictedinbound_flowsoutbound_flowsNr!   r"   r#   r   r   r%   r   r   r   r    CreateParamsPlatformRestrictions   
   
 r_   c                   @   sV   e Zd ZU ed ed< 	 ee ed< 	 eee  ed< 	 ee ed< 	 ee ed< dS )"FinancialAccountService.ListParamsz-FinancialAccountService.ListParamsCreated|intcreatedending_beforer   limitstarting_afterN)r!   r"   r#   r   r%   r$   r	   intr   r   r   r   
ListParams   s   
 rg   c                   @   sD   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )z)FinancialAccountService.ListParamsCreatedgtgteltlteN)r!   r"   r#   r   rf   r%   r   r   r   r   ListParamsCreated   s   
 rl   c                   @   s   e Zd ZU eee  ed< dS )&FinancialAccountService.RetrieveParamsr   N)r!   r"   r#   r   r	   r$   r%   r   r   r   r   RetrieveParams   s   
 rn   c                   @   sP   e Zd ZU eee  ed< 	 ed ed< 	 eeeef  ed< 	 ed ed< dS )$FinancialAccountService.UpdateParamsr   ,FinancialAccountService.UpdateParamsFeaturesr   r   8FinancialAccountService.UpdateParamsPlatformRestrictionsr   Nr    r   r   r   r   UpdateParams   s   
 rr   c                   @   r'   )rp   7FinancialAccountService.UpdateParamsFeaturesCardIssuingr)   <FinancialAccountService.UpdateParamsFeaturesDepositInsurancer+   >FinancialAccountService.UpdateParamsFeaturesFinancialAddressesr-   <FinancialAccountService.UpdateParamsFeaturesInboundTransfersr/   <FinancialAccountService.UpdateParamsFeaturesIntraStripeFlowsr1   <FinancialAccountService.UpdateParamsFeaturesOutboundPaymentsr3   =FinancialAccountService.UpdateParamsFeaturesOutboundTransfersr5   Nr6   r   r   r   r   UpdateParamsFeatures  r8   rz   c                   @   r9   )rs   r:   Nr;   r   r   r   r   UpdateParamsFeaturesCardIssuing2  r>   r{   c                   @   r9   )rt   r:   Nr;   r   r   r   r   $UpdateParamsFeaturesDepositInsurance8  r>   r|   c                   @   r@   )ru   AFinancialAccountService.UpdateParamsFeaturesFinancialAddressesAbarB   Nr6   r   r   r   r   &UpdateParamsFeaturesFinancialAddresses>  rD   r~   c                   @   r9   )r}   r:   Nr;   r   r   r   r   )UpdateParamsFeaturesFinancialAddressesAbaF  r>   r   c                   @   r@   )rv   ?FinancialAccountService.UpdateParamsFeaturesInboundTransfersAchrG   Nr6   r   r   r   r   $UpdateParamsFeaturesInboundTransfersL  rD   r   c                   @   r9   )r   r:   Nr;   r   r   r   r   'UpdateParamsFeaturesInboundTransfersAchT  r>   r   c                   @   r9   )rw   r:   Nr;   r   r   r   r   $UpdateParamsFeaturesIntraStripeFlowsZ  r>   r   c                   @   rK   )rx   ?FinancialAccountService.UpdateParamsFeaturesOutboundPaymentsAchrG   JFinancialAccountService.UpdateParamsFeaturesOutboundPaymentsUsDomesticWirerN   Nr6   r   r   r   r   $UpdateParamsFeaturesOutboundPayments`  rP   r   c                   @   r9   )r   r:   Nr;   r   r   r   r   'UpdateParamsFeaturesOutboundPaymentsAchn  r>   r   c                   @   r9   )r   r:   Nr;   r   r   r   r   2UpdateParamsFeaturesOutboundPaymentsUsDomesticWiret  r>   r   c                   @   rK   )ry   @FinancialAccountService.UpdateParamsFeaturesOutboundTransfersAchrG   KFinancialAccountService.UpdateParamsFeaturesOutboundTransfersUsDomesticWirerN   Nr6   r   r   r   r   %UpdateParamsFeaturesOutboundTransfersz  rP   r   c                   @   r9   )r   r:   Nr;   r   r   r   r   (UpdateParamsFeaturesOutboundTransfersAch  r>   r   c                   @   r9   )r   r:   Nr;   r   r   r   r   3UpdateParamsFeaturesOutboundTransfersUsDomesticWire  r>   r   c                   @   rX   )rq   rY   r\   r]   Nr^   r   r   r   r    UpdateParamsPlatformRestrictions  r`   r   paramsra   optionsreturnc              	   C   s   t tt | jddd||dS )6
        Returns a list of FinancialAccounts.
        get/v1/treasury/financial_accountsapibase_addressr   r   )r
   r   r   _requestr   r   r   r   r   r   list  s   zFinancialAccountService.listc              	      s&   t tt | jddd||dI dH S )r   r   r   r   r   N)r
   r   r   _request_asyncr   r   r   r   
list_async  s   
z"FinancialAccountService.list_asyncr   c              	   C   s   t t| jddd||dS )u
        Creates a new FinancialAccount. For now, each connected account can only have one FinancialAccount.
        postr   r   r   )r
   r   r   r   r   r   r   create  s   zFinancialAccountService.createc              	      s"   t t| jddd||dI dH S )r   r   r   r   r   N)r
   r   r   r   r   r   r   create_async  s   
z$FinancialAccountService.create_asyncfinancial_accountrm   c              	   C   &   t t| jddjt|dd||dS )>
        Retrieves the details of a FinancialAccount.
        r   3/v1/treasury/financial_accounts/{financial_account}r   r   r   r
   r   r   formatr   r   r   r   r   r   r   r   retrieve     	z FinancialAccountService.retrievec              	      .   t t| jddjt|dd||dI dH S )r   r   r   r   r   r   Nr
   r   r   r   r   r   r   r   r   retrieve_async      	
z&FinancialAccountService.retrieve_asyncro   c              	   C   r   )<
        Updates the details of a FinancialAccount.
        r   r   r   r   r   r   r   r   r   r   update  r   zFinancialAccountService.updatec              	      r   )r   r   r   r   r   r   Nr   r   r   r   r   update_async,  r   z$FinancialAccountService.update_async)5r!   r"   r#   r   r   r&   r7   r=   r?   rC   rE   rH   rI   rJ   rO   rQ   rR   rU   rV   rW   r_   rg   rl   rn   rr   rz   r{   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r   r   r   r   __classcell__r   r   r   r   r      s    ,
,






r   N)stripe._list_objectr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr   "stripe.treasury._financial_accountr   3stripe.treasury._financial_account_features_servicer   typingr   r	   r
   typing_extensionsr   r   r   r   r   r   r   r   <module>   s   