解析复制到空间冲突的保存对象 API
编辑解析复制到空间冲突的保存对象 API编辑
[预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将致力于解决任何问题,但技术预览中的功能不受官方 GA 功能支持 SLA 的约束。 覆盖从 复制保存对象到空间 API 返回的错误保存对象。
请求编辑
POST <kibana 主机>:<端口>/api/spaces/_resolve_copy_saved_objects_errors
POST <kibana 主机>:<端口>/s/<空间 ID>/api/spaces/_resolve_copy_saved_objects_errors
先决条件编辑
执行 复制保存对象到空间 API,它将返回需要您解决的错误。
路径参数编辑
-
空间 ID
- (可选,字符串) 包含要复制的保存对象的空格的 ID。当 URL 中未指定
空间 ID
时,将使用默认空间。空间 ID
必须与失败的 复制保存对象到空间 API 操作期间使用的值相同。
请求正文编辑
-
对象
-
(必需,对象数组) 要复制的保存对象。
对象
必须与失败的 复制保存对象到空间 API 操作期间使用的值相同。对象
的属性-
类型
- (必需,字符串) 保存对象的类型。
-
ID
- (必需,字符串) 保存对象的 ID。
-
-
包含引用
- (可选,布尔值) 当设置为
true
时,将所有与指定保存对象相关的保存对象复制到目标空间。包含引用
必须与失败的 复制保存对象到空间 API 操作期间使用的值相同。默认值为false
。 -
创建新副本
- (可选,布尔值) 创建保存对象的副本,重新生成每个对象的 ID,并重置来源。如果在初始复制期间启用,则在解决复制错误时也启用。默认值为
true
。 -
重试
-
(必需,对象) 要尝试的重试操作,可以指定如何解决不同类型的错误。对象键表示目标空间 ID。
重试
的属性-
<空间 ID>
-
(必需,数组) 要为指定的
<空间 ID>
解决的错误。<空间 ID>
的属性-
类型
- (必需,字符串) 保存对象的类型。
-
ID
- (必需,字符串) 保存对象的 ID。
-
覆盖
- (必需,布尔值) 当设置为
true
时,来自源空间(由空间 ID
路径参数 指定)的保存对象将覆盖目标空间中的冲突对象。当设置为false
时,这将不执行任何操作。 -
目标 ID
-
(可选,字符串) 指定复制对象应具有的目标 ID,如果与当前 ID 不同。
-
忽略缺少引用
- (可选,布尔值) 当设置为
true
时,将忽略任何缺少引用错误。当设置为false
时,不执行任何操作。
-
-
-
响应正文编辑
-
<空间 ID>
-
(对象) 描述空间复制操作结果的对象。包括响应中的动态键。
<空间 ID>
的属性-
成功
- (布尔值) 复制操作成功。当设置为
false
时,某些对象可能已复制。有关更多信息,请参阅successCount
和errors
属性。 -
成功计数
- (数字) 成功复制的对象数量。
-
错误
-
(可选,数组) 复制操作期间发生的错误。当报告错误时,
success
标志将设置为false
。一个对象可能会导致多个错误,这需要单独的步骤来解决。例如,
missing_references
错误和conflict
错误。errors
的属性-
ID
- (字符串) 无法复制的保存对象的 ID。
-
类型
- (字符串) 无法复制的保存对象的类型。
-
错误
-
(对象) 导致复制操作失败的错误。
error
的属性-
类型
- (字符串) 错误类型。例如,
conflict
、ambiguous_conflict
、missing_references
、unsupported_type
或unknown
。 -
目标 ID
- (可选,字符串) 复制尝试期间使用的目标 ID。这仅存在于
conflict
错误类型中。 -
目的地
- (可选,数组) 包含
id
、title
和updatedAt
字段的可能对象目的地的列表,用于描述每个目的地。这仅存在于ambiguous_conflict
错误类型中。
-
-
-
成功结果
-
(可选,数组) 指示成功复制的对象,以及任何适用的元数据。
当所有可解决的错误(包括冲突和缺少引用错误)得到解决时,将创建对象。有关更多信息,请参阅 示例。
-
示例编辑
解决冲突错误编辑
此示例基于 包含冲突错误的复制对象 API 示例。
通过覆盖现有的保存对象来解决数据视图、可视化和 Canvas 工作区的冲突错误
$ curl -X POST api/spaces/_resolve_copy_saved_objects_errors { "objects": [{ "type": "dashboard", "id": "my-dashboard" }], "includeReferences": true, "createNewCopies": false, "retries": { "sales": [ { "type": "index-pattern", "id": "my-pattern", "overwrite": true }, { "type": "visualization", "id": "my-vis", "overwrite": true, "destinationId": "another-vis" }, { "type": "canvas", "id": "my-canvas", "overwrite": true, "destinationId": "yet-another-canvas" }, { "type": "dashboard", "id": "my-dashboard" } ] } }
API 返回以下内容
{ "sales": { "success": true, "successCount": 4, "successResults": [ { "id": "my-pattern", "type": "index-pattern", "meta": { "icon": "indexPatternApp", "title": "my-pattern-*" } }, { "id": "my-vis", "type": "visualization", "destinationId": "another-vis", "meta": { "icon": "visualizeApp", "title": "Look at my visualization" } }, { "id": "my-canvas", "type": "canvas-workpad", "destinationId": "yet-another-canvas", "meta": { "icon": "canvasApp", "title": "Look at my canvas" } }, { "id": "my-dashboard", "type": "dashboard", "meta": { "icon": "dashboardApp", "title": "Look at my dashboard" } } ] } }
结果表明复制成功,所有四个对象都已创建。
如果先前的复制尝试导致可解决的错误,则必须为要复制的每个对象(包括在 successResults
数组中返回的任何对象)包含重试。在此示例中,我们相应地重试了复制仪表板。
解决缺少引用错误编辑
此示例基于 包含缺少引用错误的复制对象 API 示例。
通过忽略错误来解决可视化的缺少引用错误
$ curl -X POST api/spaces/_resolve_copy_saved_objects_errors { "objects": [{ "type": "dashboard", "id": "my-dashboard" }], "includeReferences": true, "createNewCopies": false, "retries": { "marketing": [ { "type": "visualization", "id": "my-vis", "ignoreMissingReferences": true }, { "type": "canvas", "id": "my-canvas" }, { "type": "dashboard", "id": "my-dashboard" } ] } }
API 返回以下内容
{ "marketing": { "success": true, "successCount": 3, "successResults": [ { "id": "my-vis", "type": "visualization", "meta": { "icon": "visualizeApp", "title": "Look at my visualization" } }, { "id": "my-canvas", "type": "canvas-workpad", "meta": { "icon": "canvasApp", "title": "Look at my canvas" } }, { "id": "my-dashboard", "type": "dashboard", "meta": { "icon": "dashboardApp", "title": "Look at my dashboard" } } ] } }
结果表明复制成功,所有三个对象都已创建。
如果先前的复制尝试导致可解决的错误,则必须为要复制的每个对象(包括在 successResults
数组中返回的任何对象)包含重试。在此示例中,我们相应地重试了复制仪表板和画布。