
    +h\                         d dl 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 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         Zy	)
    )SingletonAPIResourceUpdateableAPIResource)RequestOptions)StripeObject)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)
quote_plusc                      e Zd ZU dZdZeed      ed<    G d de      Z	 G d de      Z
 G d d	e      Z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d   ed<   	 ed   ed<   	 eed<   ededed   dd fd       Zeded    dd fd!       Zed"        Ze	e
ed#Zy$)%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                   6    e Zd ZU eed      ed<   	 ee   ed<   y)Settings.Defaults)	exclusive	inclusiveinferred_by_currencytax_behaviortax_codeN)__name__
__module____qualname__r	   r   __annotations__str     T/var/www/html/venv/lib/python3.12/site-packages/stripe/api_resources/tax/settings.pyDefaultsr       s.    DE
 	
	 3-	r!   r#   c                   6    e Zd ZU  G d de      Zeed<   deiZy)Settings.HeadOfficec                   x    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<   y)Settings.HeadOffice.Addresscitycountryline1line2postal_codestateN)r   r   r   r	   r   r   r    r!   r"   Addressr'   -   sf    3- c]" C=  C=  "#& C= r!   r.   addressN)r   r   r   r   r.   r   _inner_class_typesr    r!   r"   
HeadOfficer%   ,   s!    	l 	4 '1r!   r1   c                   d    e Zd ZU  G d de      Z G d de      Zee   ed<   ee   ed<   eedZy)	Settings.StatusDetailsc                       e Zd Zy)Settings.StatusDetails.ActiveN)r   r   r   r    r!   r"   Activer5   K   s    r!   r6   c                   $    e Zd ZU eee      ed<   y)Settings.StatusDetails.Pendingmissing_fieldsN)r   r   r   r	   r   r   r   r    r!   r"   Pendingr8   N   s    $T#Y//r!   r:   activependingr;   r<   N)	r   r   r   r   r6   r:   r	   r   r0   r    r!   r"   StatusDetailsr3   J   s=    	\ 		l 	   '""(.7Cr!   r>   c                   B    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   y)Settings.ModifyParamsSettings.ModifyParamsDefaultsdefaults	List[str]expandSettings.ModifyParamsHeadOfficehead_officeNr   r   r   r   r   r    r!   r"   ModifyParamsr@   Z   s8    !"ABB  ,, %%FGGr!   rH   c                       e Zd ZU ded<   y)rE   &Settings.ModifyParamsHeadOfficeAddressr/   N)r   r   r   r   r    r!   r"   ModifyParamsHeadOfficezSettings.ModifyParamsHeadOfficeh   s    ==r!   rK   c                   x    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<   y)	rJ   r   r(   r)   r*   r+   r,   r-   NrG   r    r!   r"   ModifyParamsHeadOfficeAddressz&Settings.ModifyParamsHeadOfficeAddressn   sl    e$$ !'' u%% u%% %U++ u%%r!   rM   c                   0    e Zd ZU ed   ed<   	 ed   ed<   y)rA   z9Literal['exclusive', 'inclusive', 'inferred_by_currency']r   r   r   NrG   r    r!   r"   ModifyParamsDefaultszSettings.ModifyParamsDefaults   s)    %K  "%((r!   rO   c                       e Zd ZU ed   ed<   y)Settings.RetrieveParamsrC   rD   NrG   r    r!   r"   RetrieveParamsrQ      s    ,,r!   rR   rB   rF   livemodeobjectr=   statusstatus_detailsidparamsr@   returnc                 z    | j                         dt        |      }t        d| j                  d||            S )z
        Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
        /r   post)rX   )	class_urlr   r
   _static_request)clsrW   rX   urls       r"   modifyzSettings.modify   s=     *R.9F;
 	
r!   rQ   c                 6     | di |}|j                          |S )z8
        Retrieves Tax Settings for a merchant.
        )N)refresh)r_   rX   instances      r"   retrievezSettings.retrieve   s"     &v&r!   c                      y)Nz/v1/tax/settingsr    )r_   s    r"   r]   zSettings.class_url   s    !r!   )rB   rF   rV   N)r   r   r   __doc__r   r   r   r   r   r#   r1   r>   r   r   rH   r   rK   rM   rO   rR   r	   boolclassmethodr   r   ra   re   r]   r0   r    r!   r"   r   r      sW    6DK'.12C
< 
2\ 2<D D 	> 		Y 		I 	4
	9 
		^ 	 *%% N N## '(( "!



 &'> ?

	

 

 78	  " " !'r!   r   N)stripe.api_resources.abstractr   r   stripe.request_optionsr   stripe.stripe_objectr   typingr   r   r	   r
   typing_extensionsr   r   r   r   r   urllib.parser   r   r    r!   r"   <module>rp      sC    2 - 1 1  $y$*%yr!   