o
    i+                     @   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mZmZ d d	lmZmZmZ erdd 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 ed ed Z#dS )    )CreateableAPIResource)DeletableAPIResource)
ListObject)ListableAPIResource)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictOptionalcastoverload)LiteralUnpackTYPE_CHECKING)LocationCreateParams)LocationDeleteParams)LocationListParams)LocationModifyParams)LocationRetrieveParamsc                   @   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e	ed
< ee
 ed< ee ed< ee ed< 	 eed  ed< 	 eed< 	 ee ed< 	 ee ed< 	 eed< 	 eed< 	 eeef ed< 	 ed ed< 	 e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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ed  fd0d1Zeded/ ded  fd2d3Zededed4 dd fd5d6Zededed4 d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	e
ed>Z"d?S )@Locationz
    A Location represents a grouping of readers.

    Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)
    zterminal.locationOBJECT_NAMEc                   @   s`   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/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/terminal/_location.pyAddress+   s   
 r'   c                   @   n   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< 	 ee ed< dS )	zLocation.AddressKanar   r   r   r   r   r   townNr   r%   r%   r%   r&   AddressKanaE      
 r*   c                   @   r(   )	zLocation.AddressKanjir   r   r   r   r   r   r)   Nr   r%   r%   r%   r&   AddressKanjic   r+   r,   addressaddress_kanaaddress_kanjiconfiguration_overridesTdeleteddisplay_namedisplay_name_kanadisplay_name_kanjiidlivemodemetadataobjectphone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://docs.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   r=   r>   N)r   _static_request_asyncr@   rA   r%   r%   r&   create_async   s   
zLocation.create_asyncsidr   c                 K   *   d|   t|f }td| jd||dS ),
        Deletes a Location object.
        %s/%sr   deleter>   r@   r	   r   r?   rB   rF   r:   urlr%   r%   r&   _cls_delete      zLocation._cls_deletec                 K      dS rH   Nr%   rF   r:   r%   r%   r&   rJ      s   zLocation.deletec                 K   rP   rQ   r%   selfr:   r%   r%   r&   rJ      s   rN   c                 K   s   | j d|  |dS )rH   rJ   r>   )_request_and_refreshinstance_urlrS   r%   r%   r&   rJ      s
   c                    2   d|   t|f }td| jd||dI dH S )rH   rI   r   rJ   r>   Nr@   r	   r   rD   rL   r%   r%   r&   _cls_delete_async      
zLocation._cls_delete_asyncc                       dS rQ   r%   rR   r%   r%   r&   delete_async  s   zLocation.delete_asyncc                    r[   rQ   r%   rS   r%   r%   r&   r\     s   rY   c                    s   | j d|  |dI dH S )rH   rJ   r>   N)_request_and_refresh_asyncrV   rS   r%   r%   r&   r\      s   r   c                 K   s4   | j d|  |d}t|tstdt|j |S )5
        Returns a list of Location objects.
        getr>   %Expected list object from API, got %s)r?   r@   
isinstancer   	TypeErrortyper    rB   r:   resultr%   r%   r&   list-  s   
zLocation.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r^   r_   r>   Nr`   )rD   r@   ra   r   rb   rc   r    rd   r%   r%   r&   
list_asyncA  s   
zLocation.list_asyncr   c                 K   rG   )
        Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        rI   r   r=   r>   rK   rB   r5   r:   rM   r%   r%   r&   modifyU  rO   zLocation.modifyc                    rW   )rh   rI   r   r=   r>   NrX   ri   r%   r%   r&   modify_asyncf  rZ   zLocation.modify_asyncr   c                 K   s   | |fi |}|   |S ).
        Retrieves a Location object.
        )refreshrB   r5   r:   instancer%   r%   r&   retrievew  s   zLocation.retrievec                    s$   | |fi |}|  I dH  |S )rl   N)refresh_asyncrn   r%   r%   r&   retrieve_async  s   zLocation.retrieve_async)r-   r.   r/   N)#r    r!   r"   __doc__r   r
   r   r$   r   r'   r*   r,   r   r#   boolr   classmethodr   rC   rE   rN   r   staticmethodrJ   r   rY   r\   r   rf   rg   rj   rk   rp   rr   _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._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr   r	   typingr
   r   r   r   r   typing_extensionsr   r   r   .stripe.params.terminal._location_create_paramsr   .stripe.params.terminal._location_delete_paramsr   ,stripe.params.terminal._location_list_paramsr   .stripe.params.terminal._location_modify_paramsr   0stripe.params.terminal._location_retrieve_paramsr   r   r%   r%   r%   r&   <module>   s*   
