o
    i;                     @   s   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 d dlmZmZmZ d dlmZmZmZmZmZ erDd d	lmZ G d
d deZdS )    )connect_api_base)AuthenticationError)_APIRequestor)_api_encode)	urlencode)StripeObject)ListcastOptional)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)RequestOptionsc                   @   s   e Zd 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dd Ze	ddedee defddZe	ddee dee	 defddZe	ddee dee
 defddZdS )OAuthc                   @   sr   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 eed  ed< 	 ee ed< 	 ee ed< 	 ee ed< d	S )
OAuth.OAuthTokenaccess_tokenscopelivemodebearer
token_typerefresh_tokenstripe_user_idstripe_publishable_keyN)__name__
__module____qualname__r
   str__annotations__boolr    r!   r!   m/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_oauth.py
OAuthToken   s   
 r#   c                   @   s   e Zd ZU eed< dS )OAuth.OAuthDeauthorizationr   N)r   r   r   r   r   r!   r!   r!   r"   OAuthDeauthorization7   s   
 r%   c                   @   s   e Zd ZU ee ed< 	 eed  ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 eee  ed	< 	 ed
 ed< dS )zOAuth.OAuthAuthorizeUrlParams	client_idcoderesponse_typeredirect_urir   statestripe_landingalways_promptsuggested_capabilities'OAuth.OAuthAuthorizeUrlParamsStripeUserstripe_userN)	r   r   r   r   r   r   r   r    r   r!   r!   r!   r"   OAuthAuthorizeUrlParams?   s&   
 r0   c                   @   s  e Zd ZU dZee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed	< 	 ee ed
< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )r.   z
        A more detailed explanation of what it means for a field to be
        required or optional can be found in our API documentation.
        See `Account Creation (Overview)` and `Account Update`
        emailurlcountryphone_numberbusiness_namebusiness_type
first_name	last_namedob_day	dob_monthdob_yearstreet_addresscityr*   zipphysical_productproduct_descriptioncurrencyfirst_name_kanafirst_name_kanjilast_name_kanalast_name_kanjigender
block_kanablock_kanjibuilding_kanabuilding_kanjiN)r   r   r   __doc__r   r   r   r!   r!   r!   r"   !OAuthAuthorizeUrlParamsStripeUserm   sp   
 rL   c                   @   sV   e Zd ZU ed ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 eee  ed< dS )zOAuth.OAuthTokenParams)authorization_coder   
grant_typer'   r   r   assert_capabilitiesN)r   r   r   r   r   r   r   r   r!   r!   r!   r"   OAuthTokenParams  s   
 rP   c                   @   s$   e Zd ZU ee ed< 	 eed< dS )zOAuth.OAuthDeauthorizeParamsr&   r   N)r   r   r   r   r   r   r!   r!   r!   r"   OAuthDeauthorizeParams  s
   
 rQ   c                 C   s0   d| v rd S ddl m} |r|| d< d S td)Nr&   r   )r&   ax  No client_id provided. (HINT: set your client_id using "stripe.client_id = <CLIENT-ID>"). You can find your client_ids in your Stripe dashboard at https://dashboard.stripe.com/account/applications/settings, after registering your account as a platform. See https://stripe.com/docs/connect/standalone-accounts for details, or email support@stripe.com if you have any questions.)striper&   r   )paramsr&   r!   r!   r"   _set_client_id%  s   zOAuth._set_client_idFexpressrS   returnc                 K   sR   | du rd}nd}t | d|vrd|d< ttt|d}t| d | }|S )NFz/oauth/authorizez/express/oauth/authorizer(   r'   V1?)r   rT   r   listr   r   )rU   rS   pathqueryr2   r!   r!   r"   authorize_url:  s   
zOAuth.authorize_urlNapi_keyc              	   K   s*   d| i}t  }td|jdd||ddS )Nr]   r   postz/oauth/tokenconnectrS   optionsbase_address)r   _global_instancer	   requestr]   rS   ra   	requestorr!   r!   r"   tokenJ  s   zOAuth.tokenc              	   K   s4   d| i}t  }t| td|jdd||ddS )Nr]   r$   r^   z/oauth/deauthorizer_   r`   )r   rc   r   rT   r	   rd   re   r!   r!   r"   deauthorize[  s   
zOAuth.deauthorize)F)N)r   r   r   r   r#   r%   r   r0   rL   rP   rQ   staticmethodrT   r    r   r   r\   r
   rg   rh   r!   r!   r!   r"   r      sJ     . 
r   N)rR   r   stripe._errorr   stripe._api_requestorr   stripe._encoder   urllib.parser   stripe._stripe_objectr   typingr   r	   r
   typing_extensionsr   r   r   r   r   stripe._request_optionsr   objectr   r!   r!   r!   r"   <module>   s   