a
    g^,                     @   sx   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mZ d dlmZmZmZ G dd	 d	eZd
S )    )
ListObject)RequestOptions)StripeService)sanitize_id)Location)DictListcast)LiteralNotRequired	TypedDictc                   @   s|  e Zd 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
i i fedeedddZi i fedeedddZi i fedeedddZi i fedeedddZi i fedeedddZi i fedeedddZi i fdeee d d!d"Zi i fdeee d d#d$Zi fd%eed d&d'Zi fd%eed d(d)Zd*S )+LocationServicec                   @   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 )	LocationService.CreateParams#LocationService.CreateParamsAddressaddressconfiguration_overridesdisplay_nameexpandLiteral['']|Dict[str, str]metadataN)__name__
__module____qualname____annotations__r   strr    r   r   o/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/stripe/terminal/_location_service.pyCreateParams   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   citycountryline1line2postal_codestateNr   r   r   r   r   r   r   r   r   r   CreateParamsAddress#   s   
r%   c                   @   s   e Zd ZdS )LocationService.DeleteParamsN)r   r   r   r   r   r   r   DeleteParams=   s   r'   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 )LocationService.ListParamsZending_beforer   limitZstarting_afterN)r   r   r   r   r   r   r   intr   r   r   r   
ListParams@   s
   
r+   c                   @   s   e Zd ZU eee  ed< dS )LocationService.RetrieveParamsr   N)r   r   r   r   r   r   r   r   r   r   r   RetrieveParamsR   s   
r-   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 )
LocationService.UpdateParams#LocationService.UpdateParamsAddressr   zLiteral['']|strr   r   r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   UpdateParamsX   s   
r0   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 )r/   r   r   r    r!   r"   r#   Nr$   r   r   r   r   UpdateParamsAddressn   s   
r1   r&   )locationparamsoptionsreturnc              	   C   s&   t t| jddjt|dd||dS ),
        Deletes a Location object.
        delete!/v1/terminal/locations/{location}r2   apiZbase_addressr3   r4   r	   r   _requestformatr   selfr2   r3   r4   r   r   r   r7      s    	zLocationService.deletec              	      s,   t t| jddjt|dd||dI dH S )r6   r7   r8   r9   r:   r;   Nr	   r   _request_asyncr>   r   r?   r   r   r   delete_async   s    	
zLocationService.delete_asyncr,   c              	   C   s&   t t| jddjt|dd||dS ).
        Retrieves a Location object.
        getr8   r9   r:   r;   r<   r?   r   r   r   retrieve   s    	zLocationService.retrievec              	      s,   t t| jddjt|dd||dI dH S )rD   rE   r8   r9   r:   r;   NrA   r?   r   r   r   retrieve_async   s    	
zLocationService.retrieve_asyncr.   c              	   C   s&   t t| jddjt|dd||dS )
        Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        postr8   r9   r:   r;   r<   r?   r   r   r   update   s    	zLocationService.updatec              	      s,   t t| jddjt|dd||dI dH S )rH   rI   r8   r9   r:   r;   NrA   r?   r   r   r   update_async   s    	
zLocationService.update_asyncr(   )r3   r4   r5   c              	   C   s   t tt | jddd||dS )5
        Returns a list of Location objects.
        rE   /v1/terminal/locationsr:   r;   )r	   r   r   r=   r@   r3   r4   r   r   r   list  s    zLocationService.listc              	      s$   t tt | jddd||dI dH S )rL   rE   rM   r:   r;   N)r	   r   r   rB   rN   r   r   r   
list_async  s    
zLocationService.list_asyncr   c              	   C   s   t t| jdd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.
        rI   rM   r:   r;   )r	   r   r=   rN   r   r   r   create2  s    	zLocationService.createc              	      s    t t| jddd||dI dH S )rQ   rI   rM   r:   r;   N)r	   r   rB   rN   r   r   r   create_asyncF  s    	
zLocationService.create_asyncN)r   r   r   r   r   r%   r'   r+   r-   r0   r1   r   r   r   r7   rC   rF   rG   rJ   rK   r   rO   rP   rR   rS   r   r   r   r   r      s   r   N)Zstripe._list_objectr   Zstripe._request_optionsr   Zstripe._stripe_servicer   Zstripe._utilr   Zstripe.terminal._locationr   typingr   r   r	   Ztyping_extensionsr
   r   r   r   r   r   r   r   <module>   s   