o
    i#                     @   s   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mZmZmZ d dlmZmZmZ erTd d	lmZ d d
lmZ d dlmZ d dlmZ G dd ded ed e	d ZdS )    )CreateableAPIResource)
ListObject)ListableAPIResource)StripeObject)UpdateableAPIResource)sanitize_id)ClassVarDictOptionalcast)LiteralUnpackTYPE_CHECKING)TaxRateCreateParams)TaxRateListParams)TaxRateModifyParams)TaxRateRetrieveParamsc                   @   s  e Zd ZU dZdZeed  ed< G dd deZ	e
ed< 	 ee ed< 	 eed< 	 ee ed	< 	 eed
< 	 ee ed< 	 ee	 ed< 	 eed< 	 e
ed< 	 ee ed< 	 eed  ed< 	 e
ed< 	 eeeef  ed< 	 ed ed< 	 eed< 	 eed  ed< 	 ee ed< 	 eed  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ed  fd#d$Zeded" ded  fd%d&Zededed' dd fd(d)Zededed' dd fd*d+Zededed, dd fd-d.Zededed, dd fd/d0Zde	iZd1S )2TaxRatea^  
    Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax.

    Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates)
    tax_rateOBJECT_NAMEc                   @   s    e Zd ZU eed< 	 eed< dS )zTaxRate.FlatAmountamountcurrencyN)__name__
__module____qualname__int__annotations__str r   r   p/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_tax_rate.py
FlatAmount    s
   
 r    activecountrycreateddescriptiondisplay_nameeffective_percentageflat_amountid	inclusivejurisdiction)cityr"   countydistrictmultiplestatejurisdiction_levellivemodemetadataobject
percentage)r'   r4   	rate_typer/   )amusement_taxcommunications_taxgsthstigstjct	lease_taxpstqstretail_delivery_feerst	sales_taxservice_taxvattax_typeparamsr   returnc                 K   s   t d| jd|  |dS ))
        Creates a new tax rate.
        r   postrE   )r   _static_request	class_urlclsrE   r   r   r   create   s   zTaxRate.createc                    s"   t d| jd|  |dI dH S )rG   r   rH   rI   N)r   _static_request_asyncrK   rL   r   r   r   create_async   s   
zTaxRate.create_asyncr   c                 K   s4   | j d|  |d}t|tstdt|j |S )
        Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first.
        getrI   %Expected list object from API, got %s)rJ   rK   
isinstancer   	TypeErrortyper   rM   rE   resultr   r   r   list   s   
zTaxRate.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rQ   rR   rI   NrS   )rO   rK   rT   r   rU   rV   r   rW   r   r   r   
list_async   s   
zTaxRate.list_asyncr   c                 K   s*   d|   t|f }td| jd||dS )/
        Updates an existing tax rate.
        %s/%sr   rH   rI   )rK   r   r   rJ   rM   r(   rE   urlr   r   r   modify   s   zTaxRate.modifyc                    s2   d|   t|f }td| jd||dI dH S )r[   r\   r   rH   rI   N)rK   r   r   rO   r]   r   r   r   modify_async   s   
zTaxRate.modify_asyncr   c                 K   s   | |fi |}|   |S )8
        Retrieves a tax rate with the given ID
        )refreshrM   r(   rE   instancer   r   r   retrieve   s   zTaxRate.retrievec                    s$   | |fi |}|  I dH  |S )ra   N)refresh_asyncrc   r   r   r   retrieve_async   s   zTaxRate.retrieve_asyncN)r   r   r   __doc__r   r   r   r   r   r    boolr
   r   r   floatr	   classmethodr   rN   rP   r   rY   rZ   r_   r`   re   rg   _inner_class_typesr   r   r   r   r      s   
 


r   N)stripe._createable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr   typingr   r	   r
   r   typing_extensionsr   r   r   %stripe.params._tax_rate_create_paramsr   #stripe.params._tax_rate_list_paramsr   %stripe.params._tax_rate_modify_paramsr   'stripe.params._tax_rate_retrieve_paramsr   r   r   r   r   r   <module>   s$   
