a
    !f'                     @   s   d dl mZ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 G dd ded ed Zd	S )
    )CreateableAPIResourceListableAPIResource)
ListObject)RequestOptions)StripeObject)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackc                	   @   s  e Zd ZU dZdZeed  ed< 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G dd deZG dd de
Z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e ee ee ee ed  d d!d"d#Zed/ee ee ee ed$ d d%d&d'Zed0ee ee ee ed( d d%d)d*Zed1ee ee ee ed+ ed  d%d,d-Zde	iZdS )2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   a/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/apps/secret.pyScope   s   
r   c                   @   s>   e Zd ZU ed ed< ed ed< eed< eed< ded< d	S )
Secret.CreateParams	List[str]expandint
expires_atnamepayloadSecret.CreateParamsScopescopeNr   r   r   r   r   r   r   r   r   r   CreateParams'   s   
r'   c                   @   s&   e Zd ZU ed ed< ed ed< dS )r$   r   r   r   r   Nr   r   r   r   r   r   r   r   r   r   CreateParamsScope=   s   
r)   c                   @   s*   e Zd ZU ed ed< eed< ded< dS )Secret.DeleteWhereParamsr   r   r"   Secret.DeleteWhereParamsScoper%   Nr&   r   r   r   r   DeleteWhereParamsG   s   
r,   c                   @   s&   e Zd ZU ed ed< ed ed< dS )r+   r   r   r   r   Nr(   r   r   r   r   DeleteWhereParamsScopeU   s   
r-   c                   @   s*   e Zd ZU ed ed< eed< ded< dS )Secret.FindParamsr   r   r"   Secret.FindParamsScoper%   Nr&   r   r   r   r   
FindParams_   s   
r0   c                   @   s&   e Zd ZU ed ed< ed ed< dS )r/   r   r   r   r   Nr(   r   r   r   r   FindParamsScopem   s   
r1   c                   @   sF   e Zd ZU ed ed< ed ed< ed ed< ded< ed ed	< d
S )Secret.ListParamsr   Zending_beforer   r   r    limitSecret.ListParamsScoper%   Zstarting_afterN)r   r   r   r   r   r   r   r   r   
ListParamsw   s   
r5   c                   @   s&   e Zd ZU ed ed< ed ed< dS )r4   r   r   r   r   Nr(   r   r   r   r   ListParamsScope   s   
r6   createdZdeletedr!   idZlivemoder"   objectr#   r%   Nr   )api_keyidempotency_keystripe_versionstripe_accountparamsreturnc                 K   s    t d| d|  |||||S )zA
        Create or replace a secret in the secret store.
        r   post)r
   _static_request	class_url)clsr:   r;   r<   r=   r>   r   r   r   create   s    zSecret.creater*   )r:   r<   r=   r>   r?   c              
   K   s   t d| jdd||||dS )zK
        Deletes a secret from the secret store by name and scope.
        r   r@   z/v1/apps/secrets/deleter:   r<   r=   r>   r
   rA   rC   r:   r<   r=   r>   r   r   r   delete_where   s    zSecret.delete_wherer.   c              
   K   s   t d| jdd||||dS )zG
        Finds a secret in the secret store by name and scope.
        r   getz/v1/apps/secrets/findrE   rF   rG   r   r   r   find   s    zSecret.findr2   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z=
        List all secrets stored on the given scope.
        rI   rE   z%Expected list object from API, got %s)rA   rB   
isinstancer   	TypeErrorr   r   )rC   r:   r<   r=   r>   resultr   r   r   list  s    
zSecret.list)NNNN)NNN)NNN)NNN) r   r   r   __doc__r   r   r   r   r   r   r   r'   r   r)   r,   r-   r0   r1   r5   r6   r    r	   boolr   classmethodr   rD   rH   rJ   r   rN   Z_inner_class_typesr   r   r   r   r      s   





             r   N)Zstripe.api_resources.abstractr   r   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   typingr   r   r	   r
   Ztyping_extensionsr   r   r   r   r   r   r   r   r   <module>   s   