o
    rN)j49                     @   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mZ d dlmZmZmZmZmZ d dlmZmZmZ erpd 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& G dd ded ed Z'dS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)class_method_variantsanitize_id)ClassVarListOptionalcastoverload)LiteralUnpackTYPE_CHECKING)Customer)Meter)AlertActivateParams)AlertArchiveParams)AlertCreateParams)AlertDeactivateParams)AlertListParams)AlertRetrieveParamsc                   @   s  e Zd ZU dZdZeed  ed< G dd deZ	ed ed< 	 e
ed< 	 eed	< 	 ed ed
< 	 eed  ed< 	 e
ed< 	 ee	 ed< 	 ede
ded dd fddZeede
ded dd fddZeded dd fddZedded dd fddZede
ded dd fddZeede
ded dd fddZeded dd fddZedded dd fddZede
ded dd fd d!Zeede
ded dd fd"d#Zeded dd fd$d#Zed%ded dd fd&d#Zede
ded dd fd'd(Zeede
ded dd fd)d*Zeded dd fd+d*Zed,ded dd fd-d*Zeded. dd fd/d0Zeded. dd fd1d2Zede
ded3 dd fd4d5Zeede
ded3 dd fd6d7Zeded3 dd fd8d7Zed9ded3 dd fd:d7Zede
ded3 dd fd;d<Zeede
ded3 dd fd=d>Zeded3 dd fd?d>Zed@ded3 dd fdAd>ZededB de d  fdCdDZ!ededB de d  fdEdFZ"ede
dedG dd fdHdIZ#ede
dedG dd fdJdKZ$de	iZ%dLS )MAlertz
    A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests.
    zbilling.alertOBJECT_NAMEc                   @   s^   e Zd ZU G dd deZeee  ed< 	 eed< 	 e	d ed< 	 e
d ed< 	 deiZd	S )
zAlert.UsageThresholdc                   @   s,   e Zd ZU eed  ed< 	 ed ed< dS )zAlert.UsageThreshold.Filterr   customertypeN)__name__
__module____qualname__r   r   __annotations__r    r!   r!   v/var/www/html/finance.cargoinsureonline.com/_shared/backend-venv/lib/python3.10/site-packages/stripe/billing/_alert.pyFilter%   s   
 r#   filtersgter   meterone_time
recurrenceN)r   r   r   r   r#   r   r
   r    intr   r   _inner_class_typesr!   r!   r!   r"   UsageThreshold$   s   
 r+   usage_threshold
alert_typeidlivemodeobject)activearchivedinactivestatustitleparamsr   returnc                 K   "   t d| jddjt|d|dS )G
        Reactivates this alert, allowing it to trigger again.
        r   post /v1/billing/alerts/{id}/activater.   r6   r   _static_requestformatr   clsr.   r6   r!   r!   r"   _cls_activate[      zAlert._cls_activatec                 K      dS r9   Nr!   r.   r6   r!   r!   r"   activatek      zAlert.activatec                 K   rE   rF   r!   selfr6   r!   r!   r"   rH   s      rC   c              	   K   *   t d| jddjt| jdd|dS )r9   r   r:   r;   r.   r<   r=   r   _requestr@   r   _datagetrJ   r!   r!   r"   rH   z      c                    *   t d| jddjt|d|dI dH S )r9   r   r:   r;   r<   r=   Nr   _static_request_asyncr@   r   rA   r!   r!   r"   _cls_activate_async      
zAlert._cls_activate_asyncc                       dS rF   r!   rG   r!   r!   r"   activate_async      zAlert.activate_asyncc                    rX   rF   r!   rJ   r!   r!   r"   rY         rV   c              	      2   t d| jddjt| jdd|dI dH S )r9   r   r:   r;   r.   r<   r=   Nr   _request_asyncr@   r   rP   rQ   rJ   r!   r!   r"   rY         
r   c                 K   r8   )g
        Archives this alert, removing it from the list view and APIs. This is non-reversible.
        r   r:   /v1/billing/alerts/{id}/archiver<   r=   r>   rA   r!   r!   r"   _cls_archive   rD   zAlert._cls_archivec                 K   rE   r`   Nr!   rG   r!   r!   r"   archive   rI   zAlert.archivec                 K   rE   rc   r!   rJ   r!   r!   r"   rd      rL   rb   c              	   K   rM   )r`   r   r:   ra   r.   r<   r=   rN   rJ   r!   r!   r"   rd      rR   c                    rS   )r`   r   r:   ra   r<   r=   NrT   rA   r!   r!   r"   _cls_archive_async   rW   zAlert._cls_archive_asyncc                    rX   rc   r!   rG   r!   r!   r"   archive_async  rZ   zAlert.archive_asyncc                    rX   rc   r!   rJ   r!   r!   r"   rf     r[   re   c              	      r\   )r`   r   r:   ra   r.   r<   r=   Nr]   rJ   r!   r!   r"   rf     r_   r   c                 K   s   t d| jd|  |dS ))
        Creates a billing alert
        r   r:   r=   )r   r?   	class_urlrB   r6   r!   r!   r"   create'  s   zAlert.createc                    s"   t d| jd|  |dI dH S )rg   r   r:   r=   N)r   rU   rh   ri   r!   r!   r"   create_async5  s   
zAlert.create_asyncr   c                 K   r8   )H
        Deactivates this alert, preventing it from triggering.
        r   r:   "/v1/billing/alerts/{id}/deactivater<   r=   r>   rA   r!   r!   r"   _cls_deactivateE  s   zAlert._cls_deactivatec                 K   rE   rl   Nr!   rG   r!   r!   r"   
deactivateW  s   zAlert.deactivatec                 K   rE   ro   r!   rJ   r!   r!   r"   rp   a  rL   rn   c              	   K   rM   )rl   r   r:   rm   r.   r<   r=   rN   rJ   r!   r!   r"   rp   h  rR   c                    rS   )rl   r   r:   rm   r<   r=   NrT   rA   r!   r!   r"   _cls_deactivate_asyncz  s   
zAlert._cls_deactivate_asyncc                    rX   ro   r!   rG   r!   r!   r"   deactivate_async  rZ   zAlert.deactivate_asyncc                    rX   ro   r!   rJ   r!   r!   r"   rr     r[   rq   c              	      r\   )rl   r   r:   rm   r.   r<   r=   Nr]   rJ   r!   r!   r"   rr     r_   r   c                 K   s4   | j d|  |d}t|tstdt|j |S ):
        Lists billing active and inactive alerts
        rQ   r=   %Expected list object from API, got %s)r?   rh   
isinstancer   	TypeErrorr   r   rB   r6   resultr!   r!   r"   list  s   
z
Alert.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rs   rQ   r=   Nrt   )rU   rh   ru   r   rv   r   r   rw   r!   r!   r"   
list_async  s   
zAlert.list_asyncr   c                 K   s   | |fi |}|   |S )7
        Retrieves a billing alert given an ID
        )refreshrB   r.   r6   instancer!   r!   r"   retrieve  s   zAlert.retrievec                    s$   | |fi |}|  I dH  |S )r{   N)refresh_asyncr}   r!   r!   r"   retrieve_async  s   zAlert.retrieve_asyncN)&r   r   r   __doc__r   r	   r   r    r   r+   strboolr   classmethodr   rC   r   staticmethodrH   r   rV   rY   rb   rd   re   rf   rj   rk   rn   rp   rq   rr   r   ry   rz   r   r   r*   r!   r!   r!   r"   r      s  
 

r   N)(stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._utilr   r   typingr	   r
   r   r   r   typing_extensionsr   r   r   stripe._customerr   stripe.billing._meterr   ,stripe.params.billing._alert_activate_paramsr   +stripe.params.billing._alert_archive_paramsr   *stripe.params.billing._alert_create_paramsr   .stripe.params.billing._alert_deactivate_paramsr   (stripe.params.billing._alert_list_paramsr   ,stripe.params.billing._alert_retrieve_paramsr   r   r!   r!   r!   r"   <module>   s$   