import { SavedObjectsType } from 'kibana/server' ; import { createDashboardSavedObjectTypeMigrations , DashboardSavedObjectTypeMigrationsDeps , } from './dashboard_migrations' ; export const createDashboardSavedObjectType = ( { migrationDeps , } ) : SavedObjectsType => ( { name : 'dashboard' , hidden : false , namespaceType : 'multiple-isolated' , convertToMultiNamespaceTypeVersion : '8.0.0' , management : { icon : 'dashboardApp' , defaultSearchField : 'title' , importableAndExportable : true , getTitle ( obj ) { return obj . attributes . title ; } , getInAppUrl ( obj ) { return { path : `/app/dashboards#/view/${ encodeURIComponent ( obj . id ) }` , uiCapabilitiesPath : 'dashboard.show' , } ; } , } , mappings : { properties : { description : { type : 'text' } , hits : { type : 'integer' , index : false , doc_values : false } , kibanaSavedObjectMeta : { properties : { searchSourceJSON : { type : 'text' , index : false } } , } , optionsJSON : { type : 'text' , index : false } , panelsJSON : { type : 'text' , index : false } , refreshInterval : { properties : { display : { type : 'keyword' , index : false , doc_values : false } , pause : { type : 'boolean' , index : false , doc_values : false } , section : { type : 'integer' , index : false , doc_values : false } , value : { type : 'integer' , index : false , doc_values : false } , } , } , controlGroupInput : { properties : { controlStyle : { type : 'keyword' , index : false , doc_values : false } , panelsJSON : { type : 'text' , index : false } , } , } , timeFrom : { type : 'keyword' , index : false , doc_values : false } , timeRestore : { type : 'boolean' , index : false , doc_values : false } , timeTo : { type : 'keyword' , index : false , doc_values : false } , title : { type : 'text' } , version : { type : 'integer' } , } , } , migrations : ( ) => createDashboardSavedObjectTypeMigrations ( migrationDeps ) , } ) ;