o
    i[                     @   sd   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
 e
r&d dlmZ G dd ded ZdS )	    )CreateableAPIResource)StripeObject)ClassVarcast)LiteralUnpackTYPE_CHECKING)AccountSessionCreateParamsc                   @   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d< 	 e	ed< eed	< 	 eed
< 	 ed ed< 	 eded dd fddZeded dd fddZde	iZdS )AccountSessiona  
    An AccountSession allows a Connect platform to grant access to a connected account in Connect embedded components.

    We recommend that you create an AccountSession each time you need to display an embedded component
    to your user. Do not save AccountSessions to your database as they expire relatively
    quickly, and cannot be used more than once.

    Related guide: [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components)
    account_sessionOBJECT_NAMEc                   @   sJ  e Zd ZU G dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZ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ed)< eed*< eed+< e	ed,< e
ed-< eed.< eed/< eed0< eed1< eed2< eed3< eed4< eed5< eed6< eed7< eed8< eed9< i d'ed(ed)ed*ed+ed,e	d-e
d.ed/ed0ed1ed2ed3ed4ed5ed6ed7eeed:Zd;S )<zAccountSession.Componentsc                   @   8   e Zd ZU G dd deZeed< 	 eed< deiZdS )z+AccountSession.Components.AccountManagementc                   @       e Zd ZU eed< 	 eed< dS )z4AccountSession.Components.AccountManagement.Features"disable_stripe_user_authenticationexternal_account_collectionN__name__
__module____qualname__bool__annotations__ r   r   w/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_account_session.pyFeatures   
   
 r   enabledfeaturesNr   r   r   r   r   r   r   _inner_class_typesr   r   r   r   AccountManagement      
 
r   c                   @   r   )z+AccountSession.Components.AccountOnboardingc                   @   r   )z4AccountSession.Components.AccountOnboarding.Featuresr   r   Nr   r   r   r   r   r   /   r   r   r   r   Nr   r   r   r   r   AccountOnboarding.   r    r!   c                   @   r   )z"AccountSession.Components.Balancesc                   @   >   e Zd ZU eed< 	 eed< 	 eed< 	 eed< 	 eed< dS )z+AccountSession.Components.Balances.Featuresr   edit_payout_scheduler   instant_payoutsstandard_payoutsNr   r   r   r   r   r   A      
 r   r   r   Nr   r   r   r   r   Balances@      
 r'   c                   @   r   )z&AccountSession.Components.DisputesListc                   @   4   e Zd ZU eed< 	 eed< 	 eed< 	 eed< dS )z/AccountSession.Components.DisputesList.Featurescapture_payments*destination_on_behalf_of_charge_managementdispute_managementrefund_managementNr   r   r   r   r   r   _      
 r   r   r   Nr   r   r   r   r   DisputesList^      
 r/   c                   @   r   )z#AccountSession.Components.Documentsc                   @      e Zd ZdS )z,AccountSession.Components.Documents.FeaturesNr   r   r   r   r   r   r   r   y       r   r   r   Nr   r   r   r   r   	Documentsx      
 r4   c                   @   r   )z*AccountSession.Components.FinancialAccountc                   @   r)   )z3AccountSession.Components.FinancialAccount.Featuresr   r   
send_moneytransfer_balanceNr   r   r   r   r   r      r.   r   r   r   Nr   r   r   r   r   FinancialAccount   r0   r8   c                   @   r   )z6AccountSession.Components.FinancialAccountTransactionsc                   @   s   e Zd ZU eed< dS )z?AccountSession.Components.FinancialAccountTransactions.Featurescard_spend_dispute_managementNr   r   r   r   r   r      s   
 r   r   r   Nr   r   r   r   r   FinancialAccountTransactions   s   
 r:   c                   @   r   )z1AccountSession.Components.InstantPayoutsPromotionc                   @   *   e Zd ZU eed< 	 eed< 	 eed< dS )z:AccountSession.Components.InstantPayoutsPromotion.Featuresr   r   r$   Nr   r   r   r   r   r         
 r   r   r   Nr   r   r   r   r   InstantPayoutsPromotion      
 r=   c                   @   r   )z%AccountSession.Components.IssuingCardc                   @   r)   )z.AccountSession.Components.IssuingCard.Featurescard_managementr9   cardholder_managementspend_control_managementNr   r   r   r   r   r      r.   r   r   r   Nr   r   r   r   r   IssuingCard   r0   rB   c                   @   r   )z*AccountSession.Components.IssuingCardsListc                   @   r"   )z3AccountSession.Components.IssuingCardsList.Featuresr?   r9   r@   r   rA   Nr   r   r   r   r   r      r&   r   r   r   Nr   r   r   r   r   IssuingCardsList   r(   rC   c                   @   r   )z,AccountSession.Components.NotificationBannerc                   @   r   )z5AccountSession.Components.NotificationBanner.Featuresr   r   Nr   r   r   r   r   r      r   r   r   r   Nr   r   r   r   r   NotificationBanner   r    rD   c                   @   r   )z(AccountSession.Components.PaymentDetailsc                   @   r)   )z1AccountSession.Components.PaymentDetails.Featuresr*   r+   r,   r-   Nr   r   r   r   r   r     r.   r   r   r   Nr   r   r   r   r   PaymentDetails  r0   rE   c                   @   r   )z)AccountSession.Components.PaymentDisputesc                   @   r;   )z2AccountSession.Components.PaymentDisputes.Featuresr+   r,   r-   Nr   r   r   r   r   r   &  r<   r   r   r   Nr   r   r   r   r   PaymentDisputes%  r>   rF   c                   @   r   )z"AccountSession.Components.Paymentsc                   @   r)   )z+AccountSession.Components.Payments.Featuresr*   r+   r,   r-   Nr   r   r   r   r   r   <  r.   r   r   r   Nr   r   r   r   r   Payments;  r0   rG   c                   @   r   )z'AccountSession.Components.PayoutDetailsc                   @   r1   )z0AccountSession.Components.PayoutDetails.FeaturesNr2   r   r   r   r   r   V  r3   r   r   r   Nr   r   r   r   r   PayoutDetailsU  r5   rH   c                   @   r   )z!AccountSession.Components.Payoutsc                   @   r"   )z*AccountSession.Components.Payouts.Featuresr   r#   r   r$   r%   Nr   r   r   r   r   r   a  r&   r   r   r   Nr   r   r   r   r   Payouts`  r(   rI   c                   @   r   )z%AccountSession.Components.PayoutsListc                   @   r1   )z.AccountSession.Components.PayoutsList.FeaturesNr2   r   r   r   r   r     r3   r   r   r   Nr   r   r   r   r   PayoutsList~  r5   rJ   c                   @   r   )z*AccountSession.Components.TaxRegistrationsc                   @   r1   )z3AccountSession.Components.TaxRegistrations.FeaturesNr2   r   r   r   r   r     r3   r   r   r   Nr   r   r   r   r   TaxRegistrations  r5   rK   c                   @   r   )z%AccountSession.Components.TaxSettingsc                   @   r1   )z.AccountSession.Components.TaxSettings.FeaturesNr2   r   r   r   r   r     r3   r   r   r   Nr   r   r   r   r   TaxSettings  r5   rL   account_managementaccount_onboardingbalancesdisputes_list	documentsfinancial_accountfinancial_account_transactionsinstant_payouts_promotionissuing_cardissuing_cards_listnotification_bannerpayment_detailspayment_disputespaymentspayout_detailspayoutspayouts_listtax_registrationstax_settings)r^   r_   N)r   r   r   r   r   r!   r'   r/   r4   r8   r:   r=   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   r   r   r   r   r   r   
Components   s   
 	
r`   accountclient_secret
components
expires_atlivemodeobjectparamsr	   returnc                 K   s   t d| jd|  |dS )
        Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.
        r
   postrg   )r   _static_request	class_urlclsrg   r   r   r   create  s   zAccountSession.createc                    s"   t d| jd|  |dI dH S )ri   r
   rj   rk   N)r   _static_request_asyncrm   rn   r   r   r   create_async  s   
zAccountSession.create_asyncN)r   r   r   __doc__r   r   r   r   r   r`   strintr   classmethodr   rp   rr   r   r   r   r   r   r
      s>   
 
   0r
   N)stripe._createable_api_resourcer   stripe._stripe_objectr   typingr   r   typing_extensionsr   r   r   ,stripe.params._account_session_create_paramsr	   r
   r   r   r   r   <module>   s   