
    +h3                         d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZ d dlmZ  G d ded   ed   ed         Zy	)
    )CreateableAPIResourceListableAPIResourceUpdateableAPIResource)
ListObject)RequestOptions)ClassVarDictListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)
quote_plusc                   x   e Zd ZU dZdZeed      ed<   er7 G d de	      Z
 G d de	      Z G d d	e      Z G d
 de	      Z G 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d<   	 eed<   	 ee   ed<   	 eed<   	 eeeef      ed<   	 ed   ed<   	 eed<   	 ee   ed<   	 eed      ed<   	 e	 	 	 	 d-dee   d ee   d!ee   d"ee   d#ed$   d%d fd&       Ze	 	 	 d.dee   d!ee   d"ee   d#ed'   d%ed    f
d(       Zeded#ed)   d%d fd*       Zeded#ed+   d%d fd,       Zy)/TaxRatean  
    Tax rates can be applied to [invoices](https://stripe.com/docs/billing/invoices/tax-rates), [subscriptions](https://stripe.com/docs/billing/subscriptions/taxes) and [Checkout Sessions](https://stripe.com/docs/payments/checkout/set-up-a-subscription#tax-rates) to collect tax.

    Related guide: [Tax rates](https://stripe.com/docs/billing/taxes/tax-rates)
    tax_rateOBJECT_NAMEc                       e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   	 eed<   	 ed   ed<   	 eed	<   	 ed   ed
<   	 ed   ed<   	 eed<   	 ed   ed<   	 ed   ed<   y)TaxRate.CreateParamsboolactivestrcountrydescriptiondisplay_name	List[str]expand	inclusivejurisdictionzDict[str, str]metadata
percentagestateLiteral['amusement_tax', 'communications_tax', 'gst', 'hst', 'igst', 'jct', 'lease_tax', 'pst', 'qst', 'rst', 'sales_tax', 'service_tax', 'vat']tax_typeN)__name__
__module____qualname__r   __annotations__r   r   float     P/var/www/html/venv/lib/python3.12/site-packages/stripe/api_resources/tax_rate.pyCreateParamsr   #   s    '' !'' %U++   ,, O &e,, ""233  u%% " c r.   r0   c                       e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed	<   	 ed
   ed<   	 ed   ed<   y)TaxRate.ListParamsr   r   zTaxRate.ListParamsCreated|intcreatedr   ending_beforer   r    r!   intlimitstarting_afterNr(   r)   r*   r   r+   r-   r.   r/   
ListParamsr2   S   s    '' !!@AA 'u--  ,, #6** u%% (..r.   r9   c                   T    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed<   y)TaxRate.ListParamsCreatedr5   gtgteltlteNr8   r-   r.   r/   ListParamsCreatedr;   q   sH    E"" U## E"" U##r.   r@   c                       e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed	<   	 ed
   ed<   	 ed   ed<   	 ed   ed<   y)TaxRate.ModifyParamsr   r   r   r   r   r   r   r    r"   zLiteral['']|Dict[str, str]r#   r%   r&   r'   Nr8   r-   r.   r/   ModifyParamsrB      s    '' !'' %U++ &e,,  ,, &e,, "">?? u%% " c r.   rC   c                       e Zd ZU ed   ed<   y)TaxRate.RetrieveParamsr   r    Nr8   r-   r.   r/   RetrieveParamsrE      s    ,,r.   rF   r   r   r3   r   r   effective_percentageidr!   r"   livemoder#   objectr$   r%   )amusement_taxcommunications_taxgsthstigstjct	lease_taxpstqstrst	sales_taxservice_taxvatr'   Napi_keyidempotency_keystripe_versionstripe_accountparamsr   returnc                 `    t        d| j                  d| j                         |||||            S )z)
        Creates a new tax rate.
        r   post)r   _static_request	class_url)clsrX   rY   rZ   r[   r\   s         r/   createzTaxRate.create   s=     
 	
r.   r2   c                     | j                  d| j                         ||||      }t        |t              s!t	        dt        |      j                  z        |S )z
        Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first.
        get)rX   rZ   r[   r\   z%Expected list object from API, got %s)r`   ra   
isinstancer   	TypeErrortyper(   )rb   rX   rZ   r[   r\   results         r/   listzTaxRate.list  sf     $$MMO)) % 
 &*-7<((* 
 r.   rB   c                 z    | j                         dt        |      }t        d| j                  d||            S )z/
        Updates an existing tax rate.
        /r   r_   )r\   )ra   r   r   r`   )rb   rH   r\   urls       r/   modifyzTaxRate.modify5  s=     *R.9F;
 	
r.   rE   c                 8     | |fi |}|j                          |S )z8
        Retrieves a tax rate with the given ID
        )refresh)rb   rH   r\   instances       r/   retrievezTaxRate.retrieveB  s$     r$V$r.   )NNNN)NNN)r(   r)   r*   __doc__r   r   r   r+   r   r   r0   r9   r   r@   rC   rF   r   r   r   r5   r,   r	   classmethodr   rc   r   rj   rn   rr   r-   r.   r/   r   r      s   
 2<K'*-.;.	> .	`	 	<		 	$&	> &	P	^ 	 L c] L #  #5/)
 	G O 3- N tCH~&& J  C= 	
 "  "&)-(,(,
#
 "#
 !	

 !
 /0
 

 
0  "&(,(,	# ! !	
 -. 
I	 6 



 &'= >

	

 

  &'? @	 r.   r   N)stripe.api_resources.abstractr   r   r    stripe.api_resources.list_objectr   stripe.request_optionsr   typingr   r	   r
   r   r   typing_extensionsr   r   r   r   r   urllib.parser   r   r-   r.   r/   <module>r{      sP    
 8 1 7 7  $v)$	")$vr.   