
    ChSM                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJr  S S	KJrJrJrJrJrJr  S S
KJrJrJrJrJr  \(       a  S SKJr  S SK J!r!   " S S\S   \S   \S   5      r"g)    )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                   "   \ rS rSr% SrSr\\S      \S'    " S S\	5      r
 " S S\	5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\
\S'   \\S '   \S!   \S"'    \\S#'    \S$   \S%'    \\   \S&'    \\   \S''    \\S('    \\S)'    \\\4   \S*'    \\   \S+'    \S   \S,'    \\   \S-'    \\S.      \S/'    \\S0'    \\   \S1'    \S2\ S3   S4S 4S5 j5       r!\S2\ S3   S4S 4S6 j5       r"\S(\S2\ S7   S4S 4S8 j5       r#\$\%S(\S2\ S7   S4S 4S9 j5       5       r&\$S2\ S7   S4S 4S: j5       r&\'" S;5      S2\ S7   S4S 4S< j5       r&\S(\S2\ S7   S4S 4S= j5       r(\$\%S(\S2\ S7   S4S 4S> j5       5       r)\$S2\ S7   S4S 4S? j5       r)\'" S@5      S2\ S7   S4S 4SA j5       r)\S2\ SB   S4\*S    4SC j5       r+\S2\ SB   S4\*S    4SD j5       r,\S(\S2\ SE   S4S 4SF j5       r-\S(\S2\ SE   S4S 4SG j5       r.\S(\S2\ SH   S4S 4SI j5       r/\S(\S2\ SH   S4S 4SJ j5       r0\S(\S2\ SK   S4S 4SL j5       r1\$\%S(\S2\ SK   S4S 4SM j5       5       r2\$S2\ SK   S4S 4SN j5       r2\'" SO5      S2\ SK   S4S 4SP j5       r2\S(\S2\ SK   S4S 4SQ j5       r3\$\%S(\S2\ SK   S4S 4SR j5       5       r4\$S2\ SK   S4S 4SS j5       r4\'" ST5      S2\ SK   S4S 4SU j5       r4\
\SV.r5SWr6gX)YCreditGrant   z
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                   X    \ rS rSr%  " S S\5      r\\   \S'    \S   \S'    S\0r	Sr
g)CreditGrant.Amount(   c                   ,    \ rS rSr% \\S'    \\S'   Srg)CreditGrant.Amount.Monetary)   currencyvalue N__name__
__module____qualname____firstlineno__str__annotations__int__static_attributes__r%       _/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/billing/_credit_grant.pyMonetaryr!   )   s    M Jr/   r1   monetarytyper%   N)r'   r(   r)   r*   r   r1   r   r,   r   _inner_class_typesr.   r%   r/   r0   Amountr   (   s?    	| 	 8$$	 j!!	 )(3r/   r5   c                   >    \ rS rSr%  " S S\5      r\\S'   S\0rSrg)CreditGrant.ApplicabilityConfig=   c                   d    \ rS rSr%  " S S\5      r\\S      \S'    \\	\      \S'    S\0r
Srg)	%CreditGrant.ApplicabilityConfig.Scope>   c                   &    \ rS rSr% \\   \S'   Srg)+CreditGrant.ApplicabilityConfig.Scope.Price?   idr%   N)r'   r(   r)   r*   r   r+   r,   r.   r%   r/   r0   Pricer=   ?   s    SM!r/   r@   metered
price_typepricesr%   N)r'   r(   r)   r*   r   r@   r   r   r,   r   r4   r.   r%   r/   r0   Scoper:   >   sH      !!344 T%[)) #+E!2r/   rD   scoper%   N)	r'   r(   r)   r*   r   rD   r,   r4   r.   r%   r/   r0   ApplicabilityConfigr7   =   s     	3L 	3" %u-r/   rF   c                       \ rS rSr% S\S'    S\S'    \S   \S'    \\S'    \\   \S	'    \\	\      \S
'    \\   \S'    \\
\\4      \S'    \\   \S'    \\   \S'   Srg)CreditGrant.CreateParamsR   CreditGrant.CreateParamsAmountamount+CreditGrant.CreateParamsApplicabilityConfigapplicability_configpaidpromotionalcategorycustomereffective_atexpand
expires_atmetadatanamepriorityr%   N)r'   r(   r)   r*   r,   r   r+   r   r-   r   r   r.   r%   r/   r0   CreateParamsrH   R   s    00	 LK	 /00	 	 "#&&	 DI&&	  $$	 d38n--	 #	 c""	r/   rY   c                   8    \ rS rSr% \S   \S'    \S   \S'   Srg)rJ   |   &CreditGrant.CreateParamsAmountMonetaryr2   r3   r%   N)r'   r(   r)   r*   r   r,   r   r.   r%   r/   r0   CreateParamsAmountCreditGrant.CreateParamsAmount|   s%    FGG	 j!!	r/   r]   c                   ,    \ rS rSr% \\S'    \\S'   Srg)r\      r#   r$   r%   Nr&   r%   r/   r0   CreateParamsAmountMonetary&CreditGrant.CreateParamsAmountMonetary   s    	 
	r/   ra   c                        \ rS rSr% S\S'   Srg)rL      0CreditGrant.CreateParamsApplicabilityConfigScoperE   r%   N)r'   r(   r)   r*   r,   r.   r%   r/   r0   CreateParamsApplicabilityConfig+CreditGrant.CreateParamsApplicabilityConfig   s    AA	r/   rf   c                   D    \ rS rSr% \\S      \S'    \\S      \S'   Srg)re      rA   rB   5CreditGrant.CreateParamsApplicabilityConfigScopePricerC   r%   N)	r'   r(   r)   r*   r   r   r,   r   r.   r%   r/   r0   $CreateParamsApplicabilityConfigScope0CreditGrant.CreateParamsApplicabilityConfigScope   s4    	 233	 HI
 	
	r/   rk   c                        \ rS rSr% \\S'   Srg)rj      r?   r%   N)r'   r(   r)   r*   r+   r,   r.   r%   r/   r0   )CreateParamsApplicabilityConfigScopePrice5CreditGrant.CreateParamsApplicabilityConfigScopePrice   s    	r/   ro   c                   ,    \ rS rSr% \\\      \S'   Srg)CreditGrant.ExpireParams   rT   r%   N	r'   r(   r)   r*   r   r   r+   r,   r.   r%   r/   r0   ExpireParamsrr          DI&&	r/   ru   c                   t    \ rS rSr% \\   \S'    \\   \S'    \\\      \S'    \\   \S'    \\   \S'   Sr	g)	CreditGrant.ListParams   rR   ending_beforerT   limitstarting_afterr%   N)
r'   r(   r)   r*   r   r+   r,   r   r-   r.   r%   r/   r0   
ListParamsrx      s^    c""	 #3''	 DI&&	 3	 $C((	r/   r}   c                   Z    \ rS rSr% \\\      \S'    \S   \S'    \\\\4      \S'   Sr	g)CreditGrant.ModifyParams   rT   zLiteral['']|intrU   rV   r%   N)
r'   r(   r)   r*   r   r   r+   r,   r   r.   r%   r/   r0   ModifyParamsr      sC    DI&&	   122	 d38n--	r/   r   c                   ,    \ rS rSr% \\\      \S'   Srg)CreditGrant.RetrieveParams   rT   r%   Nrt   r%   r/   r0   RetrieveParamsr      rv   r/   r   c                   ,    \ rS rSr% \\\      \S'   Srg)CreditGrant.VoidGrantParams   rT   r%   Nrt   r%   r/   r0   VoidGrantParamsr      rv   r/   r   rK   rM   rN   rQ   createdr   rR   rS   rU   r?   livemoderV   rW   objectrX   r   
test_clockupdated	voided_atparamsrH   returnc           	      T    [        SU R                  SU R                  5       US95      $ )
Creates a credit grant.
r   postr   )r   _static_request	class_urlclsr   s     r0   createCreditGrant.create  s6        
 	
r/   c           	      p   #    [        SU R                  SU R                  5       US9I Sh  vN 5      $  N7f)r   r   r   r   N)r   _static_request_asyncr   r   s     r0   create_asyncCreditGrant.create_async)  sC      ++ ,  
 	
s   )64
	6rr   c                 d    [        SU R                  SSR                  [        U5      S9US95      $ )
Expires a credit grant.
r   r   %/v1/billing/credit_grants/{id}/expirer?   r   r   r   formatr   r   r?   r   s      r0   _cls_expireCreditGrant._cls_expire9  sI     7>>"2 ?     	
 		
r/   c                     gr   Nr%   r?   r   s     r0   expireCreditGrant.expireK       	r/   c                     gr   r%   selfr   s     r0   r   r   U       	r/   r   c                     [        SU R                  SSR                  [        U R	                  S5      5      S9US95      $ )r   r   r   r   r?   r   r   r   _requestr   r   getr   s     r0   r   r   ^  sP     MM7>>"488D>2 ?    	
 		
r/   c                    #    [        SU R                  SSR                  [        U5      S9US9I Sh  vN 5      $  N7f)r   r   r   r   r   r   Nr   r   r   r   r   s      r0   _cls_expire_asyncCreditGrant._cls_expire_asyncp  sV      ++7>>"2 ?   ,  	
 		
   1><
	>c                    #    g7fr   r%   r   s     r0   expire_asyncCreditGrant.expire_async  
      	   c                    #    g7fr   r%   r   s     r0   r   r     
      	r   r   c                    #    [        SU R                  SSR                  [        U R	                  S5      5      S9US9I Sh  vN 5      $  N7f)r   r   r   r   r?   r   r   Nr   _request_asyncr   r   r   r   s     r0   r   r     s_      %%7>>"488D>2 ?   &  	
 		
   A AA
	Arx   c                     U R                  SU R                  5       US9n[        U[        5      (       d!  [	        S[        U5      R                  -  5      eU$ )#
Retrieve a list of credit grants.
r   r   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorr3   r'   r   r   results      r0   listCreditGrant.list  s`     $$MMO % 

 &*--7<((* 
 r/   c                    #    U R                  SU R                  5       US9I Sh  vN n[        U[        5      (       d!  [	        S[        U5      R                  -  5      eU$  N<7f)r   r   r   Nr   )r   r   r   r   r   r3   r'   r   s      r0   
list_asyncCreditGrant.list_async  sm      00MMO 1 
 

 &*--7<((* 
 
s   #A$A"=A$r   c           	      x    U R                  5       < S[        U5      < 3n[        SU R                  SUUS95      $ )
Updates a credit grant.
/r   r   r   )r   r   r   r   r   r?   r   urls       r0   modifyCreditGrant.modify  sD     +b/:   
 	
r/   c           	         #    U R                  5       < S[        U5      < 3n[        SU R                  SUUS9I Sh  vN 5      $  N7f)r   r   r   r   r   N)r   r   r   r   r   s       r0   modify_asyncCreditGrant.modify_async  sQ      +b/:++ ,  
 	
s   ;AA
	Ar   c                 8    U " U40 UD6nUR                  5         U$ )
Retrieves a credit grant.
)refreshr   r?   r   instances       r0   retrieveCreditGrant.retrieve  s$     r$V$r/   c                 T   #    U " U40 UD6nUR                  5       I Sh  vN   U$  N7f)r   N)refresh_asyncr   s       r0   retrieve_asyncCreditGrant.retrieve_async  s2      r$V$$$&&& 	's   (&(r   c                 d    [        SU R                  SSR                  [        U5      S9US95      $ )
Voids a credit grant.
r   r   #/v1/billing/credit_grants/{id}/voidr   r   r   r   s      r0   _cls_void_grantCreditGrant._cls_void_grant  sI     5<<"2 =     	
 		
r/   c                     gr   Nr%   r   s     r0   
void_grantCreditGrant.void_grant  r   r/   c                     gr   r%   r   s     r0   r   r   #  r   r/   r   c                     [        SU R                  SSR                  [        U R	                  S5      5      S9US95      $ )r   r   r   r   r?   r   r   r   r   s     r0   r   r   ,  sP     MM5<<"488D>2 =    	
 		
r/   c                    #    [        SU R                  SSR                  [        U5      S9US9I Sh  vN 5      $  N7f)r   r   r   r   r   r   Nr   r   s      r0   _cls_void_grant_async!CreditGrant._cls_void_grant_async>  sV      ++5<<"2 =   ,  	
 		
r   c                    #    g7fr   r%   r   s     r0   void_grant_asyncCreditGrant.void_grant_asyncP  r   r   c                    #    g7fr   r%   r   s     r0   r   r   Z  r   r   r   c                    #    [        SU R                  SSR                  [        U R	                  S5      5      S9US9I Sh  vN 5      $  N7f)r   r   r   r   r?   r   r   Nr   r   s     r0   r   r   c  s_      %%5<<"488D>2 =   &  	
 		
r   )rK   rM   r%   N)7r'   r(   r)   r*   __doc__r   r   r   r,   r   r5   rF   r   rY   r   r]   ra   rf   rk   ro   ru   r}   r   r   r   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   r4   r.   r%   r/   r0   r   r      sU   
 	 '"89: 4 4*.l .*(~ (TY Y ) 
y 
I ~ ^ ,~  .  N--+,, L j)) 3-  	G N 38n 3- *++ sm 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/   r0   <module>r     s_    B 4 * = 2 . A : A A  )9_	-(&-(_	r/   