
    hR              	           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 d d
lmZmZmZmZmZ er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)RequestOptions)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)MeterEventSummary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 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
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d0   d1d fd2       Zed/ed0   d1d fd3       Z ed'ed/ed4   d1d fd5       Z!e"e#d'ed/ed4   d1d fd6              Z$e"d/ed4   d1d fd7       Z$ e%d8      d/ed4   d1d fd9       Z$ed'ed/ed4   d1d fd:       Z&e"e#d'ed/ed4   d1d fd;              Z'e"d/ed4   d1d fd<       Z' e%d=      d/ed4   d1d fd>       Z'ed/ed?   d1e(d    fd@       Z)ed/ed?   d1e(d    fdA       Z*ed'ed/edB   d1d fdC       Z+ed'ed/edB   d1d fdD       Z,ed'ed/edE   d1d fdF       Z-e"e#d'ed/edE   d1d fdG              Z.e"d/edE   d1d fdH       Z. e%dI      d/edE   d1d fdJ       Z.ed'ed/edE   d1d fdK       Z/e"e#d'ed/edE   d1d fdL              Z0e"d/edE   d1d fdM       Z0 e%dN      d/edE   d1d fdO       Z0ed'ed/edP   d1d fdQ       Z1ed'ed/edP   d1d fdR       Z2ed'ed/edS   d1e(dT   fdU       Z3ed'ed/edS   d1e(dT   fdV       Z4e	e
eedWZ5yX)Y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        U/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/stripe/billing/_meter.pyCustomerMappingr   &       	 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,   0       /00	r'   r3   c                       e Zd ZU ee   ed<   y)Meter.StatusTransitionsdeactivated_atN)r!   r"   r#   r   intr%   r&   r'   r(   StatusTransitionsr6   6   s     %	r'   r9   c                       e Zd ZU eed<   y)Meter.ValueSettingsr   Nr!   r"   r#   r$   r%   r&   r'   r(   ValueSettingsr;   <       	r'   r=   c                       e Zd ZU ed   ed<   	 ded<   	 eed<   	 eed<   	 eed      ed<   	 eee      ed	<   	 ed
   ed<   y)Meter.CreateParams!Meter.CreateParamsCustomerMappingcustomer_mapping$Meter.CreateParamsDefaultAggregationdefault_aggregationdisplay_name
event_namedayhourevent_time_windowexpandMeter.CreateParamsValueSettingsvalue_settingsN)r!   r"   r#   r   r%   r$   r   r   r&   r'   r(   CreateParamsr@   B   sz    %&IJJ	 DC	 	 	 'w}'=>>	 DI&&	 $$EFF	r'   rN   c                   *    e Zd ZU eed<   	 ed   ed<   y)rA   r   r   r   Nr    r&   r'   r(   CreateParamsCustomerMappingz!Meter.CreateParamsCustomerMapping`   r*   r'   rP   c                       e Zd ZU ed   ed<   y)rC   r-   r1   Nr2   r&   r'   r(   CreateParamsDefaultAggregationz$Meter.CreateParamsDefaultAggregationj   r4   r'   rR   c                       e Zd ZU eed<   y)rL   r   Nr<   r&   r'   r(   CreateParamsValueSettingszMeter.CreateParamsValueSettingsp   r>   r'   rT   c                   $    e Zd ZU eee      ed<   y)Meter.DeactivateParamsrK   Nr!   r"   r#   r   r   r$   r%   r&   r'   r(   DeactivateParamsrV   v       DI&&	r'   rX   c                       e Zd ZU eed<   	 eed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 eed<   	 ee   ed<   	 eed      ed	<   y
)Meter.ListEventSummariesParamscustomerend_timeending_beforerK   limit
start_timestarting_afterrG   value_grouping_windowN)	r!   r"   r#   r$   r%   r8   r   r   r   r&   r'   r(   ListEventSummariesParamsr[   |   s    	 	 #3''	 DI&&	 3	 	 $C((	  +7=+ABB	r'   rc   c                   r    e Zd ZU ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   	 eed      ed<   y)Meter.ListParamsr^   rK   r_   ra   activeinactivestatusN)	r!   r"   r#   r   r$   r%   r   r8   r   r&   r'   r(   
ListParamsre      sd    "3''	 DI&&	 3	 $C((	 G$89::	r'   rj   c                   6    e Zd ZU ee   ed<   	 eee      ed<   y)Meter.ModifyParamsrE   rK   N)r!   r"   r#   r   r$   r%   r   r&   r'   r(   ModifyParamsrl      s(    !#&&	 DI&&	r'   rm   c                   $    e Zd ZU eee      ed<   y)Meter.ReactivateParamsrK   NrW   r&   r'   r(   ReactivateParamsro      rY   r'   rp   c                   $    e Zd ZU eee      ed<   y)Meter.RetrieveParamsrK   NrW   r&   r'   r(   RetrieveParamsrr      rY   r'   rs   createdrB   rD   rE   rF   rG   rJ   idlivemodeobjectrf   ri   status_transitionsupdatedrM   paramsr@   returnc                 Z    t        d| j                  d| j                         |            S )*
        Creates a billing meter.
        r   postrz   )r   _static_request	class_urlclsrz   s     r(   createzMeter.create   s6    
    
 	
r'   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r}   r   r~   r   N)r   _static_request_asyncr   r   s     r(   create_asynczMeter.create_async  sD      ++ ,  
 	
s   ,97
	9rV   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   r~   "/v1/billing/meters/{id}/deactivateru   r   r   r   formatr   r   ru   rz   s      r(   _cls_deactivatezMeter._cls_deactivate  I     4;;"2 <     	
 		
r'   c                      yr   Nr&   ru   rz   s     r(   
deactivatezMeter.deactivate#       	r'   c                      yr   r&   selfrz   s     r(   r   zMeter.deactivate-       	r'   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   r~   r   ru   r   r   r   _requestr   r   getr   s     r(   r   zMeter.deactivate6  P     MM4;;"488D>2 <    	
 		
r'   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   r~   r   r   r   Nr   r   r   r   r   s      r(   _cls_deactivate_asynczMeter._cls_deactivate_asyncH  W      ++4;;"2 <   ,  	
 		
   7AA
	Ac                    K   ywr   r&   r   s     r(   deactivate_asynczMeter.deactivate_asyncZ        	   c                    K   ywr   r&   r   s     r(   r   zMeter.deactivate_asyncd        	r   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   r~   r   ru   r   r   Nr   _request_asyncr   r   r   r   s     r(   r   zMeter.deactivate_asyncm  `      %%4;;"488D>2 <   &  	
 		
   AAA
		Are   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )4
        Retrieve a list of billing meters.
        r   r   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorr   r!   r   rz   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   r   r   Nr   )r   r   r   r   r   r   r!   r   s      r(   
list_asynczMeter.list_async  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"rl   c                 z    | j                         dt        |      }t        d| j                  d||            S )*
        Updates a billing meter.
        /r   r~   r   )r   r   r   r   r   ru   rz   urls       r(   modifyzMeter.modify  sD     +b/:   
 	
r'   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r   r~   r   N)r   r   r   r   r   s       r(   modify_asynczMeter.modify_async  sR      +b/:++ ,  
 	
s   <A	A
	A	ro   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   r~   "/v1/billing/meters/{id}/reactivater   r   r   r   s      r(   _cls_reactivatezMeter._cls_reactivate  r   r'   c                      yr   Nr&   r   s     r(   
reactivatezMeter.reactivate  r   r'   c                      yr   r&   r   s     r(   r   zMeter.reactivate  r   r'   r   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r   r   r~   r   ru   r   r   r   r   s     r(   r   zMeter.reactivate  r   r'   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r   r   r~   r   r   r   Nr   r   s      r(   _cls_reactivate_asynczMeter._cls_reactivate_async  r   r   c                    K   ywr   r&   r   s     r(   reactivate_asynczMeter.reactivate_async  r   r   c                    K   ywr   r&   r   s     r(   r   zMeter.reactivate_async  r   r   r   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r   r   r~   r   ru   r   r   Nr   r   s     r(   r   zMeter.reactivate_async#  r   r   rr   c                 8     | |fi |}|j                          |S )8
        Retrieves a billing meter given an ID.
        )refreshr   ru   rz   instances       r(   retrievezMeter.retrieve5  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   r   '/v1/billing/meters/{id}/event_summariesr   r   )r   r   r   r   r   r   s      r(   list_event_summarieszMeter.list_event_summariesK  sP     *+9@@"2 A     	
 		
r'   c                    K   t        t        d   | j                  ddj                  t	        |            |       d{         S 7 w)r   r   r   r   r   r   N)r   r   r   r   r   r   s      r(   list_event_summaries_asyncz Meter.list_event_summaries_async]  s^      *+++9@@"2 A   ,  	
 		
s   >A A	
	A)rB   rD   rx   rM   N)6r!   r"   r#   __doc__r   r   r   r%   r   r)   r3   r9   r=   r   rN   r   rP   rR   rT   rX   rc   rj   rm   rp   rs   r8   r$   r   boolclassmethodr   r   r   r   r   staticmethodr   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _inner_class_typesr&   r'   r(   r   r      sx    7FK'/23E, \ L  ~ <i  I >  >  D^ ,~ >   L &%++ O   677 	G N O$$ ()) *)L "!
f%9: 
w 
 
 
23
	
 
 

 &'? @
	
 
" !":;	   78	  +,
78
	
 -
" 

 &'? @
	
 
" !":;	   78	  12
78
	
 3
" F#56 :g;N  " 01	G	 & 

 &'; <
	
 
  

 &'; <
	
 
  

 &'? @
	
 
" !":;	   78	  +,
78
	
 -
" 

 &'? @
	
 
" !":;	   78	  12
78
	
 3
"  &'= >	   &'= >	  

 &'G H
	'	(
 
" 

 &'G H
	'	(
 
$ ,1/'	r'   r   N) stripe._createable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   %stripe._nested_resource_class_methodsr   stripe._request_optionsr   stripe._stripe_objectr   stripe._updateable_api_resourcer	   stripe._utilr
   r   typingr   r   r   r   r   typing_extensionsr   r   r   r   r   #stripe.billing._meter_event_summaryr   r   r&   r'   r(   <module>r      sq    B * = O 2 . A : ; ;  E /[	'" '"[	 0[	r'   