
    <@gG                         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 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rd dlmZ d dl m!Z!  G d ded   ed   ed         Z"y)    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)RequestOptions)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Customer)	TestClockc                      e Zd ZU dZdZeed      ed<    G d de      Z	 G d de      Z
 G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Ze	ed<   e
ed<   ed   ed<   	 eed <   	 ed!   ed"<   	 ee   ed#<   	 ee   ed$<   	 eed%<   	 eed&<   	 eeef   ed'<   	 ee   ed(<   	 ed   ed)<   	 eed*      ed+<   	 eed,<   	 ee   ed-<   	 ed.ed/   d0d fd1       Zed.ed/   d0d fd2       Z ed%ed.ed3   d0d fd4       Z!e"e#d%ed.ed3   d0d fd5              Z$e"d.ed3   d0d fd6       Z$ e%d7      d.ed3   d0d fd8       Z$ed%ed.ed3   d0d fd9       Z&e"e#d%ed.ed3   d0d fd:              Z'e"d.ed3   d0d fd;       Z' e%d<      d.ed3   d0d fd=       Z'ed.ed>   d0e(d    fd?       Z)ed.ed>   d0e(d    fd@       Z*ed%ed.edA   d0d fdB       Z+ed%ed.edA   d0d fdC       Z,ed%ed.edD   d0d fdE       Z-ed%ed.edD   d0d fdF       Z.ed%ed.edG   d0d fdH       Z/e"e#d%ed.edG   d0d fdI              Z0e"d.edG   d0d fdJ       Z0 e%dK      d.edG   d0d fdL       Z0ed%ed.edG   d0d fdM       Z1e"e#d%ed.edG   d0d fdN              Z2e"d.edG   d0d fdO       Z2 e%dP      d.edG   d0d fdQ       Z2e	e
dRZ3yS)TCreditGrantz
    A credit grant is an API resource that documents the allocation of some billing credits to a customer.

    Related guide: [Billing credits](https://docs.stripe.com/billing/subscriptions/usage-based/billing-credits)
    zbilling.credit_grantOBJECT_NAMEc                   P    e Zd ZU  G d de      Zee   ed<   	 ed   ed<   	 deiZy)CreditGrant.Amountc                   $    e Zd ZU eed<   	 eed<   y)CreditGrant.Amount.MonetarycurrencyvalueN__name__
__module____qualname__str__annotations__int     [/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant.pyMonetaryr   )   s    M Jr*   r,   monetarytypeN)	r#   r$   r%   r   r,   r   r'   r   _inner_class_typesr)   r*   r+   Amountr   (   s?    	| 	 8$$	 j!!	 )(3r*   r0   c                   6    e Zd ZU  G d de      Zeed<   deiZy)CreditGrant.ApplicabilityConfigc                       e Zd ZU ed   ed<   y)%CreditGrant.ApplicabilityConfig.Scopemetered
price_typeNr#   r$   r%   r   r'   r)   r*   r+   Scoper4   >   s    	**r*   r8   scopeN)r#   r$   r%   r   r8   r'   r/   r)   r*   r+   ApplicabilityConfigr2   =   s     	L 	 %u-r*   r:   c                       e Zd ZU ded<   	 ded<   	 ed   ed<   	 eed<   	 ee   ed<   	 eee      ed	<   	 ee   ed
<   	 ee	eef      ed<   	 ee   ed<   y)CreditGrant.CreateParamsCreditGrant.CreateParamsAmountamount+CreditGrant.CreateParamsApplicabilityConfigapplicability_configpaidpromotionalcategorycustomereffective_atexpand
expires_atmetadatanameN)
r#   r$   r%   r'   r   r&   r   r(   r   r   r)   r*   r+   CreateParamsr<   G   s    00	 LK	 /00	 	 "#&&	 DI&&	  $$	 d38n--	 #	r*   rK   c                   0    e Zd ZU ed   ed<   	 ed   ed<   y)r=   &CreditGrant.CreateParamsAmountMonetaryr-   r.   N)r#   r$   r%   r   r'   r   r)   r*   r+   CreateParamsAmountzCreditGrant.CreateParamsAmountm   s%    FGG	 j!!	r*   rN   c                   $    e Zd ZU eed<   	 eed<   y)rM   r    r!   Nr"   r)   r*   r+   CreateParamsAmountMonetaryz&CreditGrant.CreateParamsAmountMonetaryw   s    	 
	r*   rP   c                       e Zd ZU ded<   y)r?   0CreditGrant.CreateParamsApplicabilityConfigScoper9   N)r#   r$   r%   r'   r)   r*   r+   CreateParamsApplicabilityConfigz+CreditGrant.CreateParamsApplicabilityConfig   s    AA	r*   rS   c                       e Zd ZU ed   ed<   y)rR   r5   r6   Nr7   r)   r*   r+   $CreateParamsApplicabilityConfigScopez0CreditGrant.CreateParamsApplicabilityConfigScope   s    I&&	r*   rU   c                   $    e Zd ZU eee      ed<   y)CreditGrant.ExpireParamsrG   Nr#   r$   r%   r   r   r&   r'   r)   r*   r+   ExpireParamsrW          DI&&	r*   rY   c                   l    e Zd ZU ee   ed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   y)CreditGrant.ListParamsrE   ending_beforerG   limitstarting_afterN)r#   r$   r%   r   r&   r'   r   r(   r)   r*   r+   
ListParamsr\      s^    c""	 #3''	 DI&&	 3	 $C((	r*   r`   c                   R    e Zd ZU eee      ed<   	 ed   ed<   	 eeeef      ed<   y)CreditGrant.ModifyParamsrG   zLiteral['']|intrH   rI   N)r#   r$   r%   r   r   r&   r'   r   r)   r*   r+   ModifyParamsrb      sC    DI&&	   122	 d38n--	r*   rc   c                   $    e Zd ZU eee      ed<   y)CreditGrant.RetrieveParamsrG   NrX   r)   r*   r+   RetrieveParamsre      rZ   r*   rf   c                   $    e Zd ZU eee      ed<   y)CreditGrant.VoidGrantParamsrG   NrX   r)   r*   r+   VoidGrantParamsrh      rZ   r*   ri   r>   r@   rA   rD   createdr   rE   rF   rH   idlivemoderI   rJ   objectr   
test_clockupdated	voided_atparamsr<   returnc                 Z    t        d| j                  d| j                         |            S ))
        Creates a credit grant.
        r   postrq   )r   _static_request	class_urlclsrq   s     r+   createzCreditGrant.create   s6        
 	
r*   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)rt   r   ru   rv   N)r   _static_request_asyncrx   ry   s     r+   create_asynczCreditGrant.create_async
  sD      ++ ,  
 	
s   ,97
	9rW   c                 p    t        d| j                  ddj                  t        |            |            S ))
        Expires a credit grant.
        r   ru   %/v1/billing/credit_grants/{id}/expirerk   rv   r   rw   formatr   rz   rk   rq   s      r+   _cls_expirezCreditGrant._cls_expire  sI     7>>"2 ?     	
 		
r*   c                      yr   Nr)   rk   rq   s     r+   expirezCreditGrant.expire,       	r*   c                      yr   r)   selfrq   s     r+   r   zCreditGrant.expire6       	r*   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   ru   r   rk   r   rv   r   _requestr   r   getr   s     r+   r   zCreditGrant.expire?  sP     MM7>>"488D>2 ?    	
 		
r*   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   ru   r   r   rv   Nr   r}   r   r   r   s      r+   _cls_expire_asynczCreditGrant._cls_expire_asyncQ  sW      ++7>>"2 ?   ,  	
 		
   7AA
	Ac                    K   ywr   r)   r   s     r+   expire_asynczCreditGrant.expire_asyncc        	   c                    K   ywr   r)   r   s     r+   r   zCreditGrant.expire_asyncm        	r   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   ru   r   rk   r   rv   Nr   _request_asyncr   r   r   r   s     r+   r   zCreditGrant.expire_asyncv  s`      %%7>>"488D>2 ?   &  	
 		
   AAA
		Ar\   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )3
        Retrieve a list of credit grants.
        r   rv   %Expected list object from API, got %s)rw   rx   
isinstancer   	TypeErrorr.   r#   rz   rq   results      r+   listzCreditGrant.list  s]     $$MMO % 

 &*-7<((* 
 r*   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r   r   rv   Nr   )r}   rx   r   r   r   r.   r#   r   s      r+   
list_asynczCreditGrant.list_async  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"rb   c                 z    | j                         dt        |      }t        d| j                  d||            S ))
        Updates a credit grant.
        /r   ru   rv   )rx   r   r   rw   rz   rk   rq   urls       r+   modifyzCreditGrant.modify  sD     +b/:   
 	
r*   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r   ru   rv   N)rx   r   r   r}   r   s       r+   modify_asynczCreditGrant.modify_async  sR      +b/:++ ,  
 	
s   <A	A
	A	re   c                 8     | |fi |}|j                          |S )+
        Retrieves a credit grant.
        )refreshrz   rk   rq   instances       r+   retrievezCreditGrant.retrieve  s$     r$V$r*   c                 T   K    | |fi |}|j                          d{    |S 7 w)r   N)refresh_asyncr   s       r+   retrieve_asynczCreditGrant.retrieve_async  s3      r$V$$$&&& 	's   (&(rh   c                 p    t        d| j                  ddj                  t        |            |            S )'
        Voids a credit grant.
        r   ru   #/v1/billing/credit_grants/{id}/voidr   rv   r   r   s      r+   _cls_void_grantzCreditGrant._cls_void_grant  sI     5<<"2 =     	
 		
r*   c                      yr   Nr)   r   s     r+   
void_grantzCreditGrant.void_grant  r   r*   c                      yr   r)   r   s     r+   r   zCreditGrant.void_grant  r   r*   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   ru   r   rk   r   rv   r   r   s     r+   r   zCreditGrant.void_grant  sP     MM5<<"488D>2 =    	
 		
r*   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   ru   r   r   rv   Nr   r   s      r+   _cls_void_grant_asyncz!CreditGrant._cls_void_grant_async  sW      ++5<<"2 =   ,  	
 		
r   c                    K   ywr   r)   r   s     r+   void_grant_asynczCreditGrant.void_grant_async1  r   r   c                    K   ywr   r)   r   s     r+   r   zCreditGrant.void_grant_async;  r   r   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   ru   r   rk   r   rv   Nr   r   s     r+   r   zCreditGrant.void_grant_asyncD  s`      %%5<<"488D>2 =   &  	
 		
r   )r>   r@   N)4r#   r$   r%   __doc__r   r   r   r'   r   r0   r:   r   rK   r   rN   rP   rS   rU   rY   r`   rc   rf   ri   r(   r   r   r&   boolr   classmethodr   r{   r~   r   r   staticmethodr   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r)   r*   r+   r   r      s8   
 	 '"89: 4 4*.l .$~ $LY Y ) y ~ ^ ,~  .  N--+,, L j)) 3-  	G N 38n 3- *++ 566 L } 
89
	
 
 
89
	
 
 

 &'A B
	
 
" !"<=	   9:	  -(
9:
	
 )
" 

 &'A B
	
 
" !"<=	   9:	  -.
9:
	
 /
" 67	M	" & 67	M	" & 

 &'A B
	
 
  

 &'A B
	
 
   &'C D	   &'C D	  

 &'D E
	
 
" !"?@	   <=	  +,
<=
	
 -
" 

 &'D E
	
 
" !"?@	   <=	  12
<=
	
 3
$  3r*   r   N)#stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   stripe._updateable_api_resourcer	   stripe._utilr
   r   typingr   r   r   r   r   r   typing_extensionsr   r   r   r   r   stripe._customerr   stripe.test_helpers._test_clockr   r   r)   r*   r+   <module>r      s_    B 4 * = 2 . A : A A  )9@	-(&-(@	r*   