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mZ d dlmZmZmZ erZd d	lmZ d 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 e	d ZdS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)UpdateableAPIResource)sanitize_id)ClassVarDictOptionalcast)LiteralUnpackTYPE_CHECKING)File)FileLinkCreateParams)FileLinkListParams)FileLinkModifyParams)FileLinkRetrieveParamsc                   @   s  e Zd ZU dZdZeed  ed< eed< 	 e	ed< 	 e
e ed< 	 ed ed< 	 eed	< 	 e	ed
< 	 eeef ed< 	 ed ed< 	 e
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ed  fddZeded ded  fddZed	eded dd fddZed	eded dd fddZed	eded dd fd d!Zed	eded dd fd"d#Zd$S )%FileLinkz
    To share the contents of a `File` object with non-Stripe users, you can
    create a `FileLink`. `FileLink`s contain a URL that you can use to
    retrieve the contents of the file without authentication.
    	file_linkOBJECT_NAMEcreatedexpired
expires_atr   fileidlivemodemetadataobjecturlparamsr   returnc                 K   s   t d| jd|  |dS )1
        Creates a new file link object.
        r   postr    )r   _static_request	class_urlclsr     r)   q/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_file_link.pycreateE   s   zFileLink.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_asyncS   s   
zFileLink.create_asyncr   c                 K   s4   | j d|  |d}t|tstdt|j |S )/
        Returns a list of file links.
        getr$   %Expected list object from API, got %s)r%   r&   
isinstancer   	TypeErrortype__name__r(   r    resultr)   r)   r*   listc   s   
zFileLink.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r.   r/   r$   Nr0   )r,   r&   r1   r   r2   r3   r4   r5   r)   r)   r*   
list_asyncw   s   
zFileLink.list_asyncr   c                 K   s*   d|   t|f }td| jd||dS )_
        Updates an existing file link object. Expired links can no longer be updated.
        %s/%sr   r#   r$   )r&   r   r   r%   r(   r   r    r   r)   r)   r*   modify   s   zFileLink.modifyc                    s2   d|   t|f }td| jd||dI dH S )r9   r:   r   r#   r$   N)r&   r   r   r,   r;   r)   r)   r*   modify_async   s   
zFileLink.modify_asyncr   c                 K   s   | |fi |}|   |S )<
        Retrieves the file link with the given ID.
        )refreshr(   r   r    instancer)   r)   r*   retrieve   s   zFileLink.retrievec                    s$   | |fi |}|  I dH  |S )r>   N)refresh_asyncr@   r)   r)   r*   retrieve_async   s   zFileLink.retrieve_asyncN)r4   
__module____qualname____doc__r   r   r   __annotations__intboolr
   r   strr	   classmethodr   r+   r-   r   r7   r8   r<   r=   rB   rD   r)   r)   r)   r*   r      s   
 
r   N) stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._updateable_api_resourcer   stripe._utilr   typingr   r	   r
   r   typing_extensionsr   r   r   stripe._filer   &stripe.params._file_link_create_paramsr   $stripe.params._file_link_list_paramsr   &stripe.params._file_link_modify_paramsr   (stripe.params._file_link_retrieve_paramsr   r   r)   r)   r)   r*   <module>   s&   
