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	m
Z
mZ d dlmZmZmZ erFd dlmZ d dlmZ d d	lmZ d d
lmZ G dd ded ed ZdS )    )CreateableAPIResource)
ListObject)ListableAPIResource)StripeObject)ClassVarOptionalcast)LiteralUnpackTYPE_CHECKING)SecretCreateParams)SecretDeleteWhereParams)SecretFindParams)SecretListParamsc                   @   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 ed< 	 ee
 ed< 	 eed	< 	 eed
< 	 eed< 	 ed ed< 	 ee ed< 	 e	ed< eded dd fddZeded dd fddZeded dd fddZeded dd fddZeded dd fddZeded dd fddZeded  ded  fd!d"Zeded  ded  fd#d$Zde	iZd%S )&Secreta;  
    Secret Store is an API that allows Stripe Apps developers to securely persist secrets for use by UI Extensions and app backends.

    The primary resource in Secret Store is a `secret`. Other apps can't view secrets created by an app. Additionally, secrets are scoped to provide further permission control.

    All Dashboard users and the app backend share `account` scoped secrets. Use the `account` scope for secrets that don't change per-user, like a third-party API key.

    A `user` scoped secret is accessible by the app backend and one specific Dashboard user. Use the `user` scope for per-user secrets like per-user OAuth tokens, where different users might have different permissions.

    Related guide: [Store data between page reloads](https://stripe.com/docs/stripe-apps/store-auth-data-custom-objects)
    zapps.secretOBJECT_NAMEc                   @   s(   e Zd ZU ed ed< 	 ee ed< dS )zSecret.Scope)accountusertyper   N)__name__
__module____qualname__r	   __annotations__r   str r   r   s/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/apps/_secret.pyScope"   s
   
 r   createddeleted
expires_atidlivemodenameobjectpayloadscopeparamsr   returnc                 K   s   t d| jd|  |dS )A
        Create or replace a secret in the secret store.
        r   postr&   )r   _static_request	class_urlclsr&   r   r   r   createN   s   zSecret.createc                    s"   t d| jd|  |dI dH S )r(   r   r)   r*   N)r   _static_request_asyncr,   r-   r   r   r   create_async\   s   
zSecret.create_asyncr   c                 K      t d| jdd|dS )K
        Deletes a secret from the secret store by name and scope.
        r   r)   /v1/apps/secrets/deleter*   r   r+   r-   r   r   r   delete_wherel   s   zSecret.delete_wherec                       t d| jdd|dI dH S )r3   r   r)   r4   r*   Nr   r0   r-   r   r   r   delete_where_async|      
zSecret.delete_where_asyncr   c                 K   r2   )G
        Finds a secret in the secret store by name and scope.
        r   get/v1/apps/secrets/findr*   r5   r-   r   r   r   find   s   zSecret.findc                    r7   )r;   r   r<   r=   r*   Nr8   r-   r   r   r   
find_async   r:   zSecret.find_asyncr   c                 K   s4   | j d|  |d}t|tstdt|j |S )=
        List all secrets stored on the given scope.
        r<   r*   %Expected list object from API, got %s)r+   r,   
isinstancer   	TypeErrorr   r   r.   r&   resultr   r   r   list   s   
zSecret.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r@   r<   r*   NrA   )r0   r,   rB   r   rC   r   r   rD   r   r   r   
list_async   s   
zSecret.list_asyncN)r   r   r   __doc__r   r   r	   r   r   r   intr   boolr   classmethodr
   r/   r1   r6   r9   r>   r?   r   rF   rG   _inner_class_typesr   r   r   r   r      s|   
 
r   N)stripe._createable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   typingr   r   r   typing_extensionsr	   r
   r   (stripe.params.apps._secret_create_paramsr   .stripe.params.apps._secret_delete_where_paramsr   &stripe.params.apps._secret_find_paramsr   &stripe.params.apps._secret_list_paramsr   r   r   r   r   r   <module>   s   