
    h0                         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  G d d	ed	         Zy
)    )CreateableAPIResource)ExpandableField)RequestOptions)StripeObject)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Customerc                   t   e Zd ZU dZdZeed      ed<    G d de      Z	 G d de
      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Zeed<   	 ee	   ed<   	 eed<   	 ed   ed<   	 eed<   	 eed<   	 ed   ed<   	 eded   dd fd       Zeded   dd fd       Zde	iZy) CustomerSessiona  
    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://stripe.com/payments/accept-a-payment-deferred?platform=web&type=payment#save-payment-methods),
    [Customer Session with the Pricing Table](https://stripe.com/payments/checkout/pricing-table#customer-session),
    [Customer Session with the Buy Button](https://stripe.com/payment-links/buy-button#pass-an-existing-customer).
    customer_sessionOBJECT_NAMEc                       e Zd ZU  G d de      Z G d de      Z G d de      Zeed<   	 eed<   	 eed	<   	 eeed
Zy)CustomerSession.Componentsc                       e Zd ZU eed<   y)$CustomerSession.Components.BuyButtonenabledN__name__
__module____qualname__bool__annotations__     X/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/stripe/_customer_session.py	BuyButtonr   !       Mr!   r#   c                   J    e Zd ZU  G d de      Zeed<   	 ee   ed<   	 deiZy))CustomerSession.Components.PaymentElementc                       e Zd ZU eed      ed<   	 ed   ed<   	 ee   ed<   	 ed   ed<   	 ed   ed<   	 eed      ed	<   y
)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_usageN)r   r   r   r   r   r   r	   intr    r!   r"   Featuresr(   (   s    8<>?9 
 +22G*HH 19= (//D'EE
 &--B%CC
 ,478, r!   r9   r   featuresN)	r   r   r   r   r9   r   r   r	   _inner_class_typesr    r!   r"   PaymentElementr&   '   s:    $< $L M x(( #-h!7r!   r<   c                       e Zd ZU eed<   y)'CustomerSession.Components.PricingTabler   Nr   r    r!   r"   PricingTabler>   X   r$   r!   r?   
buy_buttonpayment_elementpricing_table)r@   rA   rB   N)	r   r   r   r   r#   r<   r?   r   r;   r    r!   r"   
Componentsr       sa    	 	/	8\ /	8b	< 	 	 ('	 $#	 $-)
r!   rC   c                   <    e Zd ZU ded<   	 eed<   	 eee      ed<   y)CustomerSession.CreateParams&CustomerSession.CreateParamsComponents
componentscustomerexpandN)r   r   r   r   strr   r   r    r!   r"   CreateParamsrE   p   s/    <<	 	 DI&&	r!   rK   c                   B    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   y)rF   /CustomerSession.CreateParamsComponentsBuyButtonr@   4CustomerSession.CreateParamsComponentsPaymentElementrA   2CustomerSession.CreateParamsComponentsPricingTablerB   N)r   r   r   r   r   r    r!   r"   CreateParamsComponentsz&CustomerSession.CreateParamsComponents~   sE    =
 	
	 %B
 	
	 #@
 	
	r!   rP   c                       e Zd ZU eed<   y)rM   r   Nr   r    r!   r"   CreateParamsComponentsBuyButtonz/CustomerSession.CreateParamsComponentsBuyButton       	r!   rR   c                   *    e Zd ZU eed<   	 ed   ed<   y)rN   r   <CustomerSession.CreateParamsComponentsPaymentElementFeaturesr:   N)r   r   r   r   r   r   r    r!   r"   $CreateParamsComponentsPaymentElementz4CustomerSession.CreateParamsComponentsPaymentElement   s#    	 J
 	
	r!   rV   c                       e Zd ZU eeed         ed<   	 eed      ed<   	 ee   ed<   	 eed      ed<   	 eed      ed<   	 eed      ed	<   y
)rU   r)   r-   r.   r0   r1   r2   r3   r4   r7   N)r   r   r   r   r   r   r   r8   r    r!   r"   ,CreateParamsComponentsPaymentElementFeaturesz<CustomerSession.CreateParamsComponentsPaymentElementFeatures   s    0;;<=1
 	
	
 #.g6K.L"MM	 )4C(88	  +73H+IJJ	
 )1F)GHH	
 $//0$
 	
	r!   rX   c                       e Zd ZU eed<   y)rO   r   Nr   r    r!   r"   "CreateParamsComponentsPricingTablez2CustomerSession.CreateParamsComponentsPricingTable   rS   r!   rZ   client_secretrG   createdr   rH   
expires_atlivemodeobjectparamsrE   returnc                 Z    t        d| j                  d| j                         |            S )
        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r`   )r
   _static_request	class_urlclsr`   s     r"   createzCustomerSession.create   s6        
 	
r!   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)rc   r   rd   re   N)r
   _static_request_asyncrg   rh   s     r"   create_asynczCustomerSession.create_async   sD      ++ ,  
 	
s   ,97
	9N)r   r   r   __doc__r   r   r   r   r   rC   r   rK   r   rP   rR   rV   rX   rZ   rJ   r	   r8   r   r   classmethodr   rj   rm   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>rw      sA    B 4 2 . 1 1  ){4+,=> {4r!   