
    h9E                         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 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         Zy)    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)RequestOptions)StripeObject)class_method_variantsanitize_id)ClassVarListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Customer)Meterc                      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ed   ed<   	 eed<   	 eed<   	 ed   ed<   	 eed      ed<   	 eed<   	 ee	   ed<   	 ededed   d d fd!       Zeededed   d d fd"              Zeded   d d fd#       Z ed$      ded   d d fd%       Zededed   d d fd&       Zeededed   d d fd'              Zeded   d d fd(       Z ed)      ded   d d fd*       Zededed+   d d fd,       Z eededed+   d d fd-              Z!eded+   d d fd.       Z! ed/      ded+   d d fd0       Z!ededed+   d d fd1       Z"eededed+   d d fd2              Z#eded+   d d fd3       Z# ed4      ded+   d d fd5       Z#eded6   d d fd7       Z$eded6   d d fd8       Z%ededed9   d d fd:       Z&eededed9   d d fd;              Z'eded9   d d fd<       Z' ed=      ded9   d d fd>       Z'ededed9   d d fd?       Z(eededed9   d d fd@              Z)eded9   d d fdA       Z) edB      ded9   d d fdC       Z)ededD   d e*d    fdE       Z+ededD   d e*d    fdF       Z,edededG   d d fdH       Z-edededG   d d fdI       Z.de	iZ/yJ)KAlertz
    A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests.
    zbilling.alertOBJECT_NAMEc                   t    e Zd ZU  G d de      Zeee      ed<   	 eed<   	 e	d   ed<   	 e
d   ed<   	 deiZy	)
Alert.UsageThresholdc                   6    e Zd ZU eed      ed<   	 ed   ed<   y)Alert.UsageThreshold.Filterr   customertypeN)__name__
__module____qualname__r   r   __annotations__r        U/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/stripe/billing/_alert.pyFilterr       s$    z:;; *%%r%   r'   filtersgter   meterone_time
recurrenceN)r    r!   r"   r   r'   r   r   r#   intr   r   _inner_class_typesr$   r%   r&   UsageThresholdr      sa    	&\ 	& $v,''	 	 w''	 J''	 (0r%   r/   c                   $    e Zd ZU eee      ed<   y)Alert.ActivateParamsexpandNr    r!   r"   r   r   strr#   r$   r%   r&   ActivateParamsr1   9       DI&&	r%   r5   c                   $    e Zd ZU eee      ed<   y)Alert.ArchiveParamsr2   Nr3   r$   r%   r&   ArchiveParamsr8   ?   r6   r%   r9   c                   T    e Zd ZU ed   ed<   	 eee      ed<   	 eed<   	 ed   ed<   y)Alert.CreateParamsusage_threshold
alert_typer2   title Alert.CreateParamsUsageThresholdN)r    r!   r"   r   r#   r   r   r4   r$   r%   r&   CreateParamsr;   E   sH    -..	 DI&&	 
	 %%GHH	r%   r@   c                   T    e Zd ZU eed      ed<   	 eed<   	 ee   ed<   	 ed   ed<   y)r?   &Alert.CreateParamsUsageThresholdFilterr(   r)   r*   r+   r,   N)	r    r!   r"   r   r   r#   r-   r4   r   r$   r%   r&   CreateParamsUsageThresholdz Alert.CreateParamsUsageThresholdW   sH    T"JKLL	 	 3	 J''	r%   rC   c                   0    e Zd ZU ee   ed<   	 ed   ed<   y)rB   r   r   N)r    r!   r"   r   r4   r#   r   r$   r%   r&    CreateParamsUsageThresholdFilterz&Alert.CreateParamsUsageThresholdFilteri   s$    c""	 j!!	r%   rE   c                   $    e Zd ZU eee      ed<   y)Alert.DeactivateParamsr2   Nr3   r$   r%   r&   DeactivateParamsrG   s   r6   r%   rH   c                       e Zd ZU eed      ed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)	Alert.ListParamsr<   r=   ending_beforer2   limitr*   starting_afterN)	r    r!   r"   r   r   r#   r4   r   r-   r$   r%   r&   
ListParamsrJ   y   sv    (9 :;;	 #3''	 DI&&	 3	 3	 $C((	r%   rN   c                   $    e Zd ZU eee      ed<   y)Alert.RetrieveParamsr2   Nr3   r$   r%   r&   RetrieveParamsrP      r6   r%   rQ   r<   r=   idlivemodeobject)activearchivedinactivestatusr>   paramsr1   returnc                 p    t        d| j                  ddj                  t        |            |            S )G
        Reactivates this alert, allowing it to trigger again.
        r   post /v1/billing/alerts/{id}/activaterR   rY   r   _static_requestformatr
   clsrR   rY   s      r&   _cls_activatezAlert._cls_activate   sB     299[_9M   
 	
r%   c                      yr\   Nr$   rR   rY   s     r&   activatezAlert.activate        	r%   c                      yrh   r$   selfrY   s     r&   rj   zAlert.activate       
 	r%   rf   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r\   r   r]   r^   rR   r_   r`   r   _requestrc   r
   getrm   s     r&   rj   zAlert.activate   sP     MM299"488D>2 :    	
 		
r%   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r\   r   r]   r^   r_   r`   Nr   _static_request_asyncrc   r
   rd   s      r&   _cls_activate_asynczAlert._cls_activate_async   sP      ++299[_9M ,  
 	
   7AA
	Ac                    K   ywrh   r$   ri   s     r&   activate_asynczAlert.activate_async         	   c                    K   ywrh   r$   rm   s     r&   rz   zAlert.activate_async        	r|   rw   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r\   r   r]   r^   rR   r_   r`   Nr   _request_asyncrc   r
   rs   rm   s     r&   rz   zAlert.activate_async
  s`      %%299"488D>2 :   &  	
 		
   AAA
		Ar8   c                 p    t        d| j                  ddj                  t        |            |            S )g
        Archives this alert, removing it from the list view and APIs. This is non-reversible.
        r   r]   /v1/billing/alerts/{id}/archiver_   r`   ra   rd   s      r&   _cls_archivezAlert._cls_archive  sB     188KO8L   
 	
r%   c                      yr   Nr$   ri   s     r&   archivezAlert.archive,  rk   r%   c                      yr   r$   rm   s     r&   r   zAlert.archive4  ro   r%   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   r]   r   rR   r_   r`   rq   rm   s     r&   r   zAlert.archive;  sP     MM188"488D>2 9    	
 		
r%   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   r]   r   r_   r`   Nru   rd   s      r&   _cls_archive_asynczAlert._cls_archive_asyncM  sP      ++188KO8L ,  
 	
rx   c                    K   ywr   r$   ri   s     r&   archive_asynczAlert.archive_async]  r{   r|   c                    K   ywr   r$   rm   s     r&   r   zAlert.archive_asyncg  r~   r|   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   r]   r   rR   r_   r`   Nr   rm   s     r&   r   zAlert.archive_asyncp  s`      %%188"488D>2 9   &  	
 		
r   r;   c                 Z    t        d| j                  d| j                         |            S ))
        Creates a billing alert
        r   r]   r`   )r   rb   	class_urlre   rY   s     r&   createzAlert.create  s6    
    
 	
r%   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r   r   r]   r`   N)r   rv   r   r   s     r&   create_asynczAlert.create_async  sD      ++ ,  
 	
s   ,97
	9rG   c                 p    t        d| j                  ddj                  t        |            |            S )H
        Deactivates this alert, preventing it from triggering.
        r   r]   "/v1/billing/alerts/{id}/deactivater_   r`   ra   rd   s      r&   _cls_deactivatezAlert._cls_deactivate  sI     4;;"2 <     	
 		
r%   c                      yr   Nr$   ri   s     r&   
deactivatezAlert.deactivate  s     	r%   c                      yr   r$   rm   s     r&   r   zAlert.deactivate  s     	r%   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   r]   r   rR   r_   r`   rq   rm   s     r&   r   zAlert.deactivate  sP     MM4;;"488D>2 <    	
 		
r%   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   r]   r   r_   r`   Nru   rd   s      r&   _cls_deactivate_asynczAlert._cls_deactivate_async  sW      ++4;;"2 <   ,  	
 		
rx   c                    K   ywr   r$   ri   s     r&   deactivate_asynczAlert.deactivate_async  r{   r|   c                    K   ywr   r$   rm   s     r&   r   zAlert.deactivate_async  r~   r|   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   r]   r   rR   r_   r`   Nr   rm   s     r&   r   zAlert.deactivate_async  s`      %%4;;"488D>2 <   &  	
 		
r   rJ   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S ):
        Lists billing active and inactive alerts
        rs   r`   %Expected list object from API, got %s)rb   r   
isinstancer   	TypeErrorr   r    re   rY   results      r&   listz
Alert.list  s]    
 $$MMO % 

 &*-7<((* 
 r%   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r   rs   r`   Nr   )rv   r   r   r   r   r   r    r   s      r&   
list_asynczAlert.list_async   sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"rP   c                 8     | |fi |}|j                          |S )7
        Retrieves a billing alert given an ID
        )refreshre   rR   rY   instances       r&   retrievezAlert.retrieve4  s$     r$V$r%   c                 T   K    | |fi |}|j                          d{    |S 7 w)r   N)refresh_asyncr   s       r&   retrieve_asynczAlert.retrieve_async?  s3      r$V$$$&&& 	's   (&(N)0r    r!   r"   __doc__r   r   r   r#   r   r/   r   r5   r9   r@   r   rC   rE   rH   rN   rQ   r4   boolr   classmethodr   rf   r   staticmethodrj   r	   rw   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r$   r%   r&   r   r      s    7FK'/23E1 14  ~ $Y $9 > ^ 4  )** 	G N O$$ W=>?? J n-- 

 &'= >
	
 
 S F+A$B w    (>!? G   /*
56
	
 +
" 

 &'= >
	
 
 !"89	   56	  /0
56
	
 1
" 

 &'< =
	
 
 C 6*?#@ W    '< = '   .)
45
	
 *
" 

 &'< =
	
 
 !"78	   45	  ./
45
	
 0
" 
f%9: 
w 
 
 
23
	
 
 

 &'? @
	
 
" !":;	   78	  +,
78
	
 -
" 

 &'? @
	
 
" !":;	   78	  12
78
	
 3
" F#56 :g;N  " 01	G	 &  &'= >	   &'= >	  ,^<r%   r   N) stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   stripe._utilr	   r
   typingr   r   r   r   r   typing_extensionsr   r   r   r   r   stripe._customerr   stripe.billing._meterr   r   r$   r%   r&   <module>r      sT    B 4 * = 2 . : ; ;  )+r=!'*,?,H r=r%   