Bulk update object API

edit

[preview] This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Update the attributes for multiple existing Kibana saved objects.

Request

edit

PUT <kibana host>:<port>/api/saved_objects/_bulk_update

PUT <kibana host>:<port>/s/<space_id>/api/saved_objects/_bulk_update

Path parameters

edit
space_id
(Optional, string) An identifier for the space. If space_id is not provided in the URL, the default space is used.

Request body

edit
type
(Required, string) Valid options include visualization, dashboard, search, index-pattern, config.
id
(Required, string) The object ID to update.
attributes

(Required, object) The data to persist.

When you update, attributes are not validated, which allows you to pass arbitrary and ill-formed data into the API and break Kibana. Make sure any data that you send to the API is properly formed.

references
(Optional, array) Objects with name, id, and type properties that describe the other saved objects this object references. To refer to the other saved object, use name in the attributes, but never the id, which automatically updates during migrations or import/export.
version
(Optional, number) Ensures the version matches that of the persisted object.
namespace
(Optional, string) Identifier for the space in which to update this object. If this is defined, it will supersede the space ID that is in the URL.

Response code

edit
200
Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual objects will be returned in the response body. Refer to the example below for details.

Example

edit

Update three saved objects, where one of them does not exist:

$ curl -X PUT api/saved_objects/_bulk_update
[
  {
    type: 'visualization',
    id: 'not an id',
    attributes: {
      title: 'An existing visualization',
    },
  },
  {
    type: 'dashboard',
    id: 'be3733a0-9efe-11e7-acb3-3dab96693fab',
    attributes: {
      title: 'An existing dashboard',
    },
  {
    type: 'index-pattern',
    id: 'logstash-*',
    attributes: { title: 'my-logstash-pattern' }
  }
]

The API returns the following:

[
  {
    "type": "visualization",
    "id": "not an id",
    "error": {
      "statusCode": 404,
      "error": "Not Found",
      "message": "Saved object [visualization/not an id] not found",
    },
  },
  {
    "type": "dashboard",
    "id": "be3733a0-9efe-11e7-acb3-3dab96693fab",
    "version": 2,
    "attributes": {
      "title": "An existing dashboard",
    },
  },
  {
    "type": "index-pattern",
    "id": "logstash-*",
    "attributes": {
      "title": "my-logstash-pattern",
    }
  }
]