a
    !f0                     @   st   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 G dd ded Zd	S )
    )ListableAPIResource)
ListObject)RequestOptions)StripeObject)ClassVarDictListOptional)LiteralNotRequiredUnpackc                   @   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d< ed ed< eeee f ed< ee ed< ee ed< ee ed< e	ed< edee ee ee ed ed  dddZeeed d dddZde	iZdS )CountrySpeca  
    Stripe needs to collect certain pieces of information about each account
    created. These requirements can differ depending on the account's country. The
    Country Specs API makes these rules available to your integration.

    You can also view the information from this API call as [an online
    guide](https://stripe.com/docs/connect/required-verification-information).
    Zcountry_specOBJECT_NAMEc                   @   sH   e Zd ZU G dd deZG dd deZeed< eed< eedZdS )	zCountrySpec.VerificationFieldsc                   @   s&   e Zd ZU ee ed< ee ed< dS )z&CountrySpec.VerificationFields.Company
additionalminimumN__name__
__module____qualname__r   str__annotations__ r   r   b/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/country_spec.pyCompany   s   
r   c                   @   s&   e Zd ZU ee ed< ee ed< dS )z)CountrySpec.VerificationFields.Individualr   r   Nr   r   r   r   r   
Individual"   s   
r   company
individual)r   r   N)r   r   r   r   r   r   r   _inner_class_typesr   r   r   r   VerificationFields   s
   


r   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )	CountrySpec.ListParamsr   Zending_before	List[str]expandintlimitZstarting_afterNr   r   r   r   r   r   r   r   r   
ListParams0   s
   
r%   c                   @   s   e Zd ZU ed ed< dS )CountrySpec.RetrieveParamsr    r!   Nr$   r   r   r   r   RetrieveParamsB   s   
r'   Zdefault_currencyidobjectZ!supported_bank_account_currenciesZsupported_payment_currenciesZsupported_payment_methodsZsupported_transfer_countriesZverification_fieldsNr   )api_keystripe_versionstripe_accountparamsreturnc                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )zF
        Lists all Country Spec objects available in the API.
        get)r*   r+   r,   r-   z%Expected list object from API, got %s)Z_static_requestZ	class_url
isinstancer   	TypeErrortyper   )clsr*   r+   r,   r-   resultr   r   r   listf   s    
zCountrySpec.listr&   )r(   r-   r.   c                 K   s   | |fi |}|   |S )zB
        Returns a Country Spec for a given Country code.
        )refresh)r3   r(   r-   instancer   r   r   retrieve   s    zCountrySpec.retrieve)NNN)r   r   r   __doc__r   r   r
   r   r   r   r   r%   r'   r   r   r   classmethodr	   r   r   r5   r8   r   r   r   r   r   r      s>   
	   
r   N)Zstripe.api_resources.abstractr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   typingr   r   r   r	   Ztyping_extensionsr
   r   r   r   r   r   r   r   <module>   s   