o
    in                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ erLd 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 G dd deZdS )    )StripeService)sanitize_id)Optionalcast)TYPE_CHECKING)
ListObject)RequestOptions)TestClockAdvanceParams)TestClockCreateParams)TestClockDeleteParams)TestClockListParams)TestClockRetrieveParams)	TestClockc                	   @   st  e Z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"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dded ddfddZ	d#deddded ddfd d!ZdS )$TestClockServiceN
test_clockparamsr   optionsr   returnr   c              	   C   &   t d| jddjt|dd||dS )'
        Deletes a test clock.
        r   delete)/v1/test_helpers/test_clocks/{test_clock}r   apibase_addressr   r   r   _requestformatr   selfr   r   r    r!   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/test_helpers/_test_clock_service.pyr         	zTestClockService.deletec              	      .   t d| jddjt|dd||dI dH S )r   r   r   r   r   r   r   Nr   _request_asyncr   r   r   r!   r!   r"   delete_async4      	
zTestClockService.delete_asyncr   c              	   C   r   ))
        Retrieves a test clock.
        r   getr   r   r   r   r   r   r!   r!   r"   retrieveJ   r#   zTestClockService.retrievec              	      r$   )r)   r   r*   r   r   r   r   Nr%   r   r!   r!   r"   retrieve_async`   r(   zTestClockService.retrieve_asyncr   ListObject[TestClock]c              	   C      t d| jddd||dS )5
        Returns a list of your test clocks.
        r-   r*   /v1/test_helpers/test_clocksr   r   r   r   r    r   r   r!   r!   r"   listv      zTestClockService.listc              	      "   t d| jddd||dI dH S )r/   r-   r*   r0   r   r   Nr   r&   r2   r!   r!   r"   
list_async      
zTestClockService.list_asyncr
   c              	   C   r.   )\
        Creates a new test clock that can be attached to new customers and quotes.
        r   postr0   r   r   r1   r2   r!   r!   r"   create   r4   zTestClockService.createc              	      r5   )r9   r   r:   r0   r   r   Nr6   r2   r!   r!   r"   create_async   r8   zTestClockService.create_asyncr	   c              	   C   r   )
        Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready.
        r   r:   1/v1/test_helpers/test_clocks/{test_clock}/advancer   r   r   r   r   r!   r!   r"   advance   r#   zTestClockService.advancec              	      r$   )r=   r   r:   r>   r   r   r   Nr%   r   r!   r!   r"   advance_async   r(   zTestClockService.advance_async)NN)N)__name__
__module____qualname__strr   r   r'   r+   r,   r3   r7   r;   r<   r?   r@   r!   r!   r!   r"   r      s    








r   N)stripe._stripe_servicer   stripe._utilr   typingr   r   typing_extensionsr   stripe._list_objectr   stripe._request_optionsr   5stripe.params.test_helpers._test_clock_advance_paramsr	   4stripe.params.test_helpers._test_clock_create_paramsr
   4stripe.params.test_helpers._test_clock_delete_paramsr   2stripe.params.test_helpers._test_clock_list_paramsr   6stripe.params.test_helpers._test_clock_retrieve_paramsr   stripe.test_helpers._test_clockr   r   r!   r!   r!   r"   <module>   s   