226 lines
4.8 KiB
TypeScript
226 lines
4.8 KiB
TypeScript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
|
|
import { APIResource } from '../../../resource';
|
|
import { isRequestOptions } from '../../../core';
|
|
import * as Core from '../../../core';
|
|
import * as ContentAPI from './content';
|
|
import { Content } from './content';
|
|
import { CursorPage, type CursorPageParams } from '../../../pagination';
|
|
|
|
export class Files extends APIResource {
|
|
content: ContentAPI.Content = new ContentAPI.Content(this._client);
|
|
|
|
/**
|
|
* Create a Container File
|
|
*
|
|
* You can send either a multipart/form-data request with the raw file content, or
|
|
* a JSON request with a file ID.
|
|
*/
|
|
create(
|
|
containerId: string,
|
|
body: FileCreateParams,
|
|
options?: Core.RequestOptions,
|
|
): Core.APIPromise<FileCreateResponse> {
|
|
return this._client.post(
|
|
`/containers/${containerId}/files`,
|
|
Core.multipartFormRequestOptions({ body, ...options }),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Retrieve Container File
|
|
*/
|
|
retrieve(
|
|
containerId: string,
|
|
fileId: string,
|
|
options?: Core.RequestOptions,
|
|
): Core.APIPromise<FileRetrieveResponse> {
|
|
return this._client.get(`/containers/${containerId}/files/${fileId}`, options);
|
|
}
|
|
|
|
/**
|
|
* List Container files
|
|
*/
|
|
list(
|
|
containerId: string,
|
|
query?: FileListParams,
|
|
options?: Core.RequestOptions,
|
|
): Core.PagePromise<FileListResponsesPage, FileListResponse>;
|
|
list(
|
|
containerId: string,
|
|
options?: Core.RequestOptions,
|
|
): Core.PagePromise<FileListResponsesPage, FileListResponse>;
|
|
list(
|
|
containerId: string,
|
|
query: FileListParams | Core.RequestOptions = {},
|
|
options?: Core.RequestOptions,
|
|
): Core.PagePromise<FileListResponsesPage, FileListResponse> {
|
|
if (isRequestOptions(query)) {
|
|
return this.list(containerId, {}, query);
|
|
}
|
|
return this._client.getAPIList(`/containers/${containerId}/files`, FileListResponsesPage, {
|
|
query,
|
|
...options,
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Delete Container File
|
|
*/
|
|
del(containerId: string, fileId: string, options?: Core.RequestOptions): Core.APIPromise<void> {
|
|
return this._client.delete(`/containers/${containerId}/files/${fileId}`, {
|
|
...options,
|
|
headers: { Accept: '*/*', ...options?.headers },
|
|
});
|
|
}
|
|
}
|
|
|
|
export class FileListResponsesPage extends CursorPage<FileListResponse> {}
|
|
|
|
export interface FileCreateResponse {
|
|
/**
|
|
* Unique identifier for the file.
|
|
*/
|
|
id: string;
|
|
|
|
/**
|
|
* Size of the file in bytes.
|
|
*/
|
|
bytes: number;
|
|
|
|
/**
|
|
* The container this file belongs to.
|
|
*/
|
|
container_id: string;
|
|
|
|
/**
|
|
* Unix timestamp (in seconds) when the file was created.
|
|
*/
|
|
created_at: number;
|
|
|
|
/**
|
|
* The type of this object (`container.file`).
|
|
*/
|
|
object: 'container.file';
|
|
|
|
/**
|
|
* Path of the file in the container.
|
|
*/
|
|
path: string;
|
|
|
|
/**
|
|
* Source of the file (e.g., `user`, `assistant`).
|
|
*/
|
|
source: string;
|
|
}
|
|
|
|
export interface FileRetrieveResponse {
|
|
/**
|
|
* Unique identifier for the file.
|
|
*/
|
|
id: string;
|
|
|
|
/**
|
|
* Size of the file in bytes.
|
|
*/
|
|
bytes: number;
|
|
|
|
/**
|
|
* The container this file belongs to.
|
|
*/
|
|
container_id: string;
|
|
|
|
/**
|
|
* Unix timestamp (in seconds) when the file was created.
|
|
*/
|
|
created_at: number;
|
|
|
|
/**
|
|
* The type of this object (`container.file`).
|
|
*/
|
|
object: 'container.file';
|
|
|
|
/**
|
|
* Path of the file in the container.
|
|
*/
|
|
path: string;
|
|
|
|
/**
|
|
* Source of the file (e.g., `user`, `assistant`).
|
|
*/
|
|
source: string;
|
|
}
|
|
|
|
export interface FileListResponse {
|
|
/**
|
|
* Unique identifier for the file.
|
|
*/
|
|
id: string;
|
|
|
|
/**
|
|
* Size of the file in bytes.
|
|
*/
|
|
bytes: number;
|
|
|
|
/**
|
|
* The container this file belongs to.
|
|
*/
|
|
container_id: string;
|
|
|
|
/**
|
|
* Unix timestamp (in seconds) when the file was created.
|
|
*/
|
|
created_at: number;
|
|
|
|
/**
|
|
* The type of this object (`container.file`).
|
|
*/
|
|
object: 'container.file';
|
|
|
|
/**
|
|
* Path of the file in the container.
|
|
*/
|
|
path: string;
|
|
|
|
/**
|
|
* Source of the file (e.g., `user`, `assistant`).
|
|
*/
|
|
source: string;
|
|
}
|
|
|
|
export interface FileCreateParams {
|
|
/**
|
|
* The File object (not file name) to be uploaded.
|
|
*/
|
|
file?: Core.Uploadable;
|
|
|
|
/**
|
|
* Name of the file to create.
|
|
*/
|
|
file_id?: string;
|
|
}
|
|
|
|
export interface FileListParams extends CursorPageParams {
|
|
/**
|
|
* Sort order by the `created_at` timestamp of the objects. `asc` for ascending
|
|
* order and `desc` for descending order.
|
|
*/
|
|
order?: 'asc' | 'desc';
|
|
}
|
|
|
|
Files.FileListResponsesPage = FileListResponsesPage;
|
|
Files.Content = Content;
|
|
|
|
export declare namespace Files {
|
|
export {
|
|
type FileCreateResponse as FileCreateResponse,
|
|
type FileRetrieveResponse as FileRetrieveResponse,
|
|
type FileListResponse as FileListResponse,
|
|
FileListResponsesPage as FileListResponsesPage,
|
|
type FileCreateParams as FileCreateParams,
|
|
type FileListParams as FileListParams,
|
|
};
|
|
|
|
export { Content as Content };
|
|
}
|