o
    Bi&                     @   sx   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)OutboundTransfer)DictListcast)LiteralNotRequired	TypedDictc                	   @   s\  e Z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	i fddde
dee fddZi fddde
dee fddZi fddde
defddZi fddde
defddZi i fdeddde
defddZi i fdeddde
defddZi i fdedd de
defd!d"Zi i fdedd de
defd#d$Zd%S )&OutboundTransferServicec                   @      e Zd ZU eee  ed< dS )$OutboundTransferService.CancelParamsexpandN__name__
__module____qualname__r   r   str__annotations__ r   r   j/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/treasury/_outbound_transfer_service.pyCancelParams      
 r   c                   @   s   e Zd ZU eed< 	 eed< 	 ee ed< 	 ee ed< 	 ed ed< 	 eee  ed< 	 eed< 	 eeeef  ed	< 	 ee ed
< dS )$OutboundTransferService.CreateParamsamountcurrencydescriptiondestination_payment_methodCOutboundTransferService.CreateParamsDestinationPaymentMethodOptions"destination_payment_method_optionsr   financial_accountmetadatastatement_descriptorN)	r   r   r   intr   r   r   r   r   r   r   r   r   CreateParams   s*   
 r&   c                   @   s   e Zd ZU ed ed< dS )r    z\Literal['']|OutboundTransferService.CreateParamsDestinationPaymentMethodOptionsUsBankAccountus_bank_accountN)r   r   r   r   r   r   r   r   r   +CreateParamsDestinationPaymentMethodOptions;   s
   
 r(   c                   @   s   e Zd ZU eed  ed< dS )zPOutboundTransferService.CreateParamsDestinationPaymentMethodOptionsUsBankAccount)achus_domestic_wirenetworkN)r   r   r   r   r
   r   r   r   r   r   8CreateParamsDestinationPaymentMethodOptionsUsBankAccountC   r   r,   c                   @   sd   e Zd ZU ee ed< 	 eee  ed< 	 eed< 	 ee ed< 	 ee ed< 	 eed  ed< dS )	"OutboundTransferService.ListParamsending_beforer   r"   limitstarting_after)canceledfailedposted
processingreturnedstatusN)	r   r   r   r   r   r   r   r%   r
   r   r   r   r   
ListParamsI   s   
 r7   c                   @   r   )&OutboundTransferService.RetrieveParamsr   Nr   r   r   r   r   RetrieveParamse   r   r9   paramsr-   optionsreturnc              	   C   s   t tt | jddd||dS )_
        Returns a list of OutboundTransfers sent from the specified FinancialAccount.
        get/v1/treasury/outbound_transfersapibase_addressr:   r;   )r	   r   r   _requestselfr:   r;   r   r   r   listk   s   zOutboundTransferService.listc              	      s&   t tt | jddd||dI dH S )r=   r>   r?   r@   rA   N)r	   r   r   _request_asyncrD   r   r   r   
list_async~   s   
z"OutboundTransferService.list_asyncr   c              	   C   s   t t| jddd||dS ).
        Creates an OutboundTransfer.
        postr?   r@   rA   )r	   r   rC   rD   r   r   r   create   s   zOutboundTransferService.createc              	      s"   t t| jddd||dI dH S )rI   rJ   r?   r@   rA   N)r	   r   rG   rD   r   r   r   create_async   s   
z$OutboundTransferService.create_asyncoutbound_transferr8   c              	   C   &   t t| jddjt|dd||dS )
        Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.
        r>   3/v1/treasury/outbound_transfers/{outbound_transfer}rM   r@   rA   r	   r   rC   formatr   rE   rM   r:   r;   r   r   r   retrieve      	z OutboundTransferService.retrievec              	      .   t t| jddjt|dd||dI dH S )rO   r>   rP   rQ   r@   rA   Nr	   r   rG   rS   r   rT   r   r   r   retrieve_async      	
z&OutboundTransferService.retrieve_asyncr   c              	   C   rN   )^
        An OutboundTransfer can be canceled if the funds have not yet been paid out.
        rJ   :/v1/treasury/outbound_transfers/{outbound_transfer}/cancelrQ   r@   rA   rR   rT   r   r   r   cancel   rV   zOutboundTransferService.cancelc              	      rW   )r[   rJ   r\   rQ   r@   rA   NrX   rT   r   r   r   cancel_async   rZ   z$OutboundTransferService.cancel_asyncN)r   r   r   r   r   r&   r(   r,   r7   r9   r   r   r   rF   rH   rK   rL   r   rU   rY   r]   r^   r   r   r   r   r      s    (	






r   N)stripe._list_objectr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr   "stripe.treasury._outbound_transferr   typingr   r   r	   typing_extensionsr
   r   r   r   r   r   r   r   <module>   s   