o
    Bi[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ded dd fd d!Ze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/d0Z!eded% dd fd1d0Z!ed2ded% dd fd3d0Z!eded4 de"d  fd5d6Z#eded4 de"d  fd7d8Z$ededed9 dd fd:d;Z%ededed9 dd fd<d=Z&ededed> dd fd?d@Z'ededed> dd f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                   @   `   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#   Y/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/terminal/_location.pyAddress      
 r%   c                   @   sN   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                   @   s\   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   
 r1   c                   @   s   e Zd ZdS )Location.DeleteParamsN)r   r   r    r#   r#   r#   r$   DeleteParamsg   s    r3   c                   @   sH   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.ListParamsending_beforer,   limitstarting_afterN)r   r   r    r   r!   r"   r   intr#   r#   r#   r$   
ListParamsj   s   
 r9   c                   @   sV   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   
 r<   c                   @   r   )r;   r   r   r   r   r   r   Nr0   r#   r#   r#   r$   ModifyParamsAddress   r&   r=   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+   idlivemoder.   objectTdeletedparamsr'   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rD   )r   _static_request	class_urlclsrD   r#   r#   r$   create   s   zLocation.createc                    s"   t d| jd|  |dI dH S )rF   r   rG   rH   N)r   _static_request_asyncrJ   rK   r#   r#   r$   create_async   s   
zLocation.create_asyncsidr2   c                 K   *   d|   t|f }td| jd||dS ),
        Deletes a Location object.
        %s/%sr   deleterH   rJ   r
   r   rI   rL   rP   rD   urlr#   r#   r$   _cls_delete      zLocation._cls_deletec                 K      dS rR   Nr#   rP   rD   r#   r#   r$   rT     s   zLocation.deletec                 K   rZ   r[   r#   selfrD   r#   r#   r$   rT     s   rX   c                 K   s   | j d|  |dS )rR   rT   rH   )_request_and_refreshinstance_urlr]   r#   r#   r$   rT     s
   c                    2   d|   t|f }td| jd||dI dH S )rR   rS   r   rT   rH   NrJ   r
   r   rN   rV   r#   r#   r$   _cls_delete_async     
zLocation._cls_delete_asyncc                       dS r[   r#   r\   r#   r#   r$   delete_async0  s   zLocation.delete_asyncc                    re   r[   r#   r]   r#   r#   r$   rf   :  s   rc   c                    s   | j d|  |dI dH S )rR   rT   rH   N)_request_and_refresh_asyncr`   r]   r#   r#   r$   rf   C  s   r4   c                 K   s4   | j d|  |d}t|tstdt|j |S )5
        Returns a list of Location objects.
        getrH   %Expected list object from API, got %s)rI   rJ   
isinstancer   	TypeErrortyper   rL   rD   resultr#   r#   r$   listP  s   
zLocation.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rh   ri   rH   Nrj   )rN   rJ   rk   r   rl   rm   r   rn   r#   r#   r$   
list_asyncd  s   
zLocation.list_asyncr:   c                 K   rQ   )
        Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        rS   r   rG   rH   rU   rL   r@   rD   rW   r#   r#   r$   modifyx  rY   zLocation.modifyc                    ra   )rr   rS   r   rG   rH   Nrb   rs   r#   r#   r$   modify_async  rd   zLocation.modify_asyncr>   c                 K   s   | |fi |}|   |S ).
        Retrieves a Location object.
        )refreshrL   r@   rD   instancer#   r#   r$   retrieve  s   zLocation.retrievec                    s$   | |fi |}|  I dH  |S )rv   N)refresh_asyncrx   r#   r#   r$   retrieve_async  s   zLocation.retrieve_asyncN)*r   r   r    __doc__r   r   r   r"   r   r%   r   r/   r   r1   r3   r9   r<   r=   r?   r   r!   boolr   classmethodr   rM   rO   rX   r   staticmethodrT   r	   rc   rf   r   rp   rq   rt   ru   rz   r|   _inner_class_typesr#   r#   r#   r$   r      s
  
 

r   N)stripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr	   r
   typingr   r   r   r   r   r   typing_extensionsr   r   r   r   r   r#   r#   r#   r$   <module>   s     
