diff --git a/docs/api/saved-objects.asciidoc b/docs/api/saved-objects.asciidoc index 6cabbdc785db4..610f18c38d624 100644 --- a/docs/api/saved-objects.asciidoc +++ b/docs/api/saved-objects.asciidoc @@ -30,6 +30,8 @@ The following saved objects APIs are available: * <> to remove {kib} saved objects +* <> to remove multiple {kib} saved objects + * <> to retrieve sets of saved objects that you want to import into {kib} * <> to create sets of {kib} saved objects from a file created by the export API @@ -46,6 +48,7 @@ include::saved-objects/bulk_create.asciidoc[] include::saved-objects/update.asciidoc[] include::saved-objects/bulk_update.asciidoc[] include::saved-objects/delete.asciidoc[] +include::saved-objects/bulk_delete.asciidoc[] include::saved-objects/export.asciidoc[] include::saved-objects/import.asciidoc[] include::saved-objects/resolve_import_errors.asciidoc[] diff --git a/docs/api/saved-objects/bulk_delete.asciidoc b/docs/api/saved-objects/bulk_delete.asciidoc new file mode 100644 index 0000000000000..d08c5874477bc --- /dev/null +++ b/docs/api/saved-objects/bulk_delete.asciidoc @@ -0,0 +1,107 @@ +[[saved-objects-api-bulk-delete]] +=== Bulk delete object API +++++ +Bulk delete objects +++++ + +experimental[] Remove multiple {kib} saved objects. + +WARNING: Once you delete a saved object, _it cannot be recovered_. + +==== Request + +`POST :/api/saved_objects/_bulk_delete` + +`POST :/s//api/saved_objects/_bulk_delete` + +==== 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. + +==== Request body + +`type`:: + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. + +`id`:: + (Required, string) The object ID to remove. + +==== Query parameters + +`force`:: + (Optional, boolean) When true, force delete objects that exist in multiple namespaces. Note that the option applies to the whole request. Use the <> to specify per-object delete behavior. ++ +TIP: Use this if you attempted to delete objects and received an HTTP 400 error with the following message: _"Unable to delete saved object that exists in multiple namespaces, use the `force` option to delete it anyway"_ ++ +WARNING: When you bulk delete objects that exist in multiple namespaces, the API also deletes <> that reference the object. These requests are batched to minimise the impact but they can place a heavy load on {kib}. Make sure you limit the number of objects that exist in multiple namespaces in a single bulk delete operation. + +==== 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. Refer to the example below for details. + +==== Response body + +`statuses`:: + (array) Top-level property that 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 cannot be removed will include an error object. + +==== Example + +Delete three saved objects, where one of them does not exist and one exists in multiple namespaces: + +[source,sh] +-------------------------------------------------- +$ curl -X POST api/saved_objects/_bulk_delete +[ + { + type: 'visualization', + id: 'not an id', + }, + { + type: 'dashboard', + id: 'be3733a0-9efe-11e7-acb3-3dab96693fab', + { + type: 'index-pattern', + id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', + } +] +-------------------------------------------------- +// KIBANA + +The API returns the following: + +[source,sh] +-------------------------------------------------- +{ + "statuses": [ + { + "success": false, + "id": "not an id", + "type": "visualization", + "error": { + "statusCode": 404, + "error": "Not Found", + "message": "Saved object [visualization/not an id] not found", + }, + }, + { + "success": true, + "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", + "type": "dashboard", + }, + { + "success": false, + "id": "d3d7af60-4c81-11e8-b3d7-01146121b73d", + "type": "index-pattern", + "error": { + "statusCode": 400, + "error": "Bad Request", + "message": "Unable to delete saved object id: d3d7af60-4c81-11e8-b3d7-01146121b73d, type: index-pattern that exists in multiple namespaces, use the \"force\" option to delete all saved objects: Bad Request", + }, + } + ] +} +--------------------------------------------------