a
    !f                     @   s   d dl Z 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mZ erd dlmZ G d	d
 d
ed
 ZeZdS )    N)api_requestorutil)ListableAPIResource)
ListObject)RequestOptions)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)FileLinkc                   @   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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e ee ee ed ed  dddZeeed d dddZd Zed!d" Zed'd d#d$d%ZdS )(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 independetly (for example, the results of a [Sigma scheduled
    query](https://stripe.com/docs/api#scheduled_queries)).

    Related guide: [File upload guide](https://stripe.com/docs/file-upload)
    fileOBJECT_NAMEc                   @   sV   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed	 ed
< ed ed< dS )File.ListParamszFile.ListParamsCreated|intcreatedstrZending_before	List[str]expandintlimitah  Literal['account_requirement', 'additional_verification', 'business_icon', 'business_logo', 'customer_signature', 'dispute_evidence', 'document_provider_identity_document', 'finance_report_run', 'identity_document', 'identity_document_downloadable', 'pci_document', 'selfie', 'sigma_scheduled_query', 'tax_document_user_upload', 'terminal_reader_splashscreen']purposeZstarting_afterN__name__
__module____qualname__r   __annotations__ r!   r!   Z/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/file.py
ListParams"   s   
r#   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )zFile.ListParamsCreatedr   gtZgteltZlteNr   r!   r!   r!   r"   ListParamsCreated;   s
   
r&   c                   @   s   e Zd ZU ed ed< dS )File.RetrieveParamsr   r   Nr   r!   r!   r!   r"   RetrieveParamsM   s   
r(   r   Z
expires_atfilenameidr   linksobject)Zaccount_requirementZadditional_verificationZbusiness_iconZbusiness_logoZcustomer_signatureZdispute_evidenceZ#document_provider_identity_documentZfinance_report_runZidentity_documentZidentity_document_downloadableZpci_documentselfieZsigma_scheduled_queryZtax_document_user_uploadZterminal_reader_splashscreenr   sizetitletypeurlNr   )api_keystripe_versionstripe_accountparamsreturnc                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z
        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)r2   r3   r4   r5   z%Expected list object from API, got %s)Z_static_request	class_url
isinstancer   	TypeErrorr0   r   )clsr2   r3   r4   r5   resultr!   r!   r"   list   s    
z	File.listr'   )r*   r5   r6   c                 K   s   | |fi |}|   |S )z
        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://stripe.com/docs/file-upload#download-file-contents).
        )refresh)r;   r*   r5   instancer!   r!   r"   retrieve   s    zFile.retrieveZfile_uploadc                 C   s   dS )Nz	/v1/filesr!   )r;   r!   r!   r"   r8      s    zFile.class_url)r6   c                 K   sX   |p|}t j|tj||d}|  }ddi}	|jd|||	d\}
}tdt|
|||S )N)Zapi_baseapi_versionaccountzContent-Typezmultipart/form-datapost)r5   headersr   )	r   ZAPIRequestorstripeZupload_api_baser8   requestr
   r   Zconvert_to_stripe_object)r;   r2   rA   r3   r4   r5   versionZ	requestorr1   Zsupplied_headersresponser!   r!   r"   create   s$    

zFile.create)NNN)NNNN)r   r   r   __doc__r   r   r   r    r   r#   r   r&   r(   r   r	   r   r   classmethodr   r=   r@   ZOBJECT_NAME_ALTr8   rI   r!   r!   r!   r"   r      s\   

   
    r   )rE   r   r   Zstripe.api_resources.abstractr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   typingr   r   r	   r
   Ztyping_extensionsr   r   r   r   r   Zstripe.api_resources.file_linkr   r   Z
FileUploadr!   r!   r!   r"   <module>   s    N