///
import type { Dict } from './utils';
import type { Stream } from 'stream';
export declare type TResourceType = 'file' | 'dir';
export declare type TUploadFile = Stream | Buffer | string;
export declare type TPreviewSize = 'S' | 'M' | 'L' | 'XL' | 'XXL' | 'XXXL' | string;
export declare type TSort = 'name' | '-name' | 'path' | '-path' | 'created' | '-created' | 'modified' | '-modified' | 'size' | '-size';
export interface IResource {
antivirus_status: Dict;
resource_id: string;
share: {
is_root: boolean;
is_owned: boolean;
rights: string;
};
file: string;
/**
* Размер файла
*/
size: number;
photoslice_time: string;
_embedded: {
sort: string;
items: Dict[];
limit: number;
offset: number;
path: string;
total: number;
};
exif: {
date_time: string;
gps_longitude: Dict;
gps_latitude: Dict;
};
/**
* Объект со всеми атрибутами, заданными с помощью запроса Добавление метаинформации для ресурса. Содержит только ключи вида имя:значение (объекты или массивы содержать не может).
* {@link https://yandex.ru/dev/disk/api/reference/meta-add.html}
*/
custom_properties: Dict;
media_type: string;
/**
* Ссылка на уменьшенное изображение из файла (превью). Включается в ответ только для файлов поддерживаемых графических форматов.
* Запросить превью можно только с OAuth-токеном пользователя, имеющего доступ к самому файлу.
*/
preview: string;
/**
* Тип ресурса
*/
type: TResourceType;
/**
* MIME-тип файла
*/
mime_type: string;
revision: number;
/**
* Ссылка на опубликованный ресурс.
* Включается в ответ только если указанный файл или папка опубликован.
*/
public_url: string;
/**
* Полный путь к ресурсу на Диске.
* В метаинформации опубликованной папки пути указываются относительно самой папки. Для опубликованных файлов значение ключа всегда «/».
* Для ресурса, находящегося в Корзине, к атрибуту может быть добавлен уникальный идентификатор (например, trash:/foo_1408546879). С помощью этого идентификатора ресурс можно отличить от других удаленных ресурсов с тем же именем.
*/
path: string;
/**
* MD5-хэш файла
*/
md5: string;
/**
* Ключ опубликованного ресурса.
* Включается в ответ только если указанный файл или папка опубликован.
*/
public_key: string;
sha256: string;
/**
* Имя ресурса
*/
name: string;
/**
* Дата и время создания ресурса, в формате ISO 8601
*/
created: string;
/**
* Дата и время изменения ресурса, в формате ISO 8601
*/
modified: string;
comment_ids: {
private_resource: string;
public_resource: string;
};
}
export interface ILink {
href: string;
method: string;
templated: boolean;
}
export interface IRemoveParams {
path: string;
permanently?: boolean;
forceAsync?: boolean;
}
export interface ICopyParams {
from: string;
to: string;
forceAsync?: boolean;
overwrite?: boolean;
}
export interface IMoveParams extends ICopyParams {
}
export interface IPublishParams {
path: string;
}
export interface IUnpublishParams extends IPublishParams {
}
export interface IGetItemsListParams {
/**
* Количество выводимых вложенных ресурсов
*/
limit?: number;
/**
* Фильтр по медиа типу
*/
mediaType?: string;
/**
* Смещение от начала списка вложенных ресурсов
*/
offset?: number;
/**
* Разрешить обрезку превью
*/
previewCrop?: boolean;
/**
* Размер превью
*/
previewSize?: TPreviewSize;
/**
* Поле для сортировки ресурсов
*/
sort?: TSort;
/**
* Список возвращаемых атрибутов
*/
fields?: string;
}
export interface IGetItemMetadataParams extends IGetItemsListParams {
path: string;
}
export interface IGetLastUploadedItemsListParams extends Omit {
}
export interface IGetPublicItemsListParams extends Omit {
type?: TResourceType;
}
export interface IGetUploadUrlParams {
path: string;
overwrite?: boolean;
}
export interface IUploadByUploadUrlParams {
url: string;
file: TUploadFile;
}
export interface IUploadParams extends IGetUploadUrlParams, Omit {
}
export interface IUploadByExternalUrlParams {
path: string;
url: string;
disableRedirects?: boolean;
}
export interface IGetDownloadUrlParams {
path: string;
}
export interface IGetTrashParams extends IGetItemsListParams {
}
export interface IClearTrashParams {
/**
* Путь к удаляемому ресурсу относительно корневого каталога Корзины. Например, %2Fbar%2Fphoto.png. Если параметр не задан, Корзина очищается полностью.
*/
path?: string;
/**
* Выполнить асинхронно.
*/
forceAsync?: boolean;
}
export interface IRestoreTrashParams {
path: string;
name?: string;
overwrite?: boolean;
forceAsync?: boolean;
}
export interface IUpdateItemMetadataParams {
path: string;
body: Dict;
}
export interface IIsItemExistParams {
path: string;
type?: TResourceType;
}
export interface IGetDiskMetadataRes {
total_space: number;
trash_size: number;
used_space: number;
max_file_size: number;
system_folders: Dict;
is_paid: boolean;
unlimited_autoupload_enabled: boolean;
user: {
country: string;
login: string;
display_name: string;
uid: string;
};
revision: number;
}
export interface IGetItemsListRes {
items: IResource[];
limit: number;
offset: number;
}
export interface IGetPublicItemsListRes extends IGetItemsListRes {
type: TResourceType;
}
export interface IGetLastUploadedItemsListRes extends Omit {
}
export interface IGetUploadUrlRes extends ILink {
operation_id: string;
}
export declare type TGetTrashRes = IResource[];