o
    Bi*                     @   s   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 G d	d
 d
eZdS )    )
ListObject)RequestOptions)StripeService)sanitize_id)Meter)MeterEventSummaryService)Listcast)LiteralNotRequired	TypedDictc                	       s   e Zd Z fddZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZi i fdddedee fddZi i fdddedee fddZi fdddedefddZi fdddedefd d!Zi i fd"edd#dedefd$d%Zi i fd"edd#dedefd&d'Zi i fd"edd(dedefd)d*Zi i fd"edd(dedefd+d,Zi i fd"edd-dedefd.d/Zi i fd"edd-dedefd0d1Zi i fd"edd2dedefd3d4Zi i fd"edd2dedefd5d6Z  ZS )7MeterServicec                    s   t  | t| j| _d S )N)super__init__r   
_requestorevent_summaries)self	requestor	__class__ ]/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/billing/_meter_service.pyr      s   zMeterService.__init__c                   @   sj   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< dS )MeterService.CreateParams(MeterService.CreateParamsCustomerMappingcustomer_mapping+MeterService.CreateParamsDefaultAggregationdefault_aggregationdisplay_name
event_name)dayhourevent_time_windowexpand&MeterService.CreateParamsValueSettingsvalue_settingsN)__name__
__module____qualname__r   __annotations__strr
   r   r   r   r   r   CreateParams   s"   
 r*   c                   @   s$   e Zd ZU eed< 	 ed ed< dS )r   event_payload_keyby_idtypeN)r%   r&   r'   r)   r(   r
   r   r   r   r   CreateParamsCustomerMapping4   s
   
 r.   c                   @   s   e Zd ZU ed ed< dS )r   )countsumformulaN)r%   r&   r'   r
   r(   r   r   r   r   CreateParamsDefaultAggregation>   s   
 r2   c                   @   s   e Zd ZU eed< dS )r#   r+   N)r%   r&   r'   r)   r(   r   r   r   r   CreateParamsValueSettingsD   s   
 r3   c                   @      e Zd ZU eee  ed< dS )MeterService.DeactivateParamsr"   Nr%   r&   r'   r   r   r)   r(   r   r   r   r   DeactivateParamsJ      
 r7   c                   @   sZ   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< dS )MeterService.ListParamsending_beforer"   limitstarting_after)activeinactivestatusN)	r%   r&   r'   r   r)   r(   r   intr
   r   r   r   r   
ListParamsP   s   
 rA   c                   @   r4   )MeterService.ReactivateParamsr"   Nr6   r   r   r   r   ReactivateParamsf   r8   rC   c                   @   r4   )MeterService.RetrieveParamsr"   Nr6   r   r   r   r   RetrieveParamsl   r8   rE   c                   @   s,   e Zd ZU ee ed< 	 eee  ed< dS )MeterService.UpdateParamsr   r"   N)r%   r&   r'   r   r)   r(   r   r   r   r   r   UpdateParamsr   s
   
 rG   paramsr9   optionsreturnc              	   C   s   t tt | jddd||dS )4
        Retrieve a list of billing meters.
        get/v1/billing/metersapibase_addressrH   rI   )r	   r   r   _requestr   rH   rI   r   r   r   list|   s   zMeterService.listc              	      s&   t tt | jddd||dI dH S )rK   rL   rM   rN   rO   N)r	   r   r   _request_asyncrR   r   r   r   
list_async   s   
zMeterService.list_asyncr   c              	   C   s   t t| jddd||dS ))
        Creates a billing meter
        postrM   rN   rO   )r	   r   rQ   rR   r   r   r   create   s   zMeterService.createc              	      s"   t t| jddd||dI dH S )rV   rW   rM   rN   rO   N)r	   r   rT   rR   r   r   r   create_async   s   
zMeterService.create_asyncidrD   c              	   C   &   t t| jddjt|dd||dS )7
        Retrieves a billing meter given an ID
        rL   /v1/billing/meters/{id}rZ   rN   rO   r	   r   rQ   formatr   r   rZ   rH   rI   r   r   r   retrieve      	zMeterService.retrievec              	      .   t t| jddjt|dd||dI dH S )r\   rL   r]   r^   rN   rO   Nr	   r   rT   r`   r   ra   r   r   r   retrieve_async      	
zMeterService.retrieve_asyncrF   c              	   C   r[   ))
        Updates a billing meter
        rW   r]   r^   rN   rO   r_   ra   r   r   r   update   rc   zMeterService.updatec              	      rd   )rh   rW   r]   r^   rN   rO   Nre   ra   r   r   r   update_async   rg   zMeterService.update_asyncr5   c              	   C   r[   )-
        Deactivates a billing meter
        rW   "/v1/billing/meters/{id}/deactivater^   rN   rO   r_   ra   r   r   r   
deactivate     	zMeterService.deactivatec              	      rd   )rk   rW   rl   r^   rN   rO   Nre   ra   r   r   r   deactivate_async*     	
zMeterService.deactivate_asyncrB   c              	   C   r[   )-
        Reactivates a billing meter
        rW   "/v1/billing/meters/{id}/reactivater^   rN   rO   r_   ra   r   r   r   
reactivate@  rn   zMeterService.reactivatec              	      rd   )rq   rW   rr   r^   rN   rO   Nre   ra   r   r   r   reactivate_asyncV  rp   zMeterService.reactivate_async)r%   r&   r'   r   r   r*   r.   r2   r3   r7   rA   rC   rE   rG   r   r   r   rS   rU   rX   rY   r)   rb   rf   ri   rj   rm   ro   rs   rt   __classcell__r   r   r   r   r      s
    











r   N)stripe._list_objectr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr   stripe.billing._meterr   +stripe.billing._meter_event_summary_servicer   typingr   r	   typing_extensionsr
   r   r   r   r   r   r   r   <module>   s   