
    Ch1                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	J
r
JrJr  S SKJrJrJrJrJr  \(       a  S SKJr   " S S	\S	   5      rg
)    )CreateableAPIResource)ExpandableField)RequestOptions)StripeObject)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Customerc                      \ rS rSr% SrSr\\S      \S'    " S S\	5      r
 " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\\S'    \\
   \S'    \\S'    \S   \S'    \\S'    \\S'    \S   \S'    \S\S   SS 4S j5       r\S\S   SS 4S j5       rS\
0rS rg!)"CustomerSession   a  
A Customer Session allows you to grant Stripe's frontend SDKs (like Stripe.js) client-side access
control over a Customer.

Related guides: [Customer Session with the Payment Element](https://docs.stripe.com/payments/accept-a-payment-deferred?platform=web&type=payment#save-payment-methods),
[Customer Session with the Pricing Table](https://docs.stripe.com/payments/checkout/pricing-table#customer-session),
[Customer Session with the Buy Button](https://docs.stripe.com/payment-links/buy-button#pass-an-existing-customer).
customer_sessionOBJECT_NAMEc                       \ rS rSr%  " S S\5      r " S S\5      r " S S\5      r\\S'    \\S	'    \\S
'    \\\S.r	Sr
g)CustomerSession.Components    c                        \ rS rSr% \\S'   Srg)$CustomerSession.Components.BuyButton!   enabled N__name__
__module____qualname____firstlineno__bool__annotations____static_attributes__r       [/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/_customer_session.py	BuyButtonr   !       Mr&   r(   c                   R    \ rS rSr%  " S S\5      r\\S'    \\   \S'    S\0r	Sr
g))CustomerSession.Components.PaymentElement'   c                       \ rS rSr% \\S      \S'    \S   \S'    \\   \S'    \S   \S'    \S   \S'    \\S	      \S
'   Sr	g)2CustomerSession.Components.PaymentElement.Features(   alwayslimitedunspecified&payment_method_allow_redisplay_filtersdisabledr   payment_method_redisplaypayment_method_redisplay_limitpayment_method_removepayment_method_saveoff_session
on_sessionpayment_method_save_usager   N)
r   r    r!   r"   r   r   r$   r	   intr%   r   r&   r'   Featuresr.   (   s    8<>?9 
 +22G*HH 19= (//D'EE
 &--B%CC
 ,478, r&   r@   r   featuresr   N)r   r    r!   r"   r   r@   r#   r$   r	   _inner_class_typesr%   r   r&   r'   PaymentElementr+   '   s:    $< $L M x(( #-h!7r&   rC   c                        \ rS rSr% \\S'   Srg)'CustomerSession.Components.PricingTableX   r   r   Nr   r   r&   r'   PricingTablerE   X   r)   r&   rG   
buy_buttonpayment_elementpricing_table)rH   rI   rJ   r   N)r   r    r!   r"   r   r(   rC   rG   r$   rB   r%   r   r&   r'   
Componentsr       sa    	 	/	8\ /	8b	< 	 	 ('	 $#	 $-)
r&   rK   c                   D    \ rS rSr% S\S'    \\S'    \\\      \S'   Srg)CustomerSession.CreateParamsp   &CustomerSession.CreateParamsComponents
componentscustomerexpandr   N)	r   r    r!   r"   r$   strr   r   r%   r   r&   r'   CreateParamsrM   p   s/    <<	 	 DI&&	r&   rT   c                   J    \ rS rSr% \S   \S'    \S   \S'    \S   \S'   Srg	)
rO   ~   /CustomerSession.CreateParamsComponentsBuyButtonrH   4CustomerSession.CreateParamsComponentsPaymentElementrI   2CustomerSession.CreateParamsComponentsPricingTablerJ   r   N)r   r    r!   r"   r   r$   r%   r   r&   r'   CreateParamsComponents&CustomerSession.CreateParamsComponents~   sE    =
 	
	 %B
 	
	 #@
 	
	r&   rZ   c                        \ rS rSr% \\S'   Srg)rW      r   r   Nr   r   r&   r'   CreateParamsComponentsBuyButton/CustomerSession.CreateParamsComponentsBuyButton       	r&   r^   c                   2    \ rS rSr% \\S'    \S   \S'   Srg)rX      r   <CustomerSession.CreateParamsComponentsPaymentElementFeaturesrA   r   N)r   r    r!   r"   r#   r$   r   r%   r   r&   r'   $CreateParamsComponentsPaymentElement4CustomerSession.CreateParamsComponentsPaymentElement   s#    	 J
 	
	r&   rd   c                       \ rS rSr% \\\S         \S'    \\S      \S'    \\   \S'    \\S      \S'    \\S      \S'    \\S	      \S
'   Sr	g)rc      r0   r4   r5   r7   r8   r9   r:   r;   r>   r   N)
r   r    r!   r"   r   r   r   r$   r?   r%   r   r&   r'   ,CreateParamsComponentsPaymentElementFeatures<CustomerSession.CreateParamsComponentsPaymentElementFeatures   s    0;;<=1
 	
	
 #.g6K.L"MM	 )4C(88	  +73H+IJJ	
 )1F)GHH	
 $//0$
 	
	r&   rh   c                        \ rS rSr% \\S'   Srg)rY      r   r   Nr   r   r&   r'   "CreateParamsComponentsPricingTable2CustomerSession.CreateParamsComponentsPricingTable   r`   r&   rl   client_secretrP   createdr   rQ   
expires_atlivemodeobjectparamsrM   returnc           	      T    [        SU R                  SU R                  5       US95      $ )
Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.
r   postrs   )r
   _static_request	class_urlclsrs   s     r'   createCustomerSession.create   s6        
 	
r&   c           	      p   #    [        SU R                  SU R                  5       US9I Sh  vN 5      $  N7f)rv   r   rw   rx   N)r
   _static_request_asyncrz   r{   s     r'   create_asyncCustomerSession.create_async   sC      ++ ,  
 	
s   )64
	6r   N)r   r    r!   r"   __doc__r   r   r   r$   r   rK   r   rT   r   rZ   r^   rd   rh   rl   rS   r	   r?   r   r#   classmethodr   r}   r   rB   r%   r   r&   r'   r   r      s@    :LK'"456KN
\ N
`~  () 
y 
$y $LY  
 $$ L j)) O N &'' 
<=
	
 
 
<=
	
 
 '
3r&   r   N)stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._request_optionsr   stripe._stripe_objectr   typingr   r   r	   r
   typing_extensionsr   r   r   r   r   stripe._customerr   r   r   r&   r'   <module>r      sA    B 4 2 . 1 1  ){4+,=> {4r&   