削除が実際に何をするか(リソース別)
RealityConnect API では、何を削除するかによって「削除」の意味が変わります。一部のリソースは復元可能なゴミ箱に入りますが、ほとんどは完全に削除されます。このページは、クリーンアップロジックや同期の整合ロジックを設計する際のリソースごとのリファレンスです。
リソースごとの削除の挙動
Section titled “リソースごとの削除の挙動”| リソース | 削除 | 復元 | 完全削除 |
|---|---|---|---|
| データノード(ディビジョン、サイト、フォルダ、twin、プロジェクト、Data Bundle、Asset Library など) | ソフト(ゴミ箱に移動) | PATCH /v1/nodes/{nodeId}/restore | 削除から30日後に自動実行、または DELETE /v1/nodes/{nodeId}/hard で即時実行 |
| POI | ハード | 利用不可 | 即時 |
| ゾーン | ハード | 利用不可 | 即時 |
| Box asset | ハード | 利用不可 | 即時 |
| Model asset(RealityPlan) | ハード | 利用不可 | 即時 |
| Asset Library のモデル | ハード(アセットが参照している間はブロックされる) | 利用不可 | ブロック解除後は即時 |
| Asset Library のタグ | ハード | 利用不可 | 即時 |
| グループ | ハード | 利用不可 | 即時 |
| グループメンバーシップ | ハード | 利用不可 | 即時 |
| 招待(組織またはノード) | ハード(取り消し) | 利用不可 | 即時 |
| オブジェクトの添付ファイル | ハード(保存されたファイルのみを削除する) | 利用不可 | 即時 |
ゴミ箱を持つのはデータノードだけです。この表のそれ以外のリソースはすべて、削除呼び出しが成功した時点でサーバー側の復元手段なしに消えます。
データノード: ソフトデリートとゴミ箱
Section titled “データノード: ソフトデリートとゴミ箱”DELETE /v1/nodes/{nodeId} はノードをソフトデリートします。ノードは削除されるのではなく、組織のゴミ箱に移動します。ゴミ箱内のノードは次のようになります。
GET /v1/trashで一覧表示されます(ページネーション対応、deletedAtまたはnameでソート可能)。PATCH /v1/nodes/{nodeId}/restoreで復元できます。復元によって組織のストレージ上限を超える場合は409 StorageLimitExceededで失敗することがあります。DELETE /v1/nodes/{nodeId}/hardで完全に削除されるか、ゴミ箱に入ってから30日後に自動的に削除されます。
復元と完全削除はどちらも、ノードが現在ゴミ箱にない場合(一度も削除されたことのないノードidの場合も、すでに完全削除または自動パージされている場合も含む)に 409 NoNodeRemoved を返します。
ノードを完全に削除すると、ゴミ箱内のその子孫と、そのサブツリー内のノードに関わる派生物の行も削除されます。サブツリーの外にあってたまたまその中の何かから派生しているノードは、影響を受けません。
ノード削除をブロックする条件
Section titled “ノード削除をブロックする条件”DELETE /v1/nodes/{nodeId} は次の3つの理由で 409 Conflict として拒否されることがあります。
| コード | 意味 | ?force=true で回避可能か |
|---|---|---|
NodeHasDerivatives | ノードに、先に削除する必要がある派生出力(処理済みの結果など)がある。レスポンスの derivatives[] に、ブロックしている正確なノードが列挙される。 | 不可 |
NodeHasBundleDependants | ノードの Data Bundle に依存する項目がある。 | 不可 |
NodeNotInDeletableState | ノードが現在処理中か、処理が失敗している(isProcessing / isFailed)。 | 可能 |
force=true(クエリ文字列で、正確に "true" または "false")が回避できるのは NodeNotInDeletableState のみです。派生物やバンドルの依存項目があるノードは先に解決する必要があり、回避策はありません。完全なレスポンス形式と推奨される対処については、エラーコードを参照してください。
Asset Library のモデルには、同じ仕組みのより単純なバージョンがあります。DELETE /v1/asset-library/{ownerContextId}/models/{libraryModelId} は、アセットがそのモデルをまだ参照している間 409 Conflict を返します。最後の参照がなくなると、削除はノードのソフトデリートとは異なり、ハードで復元不可能な削除になります。
ソフトデリートされたノードとブラウズ/検索
Section titled “ソフトデリートされたノードとブラウズ/検索”ソフトデリートされたノードは、GET /v1/nodes/{id}/browse と GET /v1/nodes/search の両方から即座に、例外なく外れます。どちらのエンドポイントにも、ゴミ箱内のノードを含めるパラメータはありません。ゴミ箱内のノードを確認する唯一の方法は GET /v1/trash であり、復元して初めて再びブラウズや検索の対象になります。
ノード階層と検索そのものの仕組みについては、ノードタイプと階層とビジネスオブジェクトとノードの検索を参照してください。
次のステップ
Section titled “次のステップ”- このページで参照したすべてのコードを含む、名前付きエラーコードの完全な一覧についてはエラーコードを参照してください。
- POI、ゾーン、アセット、添付ファイルのアドレス指定に使われる
contextIdの解決方法については、contextIdが受け付ける値を参照してください。