o
    iU                     @   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mZmZmZ d dlmZmZmZ erNd 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 )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)ClassVarDictOptionalcast)LiteralUnpackTYPE_CHECKING)DebitReversalCreateParams)DebitReversalListParams)DebitReversalRetrieveParams)Transactionc                   @   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
eed< 	 eed	< 	 eed
< 	 ee ed< 	 ee ed< 	 eed< 	 ee	 ed< 	 eed< 	 eeef ed< 	 ed ed< 	 ed ed< 	 eed< 	 ed ed< 	 e
ed< eed  ed< 	 eded dd fddZeded dd fdd Z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	e
d+Zd,S )-DebitReversalz
    You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.
    ztreasury.debit_reversalOBJECT_NAMEc                   @      e Zd ZU ee ed< dS )zDebitReversal.LinkedFlowsissuing_disputeN)__name__
__module____qualname__r	   str__annotations__ r   r   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/treasury/_debit_reversal.pyLinkedFlows$      
 r   c                   @   r   )zDebitReversal.StatusTransitionscompleted_atN)r   r   r   r	   intr   r   r   r   r   StatusTransitions*   r   r!   amountcreatedcurrencyfinancial_accounthosted_regulatory_receipt_urlidlinked_flowslivemodemetadata)achcardnetworkobjectreceived_debit)failed
processing	succeededstatusstatus_transitionsr   transactionparamsr   returnc                 K   s   t d| jd|  |dS )N
        Reverses a ReceivedDebit and creates a DebitReversal object.
        r   postr6   )r
   _static_request	class_urlclsr6   r   r   r   createj   s   zDebitReversal.createc                    s"   t d| jd|  |dI dH S )r8   r   r9   r:   N)r
   _static_request_asyncr<   r=   r   r   r   create_asyncz   s   
zDebitReversal.create_asyncr   c                 K   s4   | j d|  |d}t|tstdt|j |S )3
        Returns a list of DebitReversals.
        getr:   %Expected list object from API, got %s)r;   r<   
isinstancer   	TypeErrortyper   r>   r6   resultr   r   r   list   s   
zDebitReversal.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rB   rC   r:   NrD   )r@   r<   rE   r   rF   rG   r   rH   r   r   r   
list_async   s   
zDebitReversal.list_asyncr   c                 K   s   | |fi |}|   |S )3
        Retrieves a DebitReversal object.
        )refreshr>   r'   r6   instancer   r   r   retrieve   s   zDebitReversal.retrievec                    s$   | |fi |}|  I dH  |S )rL   N)refresh_asyncrN   r   r   r   retrieve_async   s   zDebitReversal.retrieve_async)r(   r4   N)r   r   r   __doc__r   r   r   r   r   r   r!   r    r   r	   boolr   r   classmethodr   r?   rA   r   rJ   rK   rP   rR   _inner_class_typesr   r   r   r   r      s   
 

r   N)stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   typingr   r   r	   r
   typing_extensionsr   r   r   4stripe.params.treasury._debit_reversal_create_paramsr   2stripe.params.treasury._debit_reversal_list_paramsr   6stripe.params.treasury._debit_reversal_retrieve_paramsr   stripe.treasury._transactionr   r   r   r   r   r   <module>   s    
