
    +h                         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mZmZ d dlmZmZmZmZmZ erd dlmZ d d	lmZ d dlmZ  G d
 ded         Zy)    )CreateableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Account)Customerc                      e Zd ZU dZdZeed      ed<    G d de      Z	 G d de      Z
er, G d d	e      Z G d
 de      Z G d de      Z G d de      Zee	   ed<   	 ed   ed<   	 eed<   	 ee
   ed<   eed<   	 eed<   	 ed   ed<   	 eed      ed<   	 eeed         ed<   	 ee   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ed"ed&   d$d fd'       Ze	e
d(Zy)*Sessionz
    A Financial Connections Session is the secure way to programmatically launch the client-side Stripe.js modal that lets your users link their accounts.
    zfinancial_connections.sessionOBJECT_NAMEc                   N    e Zd ZU eed      ed<   	 eed      ed<   	 ed   ed<   y)Session.AccountHolderAccountResourceaccountr   customerr   r   typeN)__name__
__module____qualname__r
   r   __annotations__r        e/var/www/html/venv/lib/python3.12/site-packages/stripe/api_resources/financial_connections/session.pyAccountHolderr   "   sB    /*;<==	 ?:677	 +,,	r"   r$   c                   $    e Zd ZU eee      ed<   y)Session.Filters	countriesN)r   r   r   r
   r	   strr    r!   r"   r#   Filtersr&   0   s    DI&&	r"   r)   c                   x    e Zd ZU ded<   	 ed   ed<   	 ed   ed<   	 eed      ed<   	 ed	   ed
<   	 ed   ed<   y)Session.CreateParams!Session.CreateParamsAccountHolderaccount_holder	List[str]expandSession.CreateParamsFiltersfiltersbalances	ownershippayment_methodtransactionspermissionsz&List[Literal['balances', 'ownership']]prefetchr(   
return_urlN)r   r   r   r    r   r	   r   r!   r"   r#   CreateParamsr+   8   sv    ??  ,, !!>?? M 

 ""JKK $E**r"   r:   c                       e Zd ZU ee   ed<   y)r0   r'   N)r   r   r   r	   r(   r    r!   r"   r#   CreateParamsFilterszSession.CreateParamsFiltersX   s    Cy r"   r<   c                   B    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   y)r,   r(   r   r   r   r   N)r   r   r   r   r    r   r!   r"   r#   CreateParamsAccountHolderz!Session.CreateParamsAccountHolder^   s7     '' "%(( /00r"   r>   c                       e Zd ZU ed   ed<   y)Session.RetrieveParamsr.   r/   N)r   r   r   r   r    r!   r"   r#   RetrieveParamsr@   l   s    ,,r"   rA   r-   #FinancialConnectionsAccountResourceaccountsclient_secretr1   idlivemodeobjectr2   r7   )r3   r4   r8   r9   Napi_keyidempotency_keystripe_versionstripe_accountparamsr+   returnc                 `    t        d| j                  d| j                         |||||            S )z
        To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js.
        r   post)r   _static_request	class_url)clsrH   rI   rJ   rK   rL   s         r#   createzSession.create   s=     
 	
r"   r@   c                 8     | |fi |}|j                          |S )zJ
        Retrieves the details of a Financial Connections Session
        )refresh)rR   rE   rL   instances       r#   retrievezSession.retrieve   s$     r$V$r"   )r-   r1   )NNNN)r   r   r   __doc__r   r   r   r    r   r$   r)   r   r   r:   r   r<   r>   rA   r
   r   r(   boolr	   classmethodr   rS   rW   _inner_class_typesr!   r"   r#   r   r      s    	( /0 ( ,  	> 	@	) 			 		^ 	 ]++ >??  gG N 344 IJ  tG$;<=>>   "&)-(,(,
#
 "#
 !	

 !
 /0
 

 
0  &'? @	  -:gNr"   r   N)stripe.api_resources.abstractr   %stripe.api_resources.expandable_fieldr    stripe.api_resources.list_objectr   stripe.request_optionsr   stripe.stripe_objectr   typingr   r	   r
   r   typing_extensionsr   r   r   r   r   stripe.api_resources.accountr   r   stripe.api_resources.customerr   2stripe.api_resources.financial_connections.accountrB   r   r!   r"   r#   <module>rf      sM    @ A 7 1 - 1 1  G6
eO#I. eOr"   