
    +h                         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mZ d dlmZmZmZmZ erd dlmZ  G d	 d
ed
   ed
         Zy)    )CreateableAPIResourceListableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)ClassVarDictListOptionalcast)LiteralNotRequiredUnpackTYPE_CHECKING)Transactionc                   &   e Zd ZU dZdZeed      ed<    G d de      Z	e
r! G d de      Z G d d	e      Z G d
 de      Zeed<   	 eed<   	 eed<   	 eed<   	 ee   ed<   	 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*dee   dee   d ee   d!ee   d"ed#   d$d fd%       Ze	 	 	 d+dee   d ee   d!ee   d"ed&   d$ed    f
d'       Zeded"ed(   d$d fd)       Zde	iZy),CreditReversalz
    You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal.
    ztreasury.credit_reversalOBJECT_NAMEc                       e Zd ZU ee   ed<   y) CreditReversal.StatusTransitions	posted_atN)__name__
__module____qualname__r   int__annotations__     `/var/www/html/venv/lib/python3.12/site-packages/stripe/api_resources/treasury/credit_reversal.pyStatusTransitionsr      s    C= 	r   r!   c                   <    e Zd ZU ed   ed<   	 ed   ed<   	 eed<   y)CreditReversal.CreateParams	List[str]expandzDict[str, str]metadatareceived_creditNr   r   r   r   r   strr   r   r    CreateParamsr#   &   s2    ,, ""233 ! r   r*   c                       e Zd ZU ed   ed<   	 ed   ed<   	 eed<   	 ed   ed<   	 ed   ed<   	 ed   ed	<   	 ed
   ed<   y)CreditReversal.ListParamsr)   ending_beforer$   r%   financial_accountr   limitr'   starting_afterz+Literal['canceled', 'posted', 'processing']statusNr(   r   r   r    
ListParamsr,   4   sz    &u--  ,,  #" u%% )// (..   MNNr   r2   c                       e Zd ZU ed   ed<   y)CreditReversal.RetrieveParamsr$   r%   N)r   r   r   r   r   r   r   r    RetrieveParamsr4   R   s    ,,r   r5   amountcreatedcurrencyr.   hosted_regulatory_receipt_urlidlivemoder&   )achstripenetworkobjectr'   )canceledposted
processingr1   status_transitionsr   transactionNapi_keyidempotency_keystripe_versionstripe_accountparamsr#   returnc                 `    t        d| j                  d| j                         |||||            S )zP
        Reverses a ReceivedCredit and creates a CreditReversal object.
        r   post)r   _static_request	class_url)clsrE   rF   rG   rH   rI   s         r    createzCreditReversal.create   s=     
 	
r   r,   c                     | j                  d| j                         ||||      }t        |t              s!t	        dt        |      j                  z        |S )z4
        Returns a list of CreditReversals.
        get)rE   rG   rH   rI   z%Expected list object from API, got %s)rM   rN   
isinstancer   	TypeErrortyper   )rO   rE   rG   rH   rI   results         r    listzCreditReversal.list   sf     $$MMO)) % 
 &*-7<((* 
 r   r4   c                 8     | |fi |}|j                          |S )z
        Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list
        )refresh)rO   r:   rI   instances       r    retrievezCreditReversal.retrieve   s$     r$V$r   )NNNN)NNN)r   r   r   __doc__r   r	   r   r   r   r!   r   r   r*   r2   r5   r   r)   r   boolr
   r   classmethodr   rP   r   rW   r[   _inner_class_typesr   r   r    r   r      sE    	# *+ #L  	> 		 	<	^ 	 K L M  $,C=0 	G N 38n _%% .//  677 *)/-899  "&)-(,(,
#
 "#
 !	

 !
 67
 

 
0  "&(,(,	# ! !	
 45 
$	% 6  &'F G	  /0ABr   r   N)stripe.api_resources.abstractr   r   %stripe.api_resources.expandable_fieldr    stripe.api_resources.list_objectr   stripe.request_optionsr   stripe.stripe_objectr   typingr	   r
   r   r   r   typing_extensionsr   r   r   r   )stripe.api_resources.treasury.transactionr   r   r   r   r    <module>rh      sK    B 7 1 - 7 7 I IE|C*+()|Cr   