a
    !f+                     @   s   d dl mZmZmZ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mZmZmZmZ d dlmZmZmZmZ d dlmZ G d	d
 d
ed
 ed
 ed
 ed
 ZdS )    )CreateableAPIResourceDeletableAPIResourceListableAPIResourceUpdateableAPIResource)
ListObject)RequestOptions)StripeObject)class_method_variant)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpack)
quote_plusc                	   @   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d7ee ee ee e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d8ee ee ee ed, ed  d-d.d/Z eeed0 d d1d2d3Z!eeed4 d d1d5d6Z"de	iZ#dS )9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/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/terminal/location.pyAddress    s   
r$   c                   @   sB   e Zd ZU ded< ed ed< eed< ed ed< ed ed	< d
S )Location.CreateParamsLocation.CreateParamsAddressaddressr    configuration_overridesdisplay_name	List[str]expandLiteral['']|Dict[str, str]metadataN)r   r   r   r!   r   r    r"   r"   r"   r#   CreateParams:   s   
r.   c                   @   sR   e Zd ZU ed ed< eed< ed ed< ed ed< ed ed< ed ed< dS )	r&   r    r   r   r   r   r   r   N)r   r   r   r   r!   r    r"   r"   r"   r#   CreateParamsAddressP   s   
r/   c                   @   s   e Zd ZdS )Location.DeleteParamsN)r   r   r   r"   r"   r"   r#   DeleteParamsj   s   r1   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )	Location.ListParamsr    Zending_beforer*   r+   intlimitZstarting_afterNr   r   r   r   r!   r"   r"   r"   r#   
ListParamsm   s
   
r6   c                   @   sJ   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed	 ed
< dS )Location.ModifyParamsLocation.ModifyParamsAddressr'   zLiteral['']|strr(   r    r)   r*   r+   r,   r-   Nr5   r"   r"   r"   r#   ModifyParams   s   
r9   c                   @   sV   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ed ed< dS )	r8   r    r   r   r   r   r   r   Nr5   r"   r"   r"   r#   ModifyParamsAddress   s   
r:   c                   @   s   e Zd ZU ed ed< dS )Location.RetrieveParamsr*   r+   Nr5   r"   r"   r"   r#   RetrieveParams   s   
r<   r'   r(   r)   idZlivemoder-   objectTZdeletedNr%   )api_keyidempotency_keystripe_versionstripe_accountparamsreturnc                 K   s    t d| d|  |||||S )z
        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   _static_request	class_url)clsr?   r@   rA   rB   rC   r"   r"   r#   create   s    zLocation.creater0   )sidrC   rD   c                 K   s*   d|   t|f }td| jd||dS ),
        Deletes a Location object.
        %s/%sr   deleterC   rG   r   r   rF   )rH   rJ   rC   urlr"   r"   r#   _cls_delete   s
    zLocation._cls_deletec                 K   s   dS rK   Nr"   )rJ   rC   r"   r"   r#   rM      s    zLocation.delete)rC   rD   c                 K   s   dS rR   r"   selfrC   r"   r"   r#   rM     s    rQ   c                 K   s   | j d|  |dS )rK   rM   rN   )Z_request_and_refreshZinstance_urlrS   r"   r"   r#   rM     s
    r2   )r?   rA   rB   rC   rD   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z5
        Returns a list of Location objects.
        get)r?   rA   rB   rC   z%Expected list object from API, got %s)rF   rG   
isinstancer   	TypeErrortyper   )rH   r?   rA   rB   rC   resultr"   r"   r#   list  s    
zLocation.listr7   )r=   rC   rD   c                 K   s*   d|   t|f }td| jd||dS )z
        Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        rL   r   rE   rN   rO   )rH   r=   rC   rP   r"   r"   r#   modify8  s
    zLocation.modifyr;   c                 K   s   | |fi |}|   |S )z.
        Retrieves a Location object.
        )refresh)rH   r=   rC   instancer"   r"   r#   retrieveE  s    zLocation.retrieve)NNNN)NNN)$r   r   r   __doc__r   r
   r   r!   r   r$   r   r.   r   r/   r1   r6   r9   r:   r<   r   r    boolr   classmethodr   rI   rQ   r   staticmethodrM   r	   r   rZ   r[   r^   Z_inner_class_typesr"   r"   r"   r#   r      s   
       
r   N)Zstripe.api_resources.abstractr   r   r   r   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   Zstripe.utilr	   typingr
   r   r   r   r   r   Ztyping_extensionsr   r   r   r   urllib.parser   r   r"   r"   r"   r#   <module>   s    
