o
    Bi%                     @   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 d dlmZmZmZmZmZ d d	lmZmZmZmZmZ erNd d
lmZ G dd ded ed ed ZdS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)RequestOptions)UpdateableAPIResource)sanitize_id)ClassVarDictListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Filec                   @   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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_NAMEc                   @   sD   e Zd ZU eee  ed< 	 ee ed< 	 eed< 	 ed ed< dS )FileLink.CreateParamsexpand
expires_atfileLiteral['']|Dict[str, str]metadataN)__name__
__module____qualname__r   r   str__annotations__int r#   r#   Q/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/_file_link.pyCreateParams$   s   
 r%   c                   @   sr   e Zd ZU ed ed< 	 ee ed< 	 eee  ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< d	S )
FileLink.ListParamszFileLink.ListParamsCreated|intcreatedending_beforer   expiredr   limitstarting_afterN)	r   r   r   r   r!   r    r   boolr"   r#   r#   r#   r$   
ListParams6   s   
 r-   c                   @   sD   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )zFileLink.ListParamsCreatedgtgteltlteN)r   r   r   r   r"   r!   r#   r#   r#   r$   ListParamsCreatedT   s   
 r2   c                   @   s:   e Zd ZU eee  ed< 	 ed ed< 	 ed ed< dS )FileLink.ModifyParamsr   zLiteral['']|Literal['now']|intr   r   r   Nr   r   r   r   r   r    r!   r#   r#   r#   r$   ModifyParamsf   s   
 r5   c                   @   s   e Zd ZU eee  ed< dS )FileLink.RetrieveParamsr   Nr4   r#   r#   r#   r$   RetrieveParamst   s   
 r7   r'   r)   r   r   r   idlivemoder   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#   r#   r$   create   s   zFileLink.createc                    s"   t d| jd|  |dI dH S )r>   r   r?   r@   N)r   _static_request_asyncrB   rC   r#   r#   r$   create_async   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)rA   rB   
isinstancer   	TypeErrortyper   rD   r<   resultr#   r#   r$   list   s   
zFileLink.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rH   rI   r@   NrJ   )rF   rB   rK   r   rL   rM   r   rN   r#   r#   r$   
list_async   s   
zFileLink.list_asyncr3   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@   )rB   r   r   rA   rD   r8   r<   r;   r#   r#   r$   modify   s   zFileLink.modifyc                    s2   d|   t|f }td| jd||dI dH S )rR   rS   r   r?   r@   N)rB   r   r   rF   rT   r#   r#   r$   modify_async   s   
zFileLink.modify_asyncr6   c                 K   s   | |fi |}|   |S )<
        Retrieves the file link with the given ID.
        )refreshrD   r8   r<   instancer#   r#   r$   retrieve  s   zFileLink.retrievec                    s$   | |fi |}|  I dH  |S )rW   N)refresh_asyncrY   r#   r#   r$   retrieve_async  s   zFileLink.retrieve_asyncN) r   r   r   __doc__r   r	   r   r!   r   r%   r-   r   r2   r5   r7   r"   r,   r   r   r    r
   classmethodr   rE   rG   r   rP   rQ   rU   rV   r[   r]   r#   r#   r#   r$   r      s   
 
r   N)stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._updateable_api_resourcer   stripe._utilr   typingr	   r
   r   r   r   typing_extensionsr   r   r   r   r   stripe._filer   r   r#   r#   r#   r$   <module>   s    
