o
    iN.                     @   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 d dlmZmZmZmZ d d	lmZmZmZ ernd 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d ed e	d Z&dS )    )CreateableAPIResource)DeletableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)class_method_variantsanitize_id)ClassVarOptionalcastoverload)LiteralUnpackTYPE_CHECKING)Account)Application)Customer)TaxIdCreateParams)TaxIdDeleteParams)TaxIdListParams)TaxIdRetrieveParamsc                   @   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
ee ed< 	 eed	< 	 eed
  ed< 	 eed  ed< 	 eed< 	 eed< 	 ed ed< 	 ee	 ed< 	 ed ed< 	 eed< 	 e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ed dd fdd Z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$ded dd fd%d"Zededed dd fd&d'Z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+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d0d1Zededed2 dd fd3d4Zededed2 dd fd5d6Ze	e
d7Z d8S )9TaxIda}  
    You can add one or multiple tax IDs to a [customer](https://stripe.com/docs/api/customers) or account.
    Customer and account tax IDs get displayed on related invoices and credit notes.

    Related guides: [Customer tax identification numbers](https://stripe.com/docs/billing/taxes/tax-ids), [Account tax IDs](https://stripe.com/docs/invoicing/connect#account-tax-ids)
    tax_idOBJECT_NAMEc                   @   sP   e Zd ZU eed  ed< 	 eed  ed< 	 eed  ed< 	 ed ed< d	S )
zTaxId.Ownerr   accountr   applicationr   customer)r   r   r   selftypeN)__name__
__module____qualname__r   r   __annotations__r    r$   r$   n/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_tax_id.pyOwner%   s   
 r&   c                   @   s6   e Zd ZU ed ed< 	 ee ed< 	 ee ed< dS )zTaxId.Verification)pendingunavailable
unverifiedverifiedstatusverified_addressverified_nameN)r    r!   r"   r   r#   r   strr$   r$   r$   r%   Verification7   s   
 r/   countrycreatedr   r   Tdeletedidlivemodeobjectowner)oad_nrtae_trnal_tinam_tinao_tinar_cuitau_abnau_arnaw_tinaz_tinba_tinbb_tinbd_binbf_ifubg_uicbh_vatbj_ifubo_tinbr_cnpjbr_cpfbs_tinby_tinca_bn
ca_gst_hst	ca_pst_bc	ca_pst_mb	ca_pst_skca_qstcd_nifch_uidch_vatcl_tincm_niucn_tinco_nitcr_tincv_nifde_stndo_rcnec_ruceg_tines_cifet_tin
eu_oss_vateu_vatgb_vatge_vatgn_nifhk_brhr_oibhu_tinid_npwpil_vatin_gstis_vatjp_cnjp_rnjp_trnke_pinkg_tinkh_tinkr_brnkz_binla_tinli_uidli_vatma_vatmd_vatme_pibmk_vatmr_nifmx_rfcmy_frpmy_itnmy_sstng_tinno_vatno_voecnp_pannz_gstom_vatpe_rucph_tinro_tinrs_pibru_innru_kppsa_vatsg_gstsg_uensi_tinsn_nineasr_finsv_nitth_vattj_tintr_tintw_vattz_vatua_vatug_tinunknownus_einuy_rucuz_tinuz_vatve_rifvn_tinza_vatzm_tinzw_tinr   valueverificationparamsr   returnc                 K   s   t d| jd|  |dS )B
        Creates a new account or customer tax_id object.
        r   postr   )r   _static_request	class_urlclsr   r$   r$   r%   create   s   zTaxId.createc                    s"   t d| jd|  |dI dH S )r   r   r   r   N)r   _static_request_asyncr   r   r$   r$   r%   create_async   s   
zTaxId.create_asyncsidr   c                 K   s*   d|   t|f }td| jd||dS )H
        Deletes an existing account or customer tax_id object.
        %s/%sr   deleter   )r   r	   r   r   r   r   r   urlr$   r$   r%   _cls_delete   s   zTaxId._cls_deletec                 K      dS r   Nr$   r   r   r$   r$   r%   r     s   zTaxId.deletec                 K   r   r   r$   r   r   r$   r$   r%   r     s   r   c                 K   s   | j d|  |dS )r   r   r   )_request_and_refreshinstance_urlr   r$   r$   r%   r      s
   c                    s2   d|   t|f }td| jd||dI dH S )r   r   r   r   r   N)r   r	   r   r   r   r$   r$   r%   _cls_delete_async-  s   
zTaxId._cls_delete_asyncc                       dS r   r$   r   r$   r$   r%   delete_async>  s   zTaxId.delete_asyncc                    r   r   r$   r   r$   r$   r%   r   H  s   r   c                    s   | j d|  |dI dH S )r   r   r   N)_request_and_refresh_asyncr   r   r$   r$   r%   r   Q  s   r   c                 K   s4   | j d|  |d}t|tstdt|j |S ),
        Returns a list of tax IDs.
        getr   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorr   r    r   r   resultr$   r$   r%   list^  s   
z
TaxId.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r   r   r   Nr   )r   r   r   r   r   r   r    r   r$   r$   r%   
list_asyncp  s   
zTaxId.list_asyncr   c                 K   s   | |fi |}|   |S )A
        Retrieves an account or customer tax_id object.
        )refreshr   r3   r   instancer$   r$   r%   retrieve  s   zTaxId.retrievec                    s$   | |fi |}|  I dH  |S )r   N)refresh_asyncr   r$   r$   r%   retrieve_async  s   zTaxId.retrieve_async)r6   r   N)!r    r!   r"   __doc__r   r
   r   r#   r   r&   r/   r   r.   intr   boolclassmethodr   r   r   r   r   staticmethodr   r   r   r   r   r   r   r   r   _inner_class_typesr$   r$   r$   r%   r      s   
 q

r   N)'stripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._utilr   r	   typingr
   r   r   r   typing_extensionsr   r   r   stripe._accountr   stripe._applicationr   stripe._customerr   #stripe.params._tax_id_create_paramsr   #stripe.params._tax_id_delete_paramsr   !stripe.params._tax_id_list_paramsr   %stripe.params._tax_id_retrieve_paramsr   r   r$   r$   r$   r%   <module>   s,   
