mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 10:23:14 -04:00
* [DOCS] Updates {data-source} in REST APIs * Update docs/api/saved-objects/bulk_get.asciidoc Co-authored-by: Matthew Kime <matt@mattki.me> Co-authored-by: Matthew Kime <matt@mattki.me>
141 lines
5.4 KiB
Text
141 lines
5.4 KiB
Text
[[saved-objects-api-bulk-create]]
|
|
=== Bulk create saved objects API
|
|
++++
|
|
<titleabbrev>Bulk create saved objects</titleabbrev>
|
|
++++
|
|
|
|
experimental[] Create multiple {kib} saved objects.
|
|
|
|
[[saved-objects-api-bulk-create-request]]
|
|
==== Request
|
|
|
|
`POST <kibana host>:<port>/api/saved_objects/_bulk_create`
|
|
|
|
`POST <kibana host>:<port>/s/<space_id>/api/saved_objects/_bulk_create`
|
|
|
|
|
|
[[saved-objects-api-bulk-create-path-params]]
|
|
==== Path parameters
|
|
|
|
`space_id`::
|
|
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL the default space is used.
|
|
|
|
[[saved-objects-api-bulk-create-query-params]]
|
|
==== Query parameters
|
|
|
|
`overwrite`::
|
|
(Optional, boolean) When `true`, overwrites the document with the same ID.
|
|
|
|
[[saved-objects-api-bulk-create-request-body]]
|
|
==== Request body
|
|
|
|
`type`::
|
|
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`.
|
|
|
|
`id`::
|
|
(Optional, string) Specifies an ID instead of using a randomly generated ID.
|
|
|
|
`attributes`::
|
|
(Required, object) The data that you want to create.
|
|
|
|
`references`::
|
|
(Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects in the referenced object. To refer to the other saved object, use `name` in the attributes. Never use `id` to refer to the other saved object. `id` can be automatically updated during migrations, import, or export.
|
|
|
|
`initialNamespaces`::
|
|
(Optional, string array) Identifiers for the <<xpack-spaces,spaces>> in which this object is created. If this is provided, the
|
|
object is created only in the explicitly defined spaces. If this is not provided, the object is created in the current space
|
|
(default behavior).
|
|
* For shareable object types (registered with `namespaceType: 'multiple'`): this option can be used to specify one or more spaces, including
|
|
the "All spaces" identifier (`'*'`).
|
|
* For isolated object types (registered with `namespaceType: 'single'` or `namespaceType: 'multiple-isolated'`): this option can only be
|
|
used to specify a single space, and the "All spaces" identifier (`'*'`) is not allowed.
|
|
* For global object types (registered with `namespaceType: 'agnostic'`): this option cannot be used.
|
|
|
|
`version`::
|
|
(Optional, number) Specifies the version.
|
|
|
|
[[saved-objects-api-bulk-create-response-body]]
|
|
==== Response body
|
|
|
|
`saved_objects`::
|
|
(array) Top-level property the contains objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request.
|
|
|
|
Saved objects that are unable to persist are replaced with an error object.
|
|
|
|
[[saved-objects-api-bulk-create-codes]]
|
|
==== Response code
|
|
|
|
`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. See the example below for details.
|
|
|
|
[[saved-objects-api-bulk-create-example]]
|
|
==== Example
|
|
|
|
Create {a-data-source} with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
$ curl -X POST api/saved_objects/_bulk_create
|
|
[
|
|
{
|
|
"type": "index-pattern",
|
|
"id": "my-pattern",
|
|
"attributes": {
|
|
"title": "my-pattern-*"
|
|
}
|
|
},
|
|
{
|
|
"type": "dashboard",
|
|
"id": "be3733a0-9efe-11e7-acb3-3dab96693fab",
|
|
"attributes": {
|
|
"title": "Look at my dashboard"
|
|
}
|
|
}
|
|
]
|
|
--------------------------------------------------
|
|
// KIBANA
|
|
|
|
The API returns the following:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
{
|
|
"saved_objects": [
|
|
{
|
|
"id": "my-pattern",
|
|
"type": "index-pattern",
|
|
"version": 1,
|
|
"attributes": {
|
|
"title": "my-pattern-*"
|
|
}
|
|
},
|
|
{
|
|
"id": "be3733a0-9efe-11e7-acb3-3dab96693fab",
|
|
"type": "dashboard",
|
|
"error": {
|
|
"statusCode": 409,
|
|
"message": "Saved object [dashboard/be3733a0-9efe-11e7-acb3-3dab96693fab] conflict"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
--------------------------------------------------
|
|
|
|
There is already a saved object with the `my-dashboard` ID, so only the {data-source} is created.
|
|
|
|
[[saved-objects-api-bulk-create-conflict-errors]]
|
|
==== Conflict errors
|
|
|
|
Starting in {kib} 8.0, saved objects can exist in multiple spaces. As a result, you may encounter different types of conflict errors when
|
|
attempting to create an object:
|
|
|
|
* *Regular conflict*: This is a 409 error without any metadata. It means an object of that type/ID already exists. This can be
|
|
overridden by using the `overwrite: true` option.
|
|
* *Unresolvable conflict*: This is a 409 error with `isNotOverwritable: true` in its metadata. It means an object of that type/ID already
|
|
exists in a different space, and it cannot be overridden with the given parameters. To successfully overwrite this object, you must do so
|
|
in at least one space where it exists. You can specify that using the `space_id` path parameter _or_ the `initialNamespaces` parameter.
|
|
* *Alias conflict*: This is a 409 error with a `spacesWithConflictingAliases` string array in its metadata. It means a conflicting
|
|
<<legacy-url-aliases,legacy URL alias>> for this type/ID exists in the space(s) where you attempted to create this object. A conflicting
|
|
legacy URL alias is one that points to a different type/ID. To successfully create this object, you need to first use the
|
|
<<spaces-api-disable-legacy-url-aliases,`_disable_legacy_url_aliases`>> API to disable the problematic legacy URL alias(es).
|