
    kh                         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rd dlmZ d dlmZ d dlmZ d d	lmZ  G d
 ded   ed         ZeZy)    )CreateableAPIResource)
ListObject)ListableAPIResource)ClassVarOptionalcast)LiteralUnpackTYPE_CHECKING)FileLink)FileCreateParams)FileListParams)FileRetrieveParamsc                      e Zd ZU dZdZeed      ed<   eed<   	 e	e   ed<   	 e	e
   ed<   	 e
ed<   	 e	ed      ed	<   	 ed   ed
<   	 ed   ed<   	 eed<   	 e	e
   ed<   	 e	e
   ed<   	 e	e
   ed<   	 eded   dd fd       Zeded   dd fd       Zeded   ded    fd       Zeded   ded    fd       Zede
ded   dd fd       Zede
ded   dd fd       ZdZed        Zy)Filea  
    This object represents files hosted on Stripe's servers. You can upload
    files with the [create file](https://stripe.com/docs/api#create_file) request
    (for example, when uploading dispute evidence). Stripe also
    creates files independently (for example, the results of a [Sigma scheduled
    query](https://docs.stripe.com/api#scheduled_queries)).

    Related guide: [File upload guide](https://stripe.com/docs/file-upload)
    fileOBJECT_NAMEcreated
expires_atfilenameidr   linksobject)account_requirementadditional_verificationbusiness_iconbusiness_logocustomer_signaturedispute_evidence#document_provider_identity_documentfinance_report_runfinancial_account_statementidentity_documentidentity_document_downloadableissuing_regulatory_reportingpci_documentselfiesigma_scheduled_querytax_document_user_uploadterminal_android_apkterminal_reader_splashscreenpurposesizetitletypeurlparamsr   returnc           	      f    d|d<   t        d| j                  d| j                         |d            S )%  
        To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file.

        All of Stripe's officially supported Client libraries support sending multipart/form-data.
        multipart/form-datacontent_typer   postfilesr1   base_address)r   _static_request	class_urlclsr1   s     L/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/stripe/_file.pycreatezFile.create\   sC     "7~$	   
 	
    c           	         K   d|d<   t        d| j                  d| j                         |d       d{         S 7 w)r4   r5   r6   r   r7   r8   r9   N)r   _static_request_asyncr<   r=   s     r?   create_asynczFile.create_asynco   sQ      "7~++$	 ,  
 	
s   2?=
	?r   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )
        Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top.
        getr1   %Expected list object from API, got %s)r;   r<   
isinstancer   	TypeErrorr/   __name__r>   r1   results      r?   listz	File.list   s]    
 $$MMO % 

 &*-7<((* 
 rA   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)rF   rG   rH   NrI   )rC   r<   rJ   r   rK   r/   rL   rM   s      r?   
list_asynczFile.list_async   sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 8     | |fi |}|j                          |S )
        Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to [access file contents](https://docs.stripe.com/docs/file-upload#download-file-contents).
        )refreshr>   r   r1   instances       r?   retrievezFile.retrieve   s$     r$V$rA   c                 T   K    | |fi |}|j                          d{    |S 7 w)rS   N)refresh_asyncrU   s       r?   retrieve_asynczFile.retrieve_async   s3      r$V$$$&&& 	's   (&(file_uploadc                      y)Nz	/v1/files )r>   s    r?   r<   zFile.class_url   s    rA   N)rL   
__module____qualname____doc__r   r   r	   __annotations__intr   strr   classmethodr
   r@   rD   rO   rQ   rW   rZ   OBJECT_NAME_ALTr<   r]   rA   r?   r   r      s    .4K'&/*3L  sm 	G Jz*++ FO 	( ( I C= 3- 
# 
f%78 
V 
 
$ 
01
	
 
( F#34 F9K  " ./	F	 &  &'; <	   &'; <	  $O rA   r   N)stripe._createable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   typingr   r   r   typing_extensionsr	   r
   r   stripe._file_linkr   !stripe.params._file_create_paramsr   stripe.params._file_list_paramsr   #stripe.params._file_retrieve_paramsr   r   
FileUploadr]   rA   r?   <module>rp      sP    B * = + + < <*B>Fx (*=f*E xx 
rA   