
    Ai`<              	       .   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 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'  ed       G d ded   ed   ed                Z(y)    )CreateableAPIResource)
ListObject)ListableAPIResource)nested_resource_class_methods)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarOptionalcastoverload)LiteralUnpackTYPE_CHECKING)MeterEventSummary)MeterCreateParams)MeterDeactivateParams)MeterListEventSummariesParams)MeterListParams)MeterModifyParams)MeterReactivateParams)MeterRetrieveParamsevent_summaryc                   &   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eed<   	 e	ed<   e
ed<   eed<   	 eed<   	 eed      ed<   	 eed<   	 eed<   	 ed   ed<   	 ed   ed<   	 eed<   eed<   	 eed<   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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ed    fd,       Zeded+   ded    fd-       Zededed.   dd fd/       Zededed.   dd fd0       Z ededed1   dd fd2       Z!eededed1   dd fd3              Z"eded1   dd fd4       Z" ed5      ded1   dd fd6       Z"ededed1   dd fd7       Z#eededed1   dd fd8              Z$eded1   dd fd9       Z$ ed:      ded1   dd fd;       Z$ededed<   dd fd=       Z%ededed<   dd fd>       Z&ededed?   ded@   fdA       Z'ededed?   ded@   fdB       Z(e	e
eedCZ)yD)EMetera1  
    Meters specify how to aggregate meter events over a billing period. Meter events represent the actions that customers take in your system. Meters attach to prices and form the basis of the bill.

    Related guide: [Usage based billing](https://docs.stripe.com/billing/subscriptions/usage-based)
    zbilling.meterOBJECT_NAMEc                   *    e Zd ZU eed<   	 ed   ed<   y)Meter.CustomerMappingevent_payload_keyby_idtypeN)__name__
__module____qualname__str__annotations__r        H/var/www/html/immo/lib/python3.12/site-packages/stripe/billing/_meter.pyCustomerMappingr   .   s    	 g	r)   r+   c                       e Zd ZU ed   ed<   y)Meter.DefaultAggregation)countlastsumformulaN)r#   r$   r%   r   r'   r(   r)   r*   DefaultAggregationr-   8   s    /00	r)   r2   c                       e Zd ZU ee   ed<   y)Meter.StatusTransitionsdeactivated_atN)r#   r$   r%   r   intr'   r(   r)   r*   StatusTransitionsr4   >   s     %	r)   r7   c                       e Zd ZU eed<   y)Meter.ValueSettingsr    N)r#   r$   r%   r&   r'   r(   r)   r*   ValueSettingsr9   D   s    	r)   r:   createdcustomer_mappingdefault_aggregationdisplay_name
event_name)dayhourevent_time_windowidlivemodeobject)activeinactivestatusstatus_transitionsupdatedvalue_settingsparamsr   returnc                 Z    t        d| j                  d| j                         |            S )*
        Creates a billing meter.
        r   postrL   )r   _static_request	class_urlclsrL   s     r*   createzMeter.creates   s6    
    
 	
r)   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)rO   r   rP   rQ   N)r   _static_request_asyncrS   rT   s     r*   create_asynczMeter.create_async   sD      ++ ,  
 	
s   ,97
	9r   c                 p    t        d| j                  ddj                  t        |            |            S )
        When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price.
        r   rP   "/v1/billing/meters/{id}/deactivaterC   rQ   r   rR   formatr
   rU   rC   rL   s      r*   _cls_deactivatezMeter._cls_deactivate   I     4;;"2 <     	
 		
r)   c                      yr[   Nr(   rC   rL   s     r*   
deactivatezMeter.deactivate        	r)   c                      yrd   r(   selfrL   s     r*   rf   zMeter.deactivate       
 	r)   ra   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r[   r   rP   r\   rC   r]   rQ   r   _requestr_   r
   getri   s     r*   rf   zMeter.deactivate   P     MM4;;"488D>2 <    	
 		
r)   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r[   r   rP   r\   r]   rQ   Nr   rX   r_   r
   r`   s      r*   _cls_deactivate_asynczMeter._cls_deactivate_async   W      ++4;;"2 <   ,  	
 		
   7AA
	Ac                    K   ywrd   r(   re   s     r*   deactivate_asynczMeter.deactivate_async         	   c                    K   ywrd   r(   ri   s     r*   rw   zMeter.deactivate_async         	ry   rs   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r[   r   rP   r\   rC   r]   rQ   Nr   _request_asyncr_   r
   ro   ri   s     r*   rw   zMeter.deactivate_async   `      %%4;;"488D>2 <   &  	
 		
   AAA
		Ar   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )4
        Retrieve a list of billing meters.
        ro   rQ   %Expected list object from API, got %s)rR   rS   
isinstancer   	TypeErrorr"   r#   rU   rL   results      r*   listz
Meter.list   s]    
 $$MMO % 

 &*-7<((* 
 r)   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r   ro   rQ   Nr   )rX   rS   r   r   r   r"   r#   r   s      r*   
list_asynczMeter.list_async  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 z    | j                         dt        |      }t        d| j                  d||            S )*
        Updates a billing meter.
        /r   rP   rQ   )rS   r
   r   rR   rU   rC   rL   urls       r*   modifyzMeter.modify#  sD    
 +b/:   
 	
r)   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r   rP   rQ   N)rS   r
   r   rX   r   s       r*   modify_asynczMeter.modify_async2  sR      +b/:++ ,  
 	
s   <A	A
	A	r   c                 p    t        d| j                  ddj                  t        |            |            S )}
        When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price.
        r   rP   "/v1/billing/meters/{id}/reactivater]   rQ   r^   r`   s      r*   _cls_reactivatezMeter._cls_reactivateC  rb   r)   c                      yr   Nr(   re   s     r*   
reactivatezMeter.reactivateU  rg   r)   c                      yr   r(   ri   s     r*   r   zMeter.reactivate_  rk   r)   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   rP   r   rC   r]   rQ   rm   ri   s     r*   r   zMeter.reactivatef  rp   r)   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   rP   r   r]   rQ   Nrr   r`   s      r*   _cls_reactivate_asynczMeter._cls_reactivate_asyncx  rt   ru   c                    K   ywr   r(   re   s     r*   reactivate_asynczMeter.reactivate_async  rx   ry   c                    K   ywr   r(   ri   s     r*   r   zMeter.reactivate_async  r{   ry   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   rP   r   rC   r]   rQ   Nr}   ri   s     r*   r   zMeter.reactivate_async  r   r   r   c                 8     | |fi |}|j                          |S )8
        Retrieves a billing meter given an ID.
        )refreshrU   rC   rL   instances       r*   retrievezMeter.retrieve  s$     r$V$r)   c                 T   K    | |fi |}|j                          d{    |S 7 w)r   N)refresh_asyncr   s       r*   retrieve_asynczMeter.retrieve_async  s3      r$V$$$&&& 	's   (&(r   r   c                 ~    t        t        d   | j                  ddj                  t	        |            |            S )C
        Retrieve a list of billing meter event summaries.
        r   ro   '/v1/billing/meters/{id}/event_summariesr]   rQ   )r   r   rR   r_   r
   r`   s      r*   list_event_summarieszMeter.list_event_summaries  sP     *+9@@"2 A     	
 		
r)   c                    K   t        t        d   | j                  ddj                  t	        |            |       d{         S 7 w)r   r   ro   r   r]   rQ   N)r   r   rX   r_   r
   r`   s      r*   list_event_summaries_asyncz Meter.list_event_summaries_async  s^      *+++9@@"2 A   ,  	
 		
s   >A A	
	A)r<   r=   rI   rK   N)*r#   r$   r%   __doc__r   r   r   r'   r   r+   r2   r7   r:   r6   r&   r   boolclassmethodr   rV   rY   ra   r   staticmethodrf   r	   rs   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   _inner_class_typesr(   r)   r*   r   r       s    7FK'/23E, \ L   L &%++ O   677 	G N O$$ ()) *)L "!
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	 & 
 
v.A'B 
w 
 
 

 &': ;
	
 
  

 &'> ?
	
 
" !"9:	   6*A#B w   +,
67
	
 -
" 

 &'> ?
	
 
" !"9:	   67	  12
67
	
 3
"  &'< =	   &'< =	  

 &'F G
	'	(
 
" 

 &'F G
	'	(
 
$ ,1/'	r)   r   N))stripe._createable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   %stripe._nested_resource_class_methodsr   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr	   r
   typingr   r   r   r   typing_extensionsr   r   r   #stripe.billing._meter_event_summaryr   *stripe.params.billing._meter_create_paramsr   .stripe.params.billing._meter_deactivate_paramsr   8stripe.params.billing._meter_list_event_summaries_paramsr   (stripe.params.billing._meter_list_paramsr   *stripe.params.billing._meter_modify_paramsr   .stripe.params.billing._meter_reactivate_paramsr   ,stripe.params.billing._meter_retrieve_paramsr   r   r(   r)   r*   <module>r      s    B * = O . A : 5 5 < <EL IL
 /M'" '"M 0Mr)   