o
    i                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ erFd 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 G dd deZdS )    )StripeService)sanitize_id)Optionalcast)TYPE_CHECKING)
ListObject)RequestOptions)RegistrationCreateParams)RegistrationListParams)RegistrationRetrieveParams)RegistrationUpdateParams)Registrationc                	   @   s0  e Zd Z		dded ded ddfdd	Z		dded ded ddfd
dZ	dddded ddfddZ	dddded ddfddZ		ddeded ded ddfddZ			ddeded ded ddfddZ
		ddeded ded ddfddZ		ddeded ded ddfddZdS )RegistrationServiceNparamsr
   optionsr   returnListObject[Registration]c              	   C      t d| jddd||dS )=
        Returns a list of Tax Registration objects.
        r   get/v1/tax/registrationsapibase_addressr   r   r   _requestselfr   r    r   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/tax/_registration_service.pylist      zRegistrationService.listc              	      "   t d| jddd||dI dH S )r   r   r   r   r   r   Nr   _request_asyncr   r   r   r   
list_async.      
zRegistrationService.list_asyncr	   r   c              	   C   r   )8
        Creates a new Tax Registration object.
        r   postr   r   r   r   r   r   r   r   createA   r!   zRegistrationService.createc              	      r"   )r'   r   r(   r   r   r   Nr#   r   r   r   r   create_asyncT   r&   z RegistrationService.create_asyncidr   c              	   C   &   t d| jddjt|dd||dS )4
        Returns a Tax Registration object.
        r   r   /v1/tax/registrations/{id}r+   r   r   r   r   formatr   r   r+   r   r   r   r   r   retrieveg   s   	zRegistrationService.retrievec              	      .   t d| jddjt|dd||dI dH S )r-   r   r   r.   r/   r   r   Nr   r$   r1   r   r2   r   r   r   retrieve_async{   s   	
z"RegistrationService.retrieve_asyncr   c              	   C   r,   )
        Updates an existing Tax Registration object.

        A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at.
        r   r(   r.   r/   r   r   r0   r2   r   r   r   update   s   zRegistrationService.updatec              	      r4   )r7   r   r(   r.   r/   r   r   Nr5   r2   r   r   r   update_async   s   
z RegistrationService.update_async)NN)N)__name__
__module____qualname__r   r    r%   r)   r*   strr3   r6   r8   r9   r   r   r   r   r      s    






r   N)stripe._stripe_servicer   stripe._utilr   typingr   r   typing_extensionsr   stripe._list_objectr   stripe._request_optionsr   -stripe.params.tax._registration_create_paramsr	   +stripe.params.tax._registration_list_paramsr
   /stripe.params.tax._registration_retrieve_paramsr   -stripe.params.tax._registration_update_paramsr   stripe.tax._registrationr   r   r   r   r   r   <module>   s   