a
    g@6                     @   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 d dlmZmZ d d	lmZmZmZmZmZmZ d d
lmZmZmZmZ G dd ded ed ed ed ZdS )    )CreateableAPIResource)DeletableAPIResource)
ListObject)ListableAPIResource)RequestOptions)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackc                   @   s  e Zd ZU dZdZeed  ed< 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e	ed< ee ed< eed< eed< eed< eeef ed< ed ed< eed  ed< eed d ddd Zeed d dd!d"Zeeed# d d$d%d&Zeeeed# d d$d'd(Zeed# d dd)d(Zed*ed# d dd+d(Zeeed# d d$d,d-Z eeeed# d d$d.d/Z!eed# d dd0d/Z!ed1ed# d dd2d/Z!eed3 e"d  dd4d5Z#eed3 e"d  dd6d7Z$eeed8 d d9d:d;Z%eeed8 d d9d<d=Z&eeed> d d9d?d@Z'eeed> d d9dAdBZ(de	iZ)dCS )DLocationz
    A Location represents a grouping of readers.

    Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)
    zterminal.locationOBJECT_NAMEc                   @   sV   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< ee ed< dS )zLocation.Addresscitycountryline1line2postal_codestateN)__name__
__module____qualname__r   str__annotations__ r"   r"   g/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/stripe/terminal/_location.pyAddress   s   
r$   c                   @   sF   e Zd ZU ded< ee ed< eed< eee  ed< ed ed< dS )	Location.CreateParamsLocation.CreateParamsAddressaddressconfiguration_overridesdisplay_nameexpandLiteral['']|Dict[str, str]metadataN)r   r   r   r!   r   r    r   r"   r"   r"   r#   CreateParams7   s   
r-   c                   @   sR   e Zd ZU ee ed< eed< ee ed< ee ed< ee ed< ee ed< dS )r&   r   r   r   r   r   r   Nr   r   r   r   r    r!   r"   r"   r"   r#   CreateParamsAddressM   s   
r/   c                   @   s   e Zd ZdS )Location.DeleteParamsN)r   r   r   r"   r"   r"   r#   DeleteParamsg   s   r1   c                   @   sB   e Zd ZU ee ed< eee  ed< ee ed< ee ed< dS )Location.ListParamsZending_beforer*   limitZstarting_afterN)r   r   r   r   r    r!   r   intr"   r"   r"   r#   
ListParamsj   s
   
r5   c                   @   sN   e Zd ZU ed ed< ed ed< ee ed< eee  ed< ed ed< d	S )
Location.ModifyParamsLocation.ModifyParamsAddressr'   zLiteral['']|strr(   r)   r*   r+   r,   N)r   r   r   r   r!   r    r   r"   r"   r"   r#   ModifyParams|   s   
r8   c                   @   sV   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< ee ed< dS )r7   r   r   r   r   r   r   Nr.   r"   r"   r"   r#   ModifyParamsAddress   s   
r9   c                   @   s   e Zd ZU eee  ed< dS )Location.RetrieveParamsr*   N)r   r   r   r   r   r    r!   r"   r"   r"   r#   RetrieveParams   s   
r;   r'   r(   r)   idZlivemoder,   objectTZdeletedr%   )paramsreturnc                 K   s   t d| jd|  |dS )
        Creates a new Location object.
        For further details, including which address fields are required in each country, see the [Manage locations](https://stripe.com/docs/terminal/fleet/locations) guide.
        r   postr>   )r   _static_request	class_urlclsr>   r"   r"   r#   create   s    zLocation.createc                    s    t d| jd|  |dI dH S )r@   r   rA   rB   N)r   _static_request_asyncrD   rE   r"   r"   r#   create_async   s    
zLocation.create_asyncr0   )sidr>   r?   c                 K   s*   d|   t|f }td| jd||dS ),
        Deletes a Location object.
        %s/%sr   deleterB   rD   r
   r   rC   rF   rJ   r>   urlr"   r"   r#   _cls_delete   s    zLocation._cls_deletec                 K   s   dS rK   Nr"   rJ   r>   r"   r"   r#   rM     s    zLocation.deletec                 K   s   dS rR   r"   selfr>   r"   r"   r#   rM     s    rQ   c                 K   s   | j d|  |dS )rK   rM   rB   )Z_request_and_refreshinstance_urlrT   r"   r"   r#   rM     s
    c                    s0   d|   t|f }td| jd||dI dH S )rK   rL   r   rM   rB   NrD   r
   r   rH   rO   r"   r"   r#   _cls_delete_async  s    
zLocation._cls_delete_asyncc                    s   dS rR   r"   rS   r"   r"   r#   delete_async0  s    zLocation.delete_asyncc                    s   dS rR   r"   rT   r"   r"   r#   rY   :  s    rX   c                    s   | j d|  |dI dH S )rK   rM   rB   N)Z_request_and_refresh_asyncrV   rT   r"   r"   r#   rY   C  s
    r2   c                 K   s4   | j d|  |d}t|ts0tdt|j |S )5
        Returns a list of Location objects.
        getrB   %Expected list object from API, got %s)rC   rD   
isinstancer   	TypeErrortyper   rF   r>   resultr"   r"   r#   listP  s    
zLocation.listc                    s:   | j d|  |dI dH }t|ts6tdt|j |S )rZ   r[   rB   Nr\   )rH   rD   r]   r   r^   r_   r   r`   r"   r"   r#   
list_asyncd  s    
zLocation.list_asyncr6   )r<   r>   r?   c                 K   s*   d|   t|f }td| jd||dS )
        Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        rL   r   rA   rB   rN   rF   r<   r>   rP   r"   r"   r#   modifyx  s    zLocation.modifyc                    s0   d|   t|f }td| jd||dI dH S )rd   rL   r   rA   rB   NrW   re   r"   r"   r#   modify_async  s    
zLocation.modify_asyncr:   c                 K   s   | |fi |}|   |S ).
        Retrieves a Location object.
        )refreshrF   r<   r>   instancer"   r"   r#   retrieve  s    zLocation.retrievec                    s"   | |fi |}|  I dH  |S )rh   N)Zrefresh_asyncrj   r"   r"   r#   retrieve_async  s    zLocation.retrieve_asyncN)*r   r   r   __doc__r   r   r   r!   r   r$   r   r-   r   r/   r1   r5   r8   r9   r;   r   r    boolr   classmethodr   rG   rI   rQ   r   staticmethodrM   r	   rX   rY   r   rb   rc   rf   rg   rl   rm   Z_inner_class_typesr"   r"   r"   r#   r      s   


r   N)Zstripe._createable_api_resourcer   Zstripe._deletable_api_resourcer   Zstripe._list_objectr   Zstripe._listable_api_resourcer   Zstripe._request_optionsr   Zstripe._stripe_objectr   Zstripe._updateable_api_resourcer   Zstripe._utilr	   r
   typingr   r   r   r   r   r   Ztyping_extensionsr   r   r   r   r   r"   r"   r"   r#   <module>   s    
