履歴バージョンの復元¶
POST /api/v1/pipeline_history/{pipeline_history_uuid}/restore
概要¶
履歴設定を復元します。configVersion は現在の設定バージョン番号で、期限切れの場合は 409 を返します。事前のテストは不要です。名前と source の競合は引き続きエラーになります。isForce はデフォルト置き換えの確認のみに使用します。
ルートパラメータ¶
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| pipeline_history_uuid | string | Y | 履歴リスト historyRecord[].uuid から返される履歴 UUID です。Pipeline UUID や数値 id ではありません。 |
Body リクエストパラメータ¶
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| configVersion | integer | Y | 呼び出し前に現在の Pipeline 詳細または履歴リストの先頭画面から読み取った configVersion です。整数で 1 以上である必要があります。対象の履歴バージョン番号ではありません。並行変更の検出に使用され、期限切れの場合は 409 を返します。 空の許可: False $minValue: 1 |
| isForce | boolean | デフォルト Pipeline に復元する際、既存のデフォルト Pipeline を置き換えることを確認するかどうかです。 空の許可: False |
パラメータ補足説明¶
指定した履歴設定を元の Pipeline に上書きします。この操作は顧客リソースの設定を変更するため、事前に対象の履歴詳細を読み取って確認してください。
推奨される呼び出しフロー¶
- 現在の Pipeline 詳細または履歴の先頭画面を照会し、現在の configVersion を取得します。
- 履歴リストから対象の uuid を選択し、履歴詳細を読み取って設定を確認します。
- リクエストボディに現在の configVersion を入れて、対象の履歴 uuid の restore を呼び出します。
- 成功後、レスポンス内の configVersion と設定に基づいてローカルキャッシュを更新します。
たとえば、現在のバージョンが 3、対象の履歴が 1 の場合、リクエストボディには 1 ではなく {"configVersion":3} を渡します。成功して設定が実際に変更された場合は、元の現在の設定がアーカイブされ、新しい現在のバージョン(例: 4)が生成されます。現在のバージョン番号が 1 に戻ることはなく、対象の履歴スナップショットも変更されません。復元内容には有効/無効の状態は含まれないため、事前にテストを実行する必要はありません。対象の設定が現在の設定と同じ場合は、新しいバージョンは生成されません。
競合と確認¶
- HTTP 409 / ft.PipelineConfigVersionConflict:現在の設定が他の呼び出しによって変更されています。上書きを中止し、最新の設定を再読み込みして比較し、呼び出し元の確認後に再送信してください。新しいバージョン番号で自動的に無闇に再試行しないでください。
- ft.PipelineSourceExists:履歴の source が他の Pipeline によって使用されています。競合を解決してから復元してください。isForce=true は source またはバージョンの競合を回避できません。
- デフォルト Pipeline への復元が既存のデフォルト項目と競合し、確認されていない場合は、成功レスポンス内の content.confirm(例: {"confirm":["logging"]})が返されることがあります。これは確認プロンプトであり、復元の完了を意味するものではありません。呼び出し元が確認した後、isForce=true と引き続き有効な configVersion を付けて再度呼び出してください。
- タイムアウトまたは接続中断が発生した場合は、書き込み結果が不明な可能性があります。まず現在の設定とバージョンを照会し、無条件に書き込みを繰り返さないでください。
使用前提¶
所属ワークスペースの DF-API-KEY を使用して OpenAPI サービスを呼び出します。照会には読み取り権限が必要です。復元とクローンには Pipeline の管理権限と書き込み権限が必要です。この API は、リクエストボディによる他のワークスペースや操作者の指定をサポートしていません。例の中の Endpoint、リソース UUID、API-Key はすべてプレースホルダーです。置き換えてから呼び出し、ログに API Key を出力しないでください。
レスポンス例は架空のリソースを使用し、典型的なビジネスフィールドを示しています。実際のレスポンスには通常の Pipeline API の他のフィールドが含まれる場合があります。呼び出し元は新しいフィールドの追加にも互換性を保つ必要があります。
バージョンフィールド¶
| フィールド | 意味 |
|---|---|
| configVersion | 設定バージョン番号。新規作成されたリソースは 1 から始まります。有効化・無効化ではこのバージョンは進みません |
| configVersionAt | この設定バージョンの生成時刻。Unix 秒単位のタイムスタンプで、ミリ秒ではありません |
| configVersionOperator / configVersionOperatorInfo | 操作者の識別子と表示情報。表示情報を解析できない場合は空オブジェクトになることがあります |
| configVersionSource / configVersionAction | バージョンの由来とアクション。例: openapi/modify、history/history_restore |
| configVersionSourceInfo | 由来の補足情報。履歴操作には pipelineHistoryUUID、pipelineUUID、configVersion が含まれます |
| createAt | 履歴スナップショットのアーカイブ時刻。configVersionAt より遅い場合があります。履歴リストの保持期間はこのフィールドに基づいて計算されます |
履歴の config.content と config.testData は Base64 エンコードされた文字列です。呼び出し元はまず Base64 デコードし、その後 UTF-8 で読み取ってください。testData はテストサンプルであり、読み取りまたは復元 API によって自動実行されることはありません。configVersionSourceInfo 内の由来バージョン番号を現在のバージョン番号として扱わないでください。
レスポンスの説明¶
書き込みに成功した場合の content は、通常の変更 API と同じ Pipeline オブジェクトで、uuid、設定フィールド、バージョンメタデータが含まれます。確認ブランチの content には confirm のみが含まれます。リソースが削除されている場合、履歴がクリーンアップされている場合、または権限がない場合は、復元は実行されません。
リクエスト例¶
curl -X POST 'https://openapi.guance.com/api/v1/pipeline_history/<pipeline_history_uuid>/restore' -H 'DF-API-KEY: <API-Key>' -H 'Content-Type: application/json' -d '{"configVersion":3,"isForce":false}'
レスポンス¶
{
"code": 200,
"content": {
"name": "demo",
"type": "local",
"category": "logging",
"source": [
"nginx"
],
"content": "YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==",
"testData": "W10=",
"dataType": "line_protocol",
"asDefault": 0,
"enableByLogBackup": 0,
"extend": {},
"id": 10,
"uuid": "pl_example",
"workspaceUUID": "wksp_example",
"status": 0,
"creator": "acnt_example",
"updator": "acnt_example",
"createAt": 1788799900,
"updateAt": 1788800200,
"deleteAt": -1,
"configVersion": 4,
"configVersionAt": 1788800200,
"configVersionOperator": "acnt_example",
"configVersionSource": "history",
"configVersionAction": "history_restore",
"configVersionSourceInfo": {
"pipelineHistoryUUID": "plh_example",
"pipelineUUID": "pl_example",
"configVersion": 2
}
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE_EXAMPLE"
}