o
    i2                     @   s   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
 d dlmZmZmZ er6d dlmZ d dlmZ G dd	 d	ed	 ed	 Zd
S )    )SingletonAPIResource)StripeObject)UpdateableAPIResource)ClassVarListOptionalcast)LiteralUnpackTYPE_CHECKING)SettingsModifyParams)SettingsRetrieveParamsc                   @   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d< 	 ed ed< 	 ed ed< 	 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 dd fddZeded dd fddZedd Ze	e
edZd S )!Settingsz
    You can use Tax `Settings` to manage configurations used by Stripe Tax calculations.

    Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api)
    ztax.settingsOBJECT_NAMEc                   @   s:   e Zd ZU ed ed< 	 eed  ed< 	 ee ed< dS )zSettings.Defaults)anrokavalaraspherestripeprovider)	exclusive	inclusiveinferred_by_currencytax_behaviortax_codeN)__name__
__module____qualname__r	   __annotations__r   str r   r   t/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/tax/_settings.pyDefaults   s   
 r!   c                   @   s.   e Zd ZU G dd deZeed< deiZdS )zSettings.HeadOfficec                   @   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Settings.HeadOffice.Addresscitycountryline1line2postal_codestateN)r   r   r   r   r   r   r   r   r   r    Address-   s   
 r(   addressN)r   r   r   r   r(   r   _inner_class_typesr   r   r   r    
HeadOffice,   s   
 r+   c                   @   sP   e Zd ZU G dd deZG dd deZee ed< ee ed< eedZdS )	zSettings.StatusDetailsc                   @   s   e Zd ZdS )zSettings.StatusDetails.ActiveN)r   r   r   r   r   r   r    ActiveK   s    r,   c                   @   s   e Zd ZU eee  ed< dS )zSettings.StatusDetails.Pendingmissing_fieldsN)r   r   r   r   r   r   r   r   r   r   r    PendingN   s   
 r.   activependingr/   r0   N)	r   r   r   r   r,   r.   r   r   r*   r   r   r   r    StatusDetailsJ   s   
 r2   defaultshead_officelivemodeobjectr1   statusstatus_detailsparamsr   returnc                 K   s   t d| jd|  |dS )
        Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
        r   postr9   )r   _static_request	class_urlclsr9   r   r   r    modifyk   s   zSettings.modifyc                    s"   t d| jd|  |dI dH S )r;   r   r<   r=   N)r   _static_request_asyncr?   r@   r   r   r    modify_asyncy   s   
zSettings.modify_asyncr   c                 K   s   | di |}|   |S z8
        Retrieves Tax Settings for a merchant.
        N)N)refreshrA   r9   instancer   r   r    retrieve   s   zSettings.retrievec                    s"   | di |}|  I dH  |S rE   )refresh_asyncrG   r   r   r    retrieve_async   s   zSettings.retrieve_asyncc                 C   s   dS )Nz/v1/tax/settingsr   )rA   r   r   r    r?      s   zSettings.class_url)r3   r4   r8   N)r   r   r   __doc__r   r   r	   r   r   r!   r+   r2   r   boolclassmethodr
   rB   rD   rI   rK   r?   r*   r   r   r   r    r      sT   
 



r   N)stripe._singleton_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   typingr   r   r   r   typing_extensionsr	   r
   r   )stripe.params.tax._settings_modify_paramsr   +stripe.params.tax._settings_retrieve_paramsr   r   r   r   r   r    <module>   s   
