diff --git a/docs/development/core/public/kibana-plugin-core-public.savedobject.md b/docs/development/core/public/kibana-plugin-core-public.savedobject.md
index 9ced619ad4bfe..c6bc13b98bc06 100644
--- a/docs/development/core/public/kibana-plugin-core-public.savedobject.md
+++ b/docs/development/core/public/kibana-plugin-core-public.savedobject.md
@@ -4,7 +4,6 @@
## SavedObject interface
-
Signature:
```typescript
diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobject.md b/docs/development/core/server/kibana-plugin-core-server.savedobject.md
index ebb105c846aff..0df97b0d4221a 100644
--- a/docs/development/core/server/kibana-plugin-core-server.savedobject.md
+++ b/docs/development/core/server/kibana-plugin-core-server.savedobject.md
@@ -4,7 +4,6 @@
## SavedObject interface
-
Signature:
```typescript
diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md
index 46667230edc3b..fa5dc745e6931 100644
--- a/src/core/public/public.api.md
+++ b/src/core/public/public.api.md
@@ -944,6 +944,8 @@ export type RecursiveReadonly = T extends (...args: any[]) => any ? T : T ext
[K in keyof T]: RecursiveReadonly;
}> : T;
+// Warning: (ae-missing-release-tag) "SavedObject" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
+//
// @public (undocumented)
export interface SavedObject {
attributes: T;
diff --git a/src/core/public/saved_objects/index.ts b/src/core/public/saved_objects/index.ts
index 5015a9c3db78e..13b4a12893666 100644
--- a/src/core/public/saved_objects/index.ts
+++ b/src/core/public/saved_objects/index.ts
@@ -32,11 +32,6 @@ export {
export { SimpleSavedObject } from './simple_saved_object';
export { SavedObjectsStart, SavedObjectsService } from './saved_objects_service';
export {
- SavedObject,
- SavedObjectAttribute,
- SavedObjectAttributes,
- SavedObjectAttributeSingle,
- SavedObjectReference,
SavedObjectsBaseOptions,
SavedObjectsFindOptions,
SavedObjectsMigrationVersion,
@@ -48,3 +43,11 @@ export {
SavedObjectsImportError,
SavedObjectsImportRetry,
} from '../../server/types';
+
+export {
+ SavedObject,
+ SavedObjectAttribute,
+ SavedObjectAttributes,
+ SavedObjectAttributeSingle,
+ SavedObjectReference,
+} from '../../types';
diff --git a/src/core/server/saved_objects/types.ts b/src/core/server/saved_objects/types.ts
index 1d927211b43e5..962965a08f8b2 100644
--- a/src/core/server/saved_objects/types.ts
+++ b/src/core/server/saved_objects/types.ts
@@ -35,66 +35,17 @@ export {
import { LegacyConfig } from '../legacy';
import { SavedObjectUnsanitizedDoc } from './serialization';
import { SavedObjectsMigrationLogger } from './migrations/core/migration_logger';
+import { SavedObject } from '../../types';
+
export {
SavedObjectAttributes,
SavedObjectAttribute,
SavedObjectAttributeSingle,
+ SavedObject,
+ SavedObjectReference,
+ SavedObjectsMigrationVersion,
} from '../../types';
-/**
- * Information about the migrations that have been applied to this SavedObject.
- * When Kibana starts up, KibanaMigrator detects outdated documents and
- * migrates them based on this value. For each migration that has been applied,
- * the plugin's name is used as a key and the latest migration version as the
- * value.
- *
- * @example
- * migrationVersion: {
- * dashboard: '7.1.1',
- * space: '6.6.6',
- * }
- *
- * @public
- */
-export interface SavedObjectsMigrationVersion {
- [pluginName: string]: string;
-}
-
-/**
- * @public
- */
-export interface SavedObject {
- /** The ID of this Saved Object, guaranteed to be unique for all objects of the same `type` */
- id: string;
- /** The type of Saved Object. Each plugin can define it's own custom Saved Object types. */
- type: string;
- /** An opaque version number which changes on each successful write operation. Can be used for implementing optimistic concurrency control. */
- version?: string;
- /** Timestamp of the last time this document had been updated. */
- updated_at?: string;
- error?: {
- message: string;
- statusCode: number;
- };
- /** {@inheritdoc SavedObjectAttributes} */
- attributes: T;
- /** {@inheritdoc SavedObjectReference} */
- references: SavedObjectReference[];
- /** {@inheritdoc SavedObjectsMigrationVersion} */
- migrationVersion?: SavedObjectsMigrationVersion;
-}
-
-/**
- * A reference to another saved object.
- *
- * @public
- */
-export interface SavedObjectReference {
- name: string;
- type: string;
- id: string;
-}
-
/**
*
* @public
diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md
index 84fe081adaae6..229ffc4d21575 100644
--- a/src/core/server/server.api.md
+++ b/src/core/server/server.api.md
@@ -1595,6 +1595,8 @@ export interface RouteValidatorOptions {
// @public
export type SafeRouteMethod = 'get' | 'options';
+// Warning: (ae-missing-release-tag) "SavedObject" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
+//
// @public (undocumented)
export interface SavedObject {
attributes: T;
diff --git a/src/core/types/saved_objects.ts b/src/core/types/saved_objects.ts
index 73eb2db11d62f..d3faab6c557cd 100644
--- a/src/core/types/saved_objects.ts
+++ b/src/core/types/saved_objects.ts
@@ -46,3 +46,54 @@ export type SavedObjectAttribute = SavedObjectAttributeSingle | SavedObjectAttri
export interface SavedObjectAttributes {
[key: string]: SavedObjectAttribute;
}
+
+/**
+ * A reference to another saved object.
+ *
+ * @public
+ */
+export interface SavedObjectReference {
+ name: string;
+ type: string;
+ id: string;
+}
+
+/**
+ * Information about the migrations that have been applied to this SavedObject.
+ * When Kibana starts up, KibanaMigrator detects outdated documents and
+ * migrates them based on this value. For each migration that has been applied,
+ * the plugin's name is used as a key and the latest migration version as the
+ * value.
+ *
+ * @example
+ * migrationVersion: {
+ * dashboard: '7.1.1',
+ * space: '6.6.6',
+ * }
+ *
+ * @public
+ */
+export interface SavedObjectsMigrationVersion {
+ [pluginName: string]: string;
+}
+
+export interface SavedObject {
+ /** The ID of this Saved Object, guaranteed to be unique for all objects of the same `type` */
+ id: string;
+ /** The type of Saved Object. Each plugin can define it's own custom Saved Object types. */
+ type: string;
+ /** An opaque version number which changes on each successful write operation. Can be used for implementing optimistic concurrency control. */
+ version?: string;
+ /** Timestamp of the last time this document had been updated. */
+ updated_at?: string;
+ error?: {
+ message: string;
+ statusCode: number;
+ };
+ /** {@inheritdoc SavedObjectAttributes} */
+ attributes: T;
+ /** {@inheritdoc SavedObjectReference} */
+ references: SavedObjectReference[];
+ /** {@inheritdoc SavedObjectsMigrationVersion} */
+ migrationVersion?: SavedObjectsMigrationVersion;
+}
diff --git a/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts b/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts
index 3ce46e2955f50..6a363af9e57d4 100644
--- a/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts
+++ b/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts
@@ -19,6 +19,7 @@ import {
// @ts-ignore
} from '../../common/constants';
import { LayerDescriptor } from '../../common/descriptor_types';
+import { MapSavedObject } from '../../../../../plugins/maps/common/map_saved_object_type';
interface IStats {
[key: string]: {
@@ -32,33 +33,6 @@ interface ILayerTypeCount {
[key: string]: number;
}
-interface IMapSavedObject {
- [key: string]: any;
- fields: IFieldType[];
- title: string;
- id?: string;
- type?: string;
- timeFieldName?: string;
- fieldFormatMap?: Record<
- string,
- {
- id: string;
- params: unknown;
- }
- >;
- attributes?: {
- title?: string;
- description?: string;
- mapStateJSON?: string;
- layerListJSON?: string;
- uiStateJSON?: string;
- bounds?: {
- type?: string;
- coordinates?: [];
- };
- };
-}
-
function getUniqueLayerCounts(layerCountsList: ILayerTypeCount[], mapsCount: number) {
const uniqueLayerTypes = _.uniq(_.flatten(layerCountsList.map(lTypes => Object.keys(lTypes))));
@@ -102,7 +76,7 @@ export function buildMapsTelemetry({
indexPatternSavedObjects,
settings,
}: {
- mapSavedObjects: IMapSavedObject[];
+ mapSavedObjects: MapSavedObject[];
indexPatternSavedObjects: IIndexPattern[];
settings: SavedObjectAttribute;
}): SavedObjectAttributes {
@@ -183,7 +157,7 @@ export async function getMapsTelemetry(
savedObjectsClient: SavedObjectsClientContract,
config: Function
) {
- const mapSavedObjects: IMapSavedObject[] = await getMapSavedObjects(savedObjectsClient);
+ const mapSavedObjects: MapSavedObject[] = await getMapSavedObjects(savedObjectsClient);
const indexPatternSavedObjects: IIndexPattern[] = await getIndexPatternSavedObjects(
savedObjectsClient
);
diff --git a/x-pack/plugins/maps/common/map_saved_object_type.ts b/x-pack/plugins/maps/common/map_saved_object_type.ts
new file mode 100644
index 0000000000000..e5b4876186fd8
--- /dev/null
+++ b/x-pack/plugins/maps/common/map_saved_object_type.ts
@@ -0,0 +1,22 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License;
+ * you may not use this file except in compliance with the Elastic License.
+ */
+/* eslint-disable @typescript-eslint/consistent-type-definitions */
+
+import { SavedObject } from '../../../../src/core/types/saved_objects';
+
+export type MapSavedObjectAttributes = {
+ title?: string;
+ description?: string;
+ mapStateJSON?: string;
+ layerListJSON?: string;
+ uiStateJSON?: string;
+ bounds?: {
+ type?: string;
+ coordinates?: [];
+ };
+};
+
+export type MapSavedObject = SavedObject;