mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
144 lines
4.9 KiB
Text
144 lines
4.9 KiB
Text
[[saved-objects-api-resolve]]
|
|
=== Resolve object API
|
|
++++
|
|
<titleabbrev>Resolve object</titleabbrev>
|
|
++++
|
|
|
|
experimental[] Retrieve a single {kib} saved object by ID, using any legacy URL alias if it exists.
|
|
|
|
Under certain circumstances, when Kibana is upgraded, saved object migrations may necessitate regenerating some object IDs to enable new
|
|
features. When an object's ID is regenerated, a legacy URL alias is created for that object, preserving its old ID. In such a scenario, that
|
|
object can be retrieved via the Resolve API using either its new ID or its old ID.
|
|
|
|
[[saved-objects-api-resolve-request]]
|
|
==== Request
|
|
|
|
`GET <kibana host>:<port>/api/saved_objects/resolve/<type>/<id>`
|
|
|
|
`GET <kibana host>:<port>/s/<space_id>/api/saved_objects/resolve/<type>/<id>`
|
|
|
|
[[saved-objects-api-resolve-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.
|
|
|
|
|
|
`type`::
|
|
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`.
|
|
|
|
`id`::
|
|
(Required, string) The ID of the object to retrieve.
|
|
|
|
[[saved-objects-api-resolve-codes]]
|
|
==== Response code
|
|
|
|
`200`::
|
|
Indicates a successful call.
|
|
|
|
[[saved-objects-api-resolve-example]]
|
|
==== Example
|
|
|
|
Retrieve the {data-source} object with the `my-pattern` ID:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
$ curl -X GET api/saved_objects/resolve/index-pattern/my-pattern
|
|
--------------------------------------------------
|
|
// KIBANA
|
|
|
|
The API returns the following:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
{
|
|
"saved_object": {
|
|
"id": "my-pattern",
|
|
"type": "index-pattern",
|
|
"version": 1,
|
|
"attributes": {
|
|
"title": "my-pattern-*"
|
|
}
|
|
},
|
|
"outcome": "exactMatch"
|
|
}
|
|
--------------------------------------------------
|
|
|
|
[NOTE]
|
|
====
|
|
In addition to `saved_object`, several fields can be returned:
|
|
|
|
* `outcome` (required string) -- One of the following values:
|
|
- `"exactMatch"` -- One document exactly matched the given ID.
|
|
- `"aliasMatch"` -- One document with a legacy URL alias matched the given ID; in this case the `saved_object.id` field is different than
|
|
the given ID.
|
|
- `"conflict"` -- Two documents matched the given ID, one was an exact match and another with a legacy URL alias; in this case the
|
|
`saved_object` object is the exact match, and the `saved_object.id` field is the same as the given ID.
|
|
* `alias_target_id` (optional string) -- If the `outcome` is `"aliasMatch"` or `"conflict"`, the response will also include the
|
|
`alias_target_id` field. This means that an alias was found for another object, and it describes that other object's ID.
|
|
* `alias_purpose` (optional string) -- If the `outcome` is `"aliasMatch"` or `"conflict"`, the response will also include the
|
|
`alias_purpose` field. This indicates why the alias was created, and it can be used to change the client behavior accordingly. One of the
|
|
following values: `"savedObjectConversion"`, `"savedObjectImport"`
|
|
|
|
Client-side code uses these fields to behave differently depending on the `outcome` -- <<sharing-saved-objects-step-3,learn more>>.
|
|
====
|
|
|
|
Retrieve a dashboard object in the `testspace` by ID:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
$ curl -X GET s/testspace/api/saved_objects/resolve/dashboard/7adfa750-4c81-11e8-b3d7-01146121b73d
|
|
--------------------------------------------------
|
|
// KIBANA
|
|
|
|
The API returns the following:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
{
|
|
"saved_object": {
|
|
"id": "7adfa750-4c81-11e8-b3d7-01146121b73d",
|
|
"type": "dashboard",
|
|
"updated_at": "2019-07-23T00:11:07.059Z",
|
|
"version": "WzQ0LDFd",
|
|
"attributes": {
|
|
"title": "[Flights] Global Flight Dashboard",
|
|
"hits": 0,
|
|
"description": "Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats",
|
|
"panelsJSON": "[ . . . ]",
|
|
"optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}",
|
|
"version": 1,
|
|
"timeRestore": true,
|
|
"timeTo": "now",
|
|
"timeFrom": "now-24h",
|
|
"refreshInterval": {
|
|
"display": "15 minutes",
|
|
"pause": false,
|
|
"section": 2,
|
|
"value": 900000
|
|
},
|
|
"kibanaSavedObjectMeta": {
|
|
"searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
|
|
}
|
|
},
|
|
"references": [
|
|
{
|
|
"name": "panel_0",
|
|
"type": "visualization",
|
|
"id": "aeb212e0-4c84-11e8-b3d7-01146121b73d"
|
|
},
|
|
. . .
|
|
{
|
|
"name": "panel_18",
|
|
"type": "visualization",
|
|
"id": "ed78a660-53a0-11e8-acbd-0be0ad9d822b"
|
|
}
|
|
],
|
|
"migrationVersion": {
|
|
"dashboard": "7.0.0"
|
|
}
|
|
},
|
|
"outcome": "conflict",
|
|
"alias_target_id": "05becb88-e214-439a-a2ac-15fc783b5d01"
|
|
}
|
|
--------------------------------------------------
|