o
    i!                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 e
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 d dlmZ d dlmZ dddgiZG dd deZ dS )    )StripeService)sanitize_id)Optionalcast)import_module)TYPE_CHECKING)
ListObject)RequestOptions)Meter)MeterEventSummaryService)MeterCreateParams)MeterDeactivateParams)MeterListParams)MeterReactivateParams)MeterRetrieveParams)MeterUpdateParamsevent_summariesz+stripe.billing._meter_event_summary_servicer   c                	       s  e Zd ZU ded<  fddZdd Z		d-ded	 d
ed ddfddZ		d-ded	 d
ed ddfddZ	d.ddd
ed ddfddZ		d.ddd
ed ddfddZ
		d-deded d
ed ddfddZ		d-deded d
ed ddfddZ		d-deded d
ed ddfdd Z		d-deded d
ed ddfd!d"Z		d-deded# d
ed ddfd$d%Z		d-deded# d
ed ddfd&d'Z		d-deded( d
ed ddfd)d*Z		d-deded( d
ed ddfd+d,Z  ZS )/MeterServicer   r   c                    s   t  | d S N)super__init__)self	requestor	__class__ }/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/billing/_meter_service.pyr   (   s   zMeterService.__init__c                 C   sN   zt | \}}tt||}t| ||| j t| |W S  ty&   t w r   )_subservicesgetattrr   setattr
_requestorKeyErrorAttributeError)r   nameimport_fromserviceservice_classr   r   r   __getattr__+   s   zMeterService.__getattr__Nparamsr   optionsr	   returnListObject[Meter]c              	   C      t d| jddd||dS )4
        Retrieve a list of billing meters.
        r+   get/v1/billing/metersapibase_addressr(   r)   r   _requestr   r(   r)   r   r   r   list;      zMeterService.listc              	      "   t d| jddd||dI dH S )r-   r+   r.   r/   r0   r1   Nr   _request_asyncr5   r   r   r   
list_asyncN      
zMeterService.list_asyncr   r
   c              	   C   r,   )*
        Creates a billing meter.
        r
   postr/   r0   r1   r3   r5   r   r   r   createa   r7   zMeterService.createc              	      r8   )r=   r
   r>   r/   r0   r1   Nr9   r5   r   r   r   create_asynct   r<   zMeterService.create_asyncidr   c              	   C   &   t d| jddjt|dd||dS )8
        Retrieves a billing meter given an ID.
        r
   r.   /v1/billing/meters/{id}rA   r0   r1   r   r4   formatr   r   rA   r(   r)   r   r   r   retrieve      	zMeterService.retrievec              	      .   t d| jddjt|dd||dI dH S )rC   r
   r.   rD   rE   r0   r1   Nr   r:   rG   r   rH   r   r   r   retrieve_async      	
zMeterService.retrieve_asyncr   c              	   C   rB   )*
        Updates a billing meter.
        r
   r>   rD   rE   r0   r1   rF   rH   r   r   r   update   rJ   zMeterService.updatec              	      rK   )rO   r
   r>   rD   rE   r0   r1   NrL   rH   r   r   r   update_async   rN   zMeterService.update_asyncr   c              	   C   rB   )
        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}/deactivaterE   r0   r1   rF   rH   r   r   r   
deactivate      	zMeterService.deactivatec              	      rK   )rR   r
   r>   rS   rE   r0   r1   NrL   rH   r   r   r   deactivate_async      	
zMeterService.deactivate_asyncr   c              	   C   rB   )}
        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}/reactivaterE   r0   r1   rF   rH   r   r   r   
reactivate  rU   zMeterService.reactivatec              	      rK   )rX   r
   r>   rY   rE   r0   r1   NrL   rH   r   r   r   reactivate_async  rW   zMeterService.reactivate_async)NNr   )__name__
__module____qualname____annotations__r   r'   r   r6   r;   r?   r@   strrI   rM   rP   rQ   rT   rV   rZ   r[   __classcell__r   r   r   r   r   %   s   
 










r   N)!stripe._stripe_servicer   stripe._utilr   typingr   r   	importlibr   typing_extensionsr   stripe._list_objectr   stripe._request_optionsr	   stripe.billing._meterr
   +stripe.billing._meter_event_summary_servicer   *stripe.params.billing._meter_create_paramsr   .stripe.params.billing._meter_deactivate_paramsr   (stripe.params.billing._meter_list_paramsr   .stripe.params.billing._meter_reactivate_paramsr   ,stripe.params.billing._meter_retrieve_paramsr   *stripe.params.billing._meter_update_paramsr   r   r   r   r   r   r   <module>   s,   