
    Ch5R              	           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  S S
KJrJrJrJrJr  \(       a  S SKJr  \" S5       " S S\S   \S   \S   5      5       rg)    )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                   >   \ 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 \5      r\\S!'    \
\S"'   \\S#'   \\S$'    \\S%'    \\S&      \S''    \\S('    \\S)'    \S   \S*'    \S+   \S,'    \\S-'   \\S.'    \\S/'   \S0\S1   S2S 4S3 j5       r \S0\S1   S2S 4S4 j5       r!\S(\S0\S5   S2S 4S6 j5       r"\#\$S(\S0\S5   S2S 4S7 j5       5       r%\#S0\S5   S2S 4S8 j5       r%\&" S95      S0\S5   S2S 4S: j5       r%\S(\S0\S5   S2S 4S; j5       r'\#\$S(\S0\S5   S2S 4S< j5       5       r(\#S0\S5   S2S 4S= j5       r(\&" S>5      S0\S5   S2S 4S? j5       r(\S0\S@   S2\)S    4SA j5       r*\S0\S@   S2\)S    4SB j5       r+\S(\S0\SC   S2S 4SD j5       r,\S(\S0\SC   S2S 4SE j5       r-\S(\S0\SF   S2S 4SG j5       r.\#\$S(\S0\SF   S2S 4SH j5       5       r/\#S0\SF   S2S 4SI j5       r/\&" SJ5      S0\SF   S2S 4SK j5       r/\S(\S0\SF   S2S 4SL j5       r0\#\$S(\S0\SF   S2S 4SM j5       5       r1\#S0\SF   S2S 4SN j5       r1\&" SO5      S0\SF   S2S 4SP j5       r1\S(\S0\SQ   S2S 4SR j5       r2\S(\S0\SQ   S2S 4SS j5       r3\S(\S0\ST   S2\)SU   4SV j5       r4\S(\S0\ST   S2\)SU   4SW j5       r5\
\\\SX.r6SYr7gZ)[Meter   a%  
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                   2    \ rS rSr% \\S'    \S   \S'   Srg)Meter.CustomerMapping&   event_payload_keyby_idtype N__name__
__module____qualname____firstlineno__str__annotations__r   __static_attributes__r"       X/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/billing/_meter.pyCustomerMappingr   &       	 g	r+   r-   c                   &    \ rS rSr% \S   \S'   Srg)Meter.DefaultAggregation0   countlastsumformular"   Nr$   r%   r&   r'   r   r)   r*   r"   r+   r,   DefaultAggregationr0   0       /00	r+   r8   c                   &    \ rS rSr% \\   \S'   Srg)Meter.StatusTransitions6   deactivated_atr"   N)r$   r%   r&   r'   r   intr)   r*   r"   r+   r,   StatusTransitionsr;   6   s     %	r+   r?   c                        \ rS rSr% \\S'   Srg)Meter.ValueSettings<   r   r"   Nr$   r%   r&   r'   r(   r)   r*   r"   r+   r,   ValueSettingsrA   <       	r+   rD   c                       \ rS rSr% \S   \S'    S\S'    \\S'    \\S'    \\S      \S	'    \\\      \S
'    \S   \S'   Sr	g)Meter.CreateParamsB   !Meter.CreateParamsCustomerMappingcustomer_mapping$Meter.CreateParamsDefaultAggregationdefault_aggregationdisplay_name
event_namedayhourevent_time_windowexpandMeter.CreateParamsValueSettingsvalue_settingsr"   N)
r$   r%   r&   r'   r   r)   r(   r   r   r*   r"   r+   r,   CreateParamsrG   B   sz    %&IJJ	 DC	 	 	 'w}'=>>	 DI&&	 $$EFF	r+   rV   c                   2    \ rS rSr% \\S'    \S   \S'   Srg)rI   `   r   r    r!   r"   Nr#   r"   r+   r,   CreateParamsCustomerMapping!Meter.CreateParamsCustomerMapping`   r.   r+   rY   c                   &    \ rS rSr% \S   \S'   Srg)rK   j   r2   r6   r"   Nr7   r"   r+   r,   CreateParamsDefaultAggregation$Meter.CreateParamsDefaultAggregationj   r9   r+   r]   c                        \ rS rSr% \\S'   Srg)rT   p   r   r"   NrC   r"   r+   r,   CreateParamsValueSettingsMeter.CreateParamsValueSettingsp   rE   r+   ra   c                   ,    \ rS rSr% \\\      \S'   Srg)Meter.DeactivateParamsv   rS   r"   N	r$   r%   r&   r'   r   r   r(   r)   r*   r"   r+   r,   DeactivateParamsrd   v       DI&&	r+   rg   c                       \ rS rSr% \\S'    \\S'    \\   \S'    \\\      \S'    \\   \S'    \\S'    \\   \S'    \\	S	      \S
'   Sr
g)Meter.ListEventSummariesParams|   customerend_timeending_beforerS   limit
start_timestarting_afterrO   value_grouping_windowr"   N)r$   r%   r&   r'   r(   r)   r>   r   r   r   r*   r"   r+   r,   ListEventSummariesParamsrj   |   s    	 	 #3''	 DI&&	 3	 	 $C((	  +7=+ABB	r+   rs   c                   z    \ rS rSr% \\   \S'    \\\      \S'    \\   \S'    \\   \S'    \\	S      \S'   Sr
g	)
Meter.ListParams   rn   rS   ro   rq   activeinactivestatusr"   N)r$   r%   r&   r'   r   r(   r)   r   r>   r   r*   r"   r+   r,   
ListParamsru      sd    "3''	 DI&&	 3	 $C((	 G$89::	r+   r{   c                   >    \ rS rSr% \\   \S'    \\\      \S'   Srg)Meter.ModifyParams   rM   rS   r"   N)	r$   r%   r&   r'   r   r(   r)   r   r*   r"   r+   r,   ModifyParamsr}      s(    !#&&	 DI&&	r+   r   c                   ,    \ rS rSr% \\\      \S'   Srg)Meter.ReactivateParams   rS   r"   Nrf   r"   r+   r,   ReactivateParamsr      rh   r+   r   c                   ,    \ rS rSr% \\\      \S'   Srg)Meter.RetrieveParams   rS   r"   Nrf   r"   r+   r,   RetrieveParamsr      rh   r+   r   createdrJ   rL   rM   rN   rO   rR   idlivemodeobjectrw   rz   status_transitionsupdatedrU   paramsrG   returnc           	      T    [        SU R                  SU R                  5       US95      $ )
Creates a billing meter.
r   postr   )r   _static_request	class_urlclsr   s     r,   createMeter.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     r,   create_asyncMeter.create_async  sC      ++ ,  
 	
s   )64
	6rd   c                 d    [        SU R                  SSR                  [        U5      S9US95      $ )
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r   r   r   r   formatr   r   r   r   s      r,   _cls_deactivateMeter._cls_deactivate  I     4;;"2 <     	
 		
r+   c                     gr   Nr"   r   r   s     r,   
deactivateMeter.deactivate#       	r+   c                     gr   r"   selfr   s     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   _requestr   r   getr   s     r,   r   r   6  P     MM4;;"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      r,   _cls_deactivate_asyncMeter._cls_deactivate_asyncH  V      ++4;;"2 <   ,  	
 		
   1><
	>c                    #    g7fr   r"   r   s     r,   deactivate_asyncMeter.deactivate_asyncZ  
      	   c                    #    g7fr   r"   r   s     r,   r   r   d  
      	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     r,   r   r   m  _      %%4;;"488D>2 <   &  	
 		
   A AA
	Aru   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 billing meters.
r   r   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorr!   r$   r   r   results      r,   list
Meter.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   r!   r$   r   s      r,   
list_asyncMeter.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 billing meter.
/r   r   r   )r   r   r   r   r   r   r   urls       r,   modifyMeter.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       r,   modify_asyncMeter.modify_async  sQ      +b/:++ ,  
 	
s   ;AA
	Ar   c                 d    [        SU R                  SSR                  [        U5      S9US95      $ )m
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_reactivateMeter._cls_reactivate  r   r+   c                     gr   Nr"   r   s     r,   
reactivateMeter.reactivate  r   r+   c                     gr   r"   r   s     r,   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     r,   r   r     r   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      r,   _cls_reactivate_asyncMeter._cls_reactivate_async  r   r   c                    #    g7fr   r"   r   s     r,   reactivate_asyncMeter.reactivate_async  r   r   c                    #    g7fr   r"   r   s     r,   r   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   Nr   r   s     r,   r   r   #  r   r   r   c                 8    U " U40 UD6nUR                  5         U$ )(
Retrieves a billing meter given an ID.
)refreshr   r   r   instances       r,   retrieveMeter.retrieve5  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       r,   retrieve_asyncMeter.retrieve_async@  s2      r$V$$$&&& 	's   (&(rj   r   c                 r    [        [        S   U R                  SSR                  [	        U5      S9US95      $ )3
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_summariesMeter.list_event_summariesK  sP     *+9@@"2 A     	
 		
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   r   s      r,   list_event_summaries_async Meter.list_event_summaries_async]  s]      *+++9@@"2 A   ,  	
 		
s   8AA
	A)rJ   rL   r   rU   r"   N)8r$   r%   r&   r'   __doc__r   r   r   r)   r   r-   r8   r?   rD   r   rV   r   rY   r]   ra   rg   rs   r{   r   r   r   r>   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   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+   