
    Ai9                        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 er0d 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&  G d ded   ed         Z'y)    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)class_method_variantsanitize_id)ClassVarListOptionalcastoverload)LiteralUnpackTYPE_CHECKING)Customer)Meter)AlertActivateParams)AlertArchiveParams)AlertCreateParams)AlertDeactivateParams)AlertListParams)AlertRetrieveParamsc                   D   e Zd ZU dZdZeed      ed<    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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&   dd fd'       Ze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d0              Zeded)   dd fd1       Z ed2      ded)   dd fd3       Zeded4   de d    fd5       Z!eded4   de d    fd6       Z"ede
ded7   dd fd8       Z#ede
ded7   dd fd9       Z$de	iZ%y:);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        H/var/www/html/immo/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(   r2   usage_threshold
alert_typeidlivemodeobject)activearchivedinactivestatustitleparamsr   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r5   r=   r   _static_requestformatr	   clsr5   r=   s      r)   _cls_activatezAlert._cls_activate[   sB     299[_9M   
 	
r(   c                      yr@   Nr'   r5   r=   s     r)   activatezAlert.activatek        	r(   c                      yrL   r'   selfr=   s     r)   rN   zAlert.activates       
 	r(   rJ   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r@   r   rA   rB   r5   rC   rD   r   _requestrG   r	   getrQ   s     r)   rN   zAlert.activatez   sP     MM299"488D>2 :    	
 		
r(   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r@   r   rA   rB   rC   rD   Nr   _static_request_asyncrG   r	   rH   s      r)   _cls_activate_asynczAlert._cls_activate_async   sP      ++299[_9M ,  
 	
   7AA
	Ac                    K   ywrL   r'   rM   s     r)   activate_asynczAlert.activate_async         	   c                    K   ywrL   r'   rQ   s     r)   r^   zAlert.activate_async         	r`   r[   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r@   r   rA   rB   r5   rC   rD   Nr   _request_asyncrG   r	   rW   rQ   s     r)   r^   zAlert.activate_async   s`      %%299"488D>2 :   &  	
 		
   AAA
		Ar   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   rA   /v1/billing/alerts/{id}/archiverC   rD   rE   rH   s      r)   _cls_archivezAlert._cls_archive   sB     188KO8L   
 	
r(   c                      yrh   Nr'   rM   s     r)   archivezAlert.archive   rO   r(   c                      yrl   r'   rQ   s     r)   rm   zAlert.archive   rS   r(   rj   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )rh   r   rA   ri   r5   rC   rD   rU   rQ   s     r)   rm   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)rh   r   rA   ri   rC   rD   NrY   rH   s      r)   _cls_archive_asynczAlert._cls_archive_async   sP      ++188KO8L ,  
 	
r\   c                    K   ywrl   r'   rM   s     r)   archive_asynczAlert.archive_async  r_   r`   c                    K   ywrl   r'   rQ   s     r)   rs   zAlert.archive_async  rb   r`   rq   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)rh   r   rA   ri   r5   rC   rD   Nrd   rQ   s     r)   rs   zAlert.archive_async  s`      %%188"488D>2 9   &  	
 		
rf   r   c                 Z    t        d| j                  d| j                         |            S ))
        Creates a billing alert
        r   rA   rD   )r   rF   	class_urlrI   r=   s     r)   createzAlert.create'  s6    
    
 	
r(   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)rw   r   rA   rD   N)r   rZ   rx   ry   s     r)   create_asynczAlert.create_async5  sD      ++ ,  
 	
s   ,97
	9r   c                 p    t        d| j                  ddj                  t        |            |            S )H
        Deactivates this alert, preventing it from triggering.
        r   rA   "/v1/billing/alerts/{id}/deactivaterC   rD   rE   rH   s      r)   _cls_deactivatezAlert._cls_deactivateE  sI     4;;"2 <     	
 		
r(   c                      yr~   Nr'   rM   s     r)   
deactivatezAlert.deactivateW  s     	r(   c                      yr   r'   rQ   s     r)   r   zAlert.deactivatea  rS   r(   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r~   r   rA   r   r5   rC   rD   rU   rQ   s     r)   r   zAlert.deactivateh  sP     MM4;;"488D>2 <    	
 		
r(   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r~   r   rA   r   rC   rD   NrY   rH   s      r)   _cls_deactivate_asynczAlert._cls_deactivate_asyncz  sW      ++4;;"2 <   ,  	
 		
r\   c                    K   ywr   r'   rM   s     r)   deactivate_asynczAlert.deactivate_async  r_   r`   c                    K   ywr   r'   rQ   s     r)   r   zAlert.deactivate_async  rb   r`   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r~   r   rA   r   r5   rC   rD   Nrd   rQ   s     r)   r   zAlert.deactivate_async  s`      %%4;;"488D>2 <   &  	
 		
rf   r   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S ):
        Lists billing active and inactive alerts
        rW   rD   %Expected list object from API, got %s)rF   rx   
isinstancer   	TypeErrorr"   r#   rI   r=   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   rW   rD   Nr   )rZ   rx   r   r   r   r"   r#   r   s      r)   
list_asynczAlert.list_async  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 8     | |fi |}|j                          |S )7
        Retrieves a billing alert given an ID
        )refreshrI   r5   r=   instances       r)   retrievezAlert.retrieve  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)&r#   r$   r%   __doc__r   r
   r   r&   r   r2   strboolr   classmethodr   rJ   r   staticmethodrN   r   r[   r^   rj   rm   rq   rs   rz   r|   r   r   r   r   r   r   r   r   r   r1   r'   r(   r)   r   r      sR    7FK'/23E1 14 )** 	G N O$$ W=>?? J n-- 

 &'< =
	
 
 S F+@$A g    (=!> 7   /*
45
	
 +
" 

 &'< =
	
 
 !"78	   45	  /0
45
	
 1
" 

 &'; <
	
 
 C 6*>#? G    '; <    .)
34
	
 *
" 

 &'; <
	
 
 !"67	   34	  ./
34
	
 0
" 
f%89 
g 
 
 
12
	
 
 

 &'> ?
	
 
" !"9:	   6*A#B w   +,
67
	
 -
" 

 &'> ?
	
 
" !"9:	   67	  12
67
	
 3
" F#45 *W:M  " /0	G	 &  &'< =	   &'< =	  ,^<r(   r   N)(stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._utilr   r	   typingr
   r   r   r   r   typing_extensionsr   r   r   stripe._customerr   stripe.billing._meterr   ,stripe.params.billing._alert_activate_paramsr   +stripe.params.billing._alert_archive_paramsr   *stripe.params.billing._alert_create_paramsr   .stripe.params.billing._alert_deactivate_paramsr   (stripe.params.billing._alert_list_paramsr   ,stripe.params.billing._alert_retrieve_paramsr   r   r'   r(   r)   <module>r      si    B 4 * = . : ; ; < <)+ OL I
P=!'*,?,H P=r(   