@kontent-ai/management-sdk
Version:
Official Kontent.ai management SDK
62 lines (53 loc) • 1.92 kB
text/typescript
import { AssetFolderContracts, SharedContracts } from '../../contracts';
import { SharedModels } from '../shared/shared-models';
export namespace AssetFolderModels {
export class AssetFolder implements SharedModels.IBaseModel<AssetFolderContracts.IAssetFolderContract> {
public id: string;
public name: string;
public externalId?: string;
public folders: AssetFolder[];
public codename: string;
public _raw!: AssetFolderContracts.IAssetFolderContract;
constructor(data: {
id: string;
name: string;
externalId?: string;
folders: AssetFolder[];
codename: string;
_raw: AssetFolderContracts.IAssetFolderContract;
}) {
this.id = data.id;
this.name = data.name;
this.externalId = data.externalId;
this.folders = data.folders;
this.codename = data.codename;
this._raw = data._raw;
}
}
export interface IAssetFolderValue {
name: string;
folders?: IAssetFolderValue[];
external_id?: string;
codename?: string;
}
export interface IAddAssetFoldersData {
folders: IAssetFolderValue[];
}
export type IModifyAssetFolderData = AddIntoOperation | RemoveOperation | RenameOperation;
export type AddIntoOperation = {
op: 'addInto';
reference?: SharedContracts.IReferenceObjectContract;
value: IAssetFolderValue;
before?: SharedContracts.IReferenceObjectContract;
after?: SharedContracts.IReferenceObjectContract;
};
export type RemoveOperation = {
op: 'remove';
reference: SharedContracts.IReferenceObjectContract;
};
export type RenameOperation = {
op: 'rename';
reference: SharedContracts.IReferenceObjectContract;
value: string;
};
}