import { SavedObjectReference, SavedObjectsMigrationVersion } from './saved_objects'; import { SimpleSavedObject } from './simple_saved_object'; export interface SavedObjectsCreateOptions { /** * (Not recommended) Specify an id instead of having the saved objects service generate one for you. */ id?: string; /** If a document with the given `id` already exists, overwrite it's contents (default=false). */ overwrite?: boolean; /** {@inheritDoc SavedObjectsMigrationVersion} */ migrationVersion?: SavedObjectsMigrationVersion; references?: SavedObjectReference[]; workspaces?: string[]; } export interface SavedObjectsBulkCreateObject extends SavedObjectsCreateOptions { type: string; attributes: T; } /** @public */ export interface SavedObjectsBulkCreateOptions { /** If a document with the given `id` already exists, overwrite it's contents (default=false). */ overwrite?: boolean; workspaces?: string[]; } export interface SavedObjectsBulkUpdateObject { type: string; id: string; attributes: T; version?: string; references?: SavedObjectReference[]; } /** @public */ export interface SavedObjectsBulkUpdateOptions { namespace?: string; } /** @public */ export interface SavedObjectsUpdateOptions { version?: string; /** {@inheritDoc SavedObjectsMigrationVersion} */ migrationVersion?: SavedObjectsMigrationVersion; references?: SavedObjectReference[]; } /** @public */ export interface SavedObjectsBatchResponse { savedObjects: Array>; } /** @public */ export interface SavedObjectsDeleteOptions { /** Force deletion of an object that exists in multiple namespaces */ force?: boolean; } /** * Return type of the Saved Objects `find()` method. * * *Note*: this type is different between the Public and Server Saved Objects * clients. * * @public */ export interface SavedObjectsFindResponsePublic extends SavedObjectsBatchResponse { total: number; perPage: number; page: number; } export interface SavedObjectsFindOptions { type?: string; search?: string; searchFields?: string[]; page?: number; perPage?: number; fields?: string[]; hasReference?: { type: string; id: string; }; defaultSearchOperator?: string; sortField?: string; filter?: string; namespaces?: string[]; preference?: string; workspaces?: string[]; } export interface SavedObjectsClientContract { create(type: string, attributes: T, options?: SavedObjectsCreateOptions): Promise>; bulkCreate(objects?: SavedObjectsBulkCreateObject[], options?: SavedObjectsBulkCreateOptions): Promise; delete(type: string, id: string, options?: SavedObjectsDeleteOptions): Promise<{ id: string; }>; find(options: SavedObjectsFindOptions): Promise>; get(type: string, id: string): Promise>; bulkGet(objects?: Array<{ id: string; type: string; }>): Promise>; update(type: string, id: string, attributes: T, options?: SavedObjectsUpdateOptions): Promise>; bulkUpdate(objects?: SavedObjectsBulkUpdateObject[]): Promise; }