Network Volume
共通規約
- Base URL:
BASE_API_URL - Path:
/bff/v1/networkvolume/{orgIdentifier}/workspaces/{workspaceIdentifier}/{action} - Method: すべてPOST。
- サービス固有ヘッダー:
X-Region: <region> - 共通ヘッダー (apiClient):
X-Org-Id、X-Workspace-Id、X-User-Id - レスポンスエンベロープ:
{ "code": "", "message": "", "data": ..., "total": 0 } - パラメータ: Queryアクションはクエリ文字列で渡す(body
{});その他のアクションはJSON bodyで渡す。
エンドポイント一覧
ボリューム
| # | Action | Query param | Body | 用途 |
|---|---|---|---|---|
| 1 | network-volume.list | status, sort_by, sort_type (asc | desc) | {} | ボリューム一覧 |
| 2 | network-volume.create | — | { name, capacity_gb } | ボリューム作成 |
| 3 | network-volume.update | — | { volume_id, capacity_gb } | 容量の拡張 |
| 4 | network-volume.delete | — | { volume_id } | ボリューム削除 |
| 5 | network-volume.calculateprice | — | {} | 単価の取得 |
| 6 | network-volume.checkname | name | {} | 名前の重複確認 |
S3アダプターキー
| # | Action | Query param | Body | 用途 |
|---|---|---|---|---|
| 7 | network-volume.lists3keys | — | {} | S3キー一覧 + S3ステータス |
| 8 | network-volume.creates3key | — | { name } | S3キー作成(タイムアウト90s) |
| 9 | network-volume.gets3key | — | { key_id } | S3キー詳細 |
| 10 | network-volume.deletes3key | — | { key_id } | S3キー削除 |
制約
| フィールド | ルール |
|---|---|
name | 最大16文字、正規表現 ^[a-zA-Z][a-zA-Z0-9-]*$(英字で始まる;英字、数字、- 使用可) |
capacity_gb | 50〜3000 GB(デフォルト50) |
| デフォルトマウントポイント | /mnt/hps |
リクエストボディ
2. network-volume.create
{ "name": "my-volume", "capacity_gb": 100 }
3. network-volume.update — 容量の増加のみ
{ "volume_id": "...", "capacity_gb": 200 }
8. network-volume.creates3key
{ "name": "my-key" }
レスポンス
| Action | Response (data) |
|---|---|
network-volume.list | [{ id, name, vast_config_id, region_code, capacity_gb, endpoint, status, last_error, created_at, created_by, updated_at, updated_by }](エンベロープにtotal含む) |
network-volume.create / update / delete | Volume: listと同じフィールド + vast_resources{ quota, view_policy, view } |
network-volume.calculateprice | { capacity_gb, price, price_per_gb_hour, hourly_cost, monthly_cost, total, currency_code, price_info{ currency, value, unit } } — FE優先順位: price_per_gb_hour → price → price_info.value;デフォルト通貨USD |
network-volume.checkname | { is_duplicate: boolean }(FEはisDuplicate、duplicated、exists、data内にラップ、またはbooleanも受け付ける) |
列挙型 (Enum)
- ボリュームstatus:
ACTIVE、CREATING、PROCESSING、DELETING、DELETED、ERROR(ERRORの場合はlast_errorを確認) - リージョン表示:
Ha Noi、Tokyo
エラーコード
エラー形式
エラー時、HTTPステータス ≠ 2xx でbodyは以下の形式:
{ "code": "EQ-RESOURCE-00001", "message": "...", "params": { "quotaLevel": "Workspace" }, "role_based": true }
role_based: true— 呼び出し元のロール(MANAGEMENT/WS_ADMIN/MEMBER)とparams.quotaLevelによってメッセージが異なる。- HTTP 401 — クライアントはログアウトしてログインページにリダイレクトする。
共通エラーコード (billing / quota / gateway)
| Code | 意味 |
|---|---|
INSUFFICIENT_BALANCE | クレジット不足(role-based)。MANAGEMENTロールは自動でトップアップモーダルを開く。 |
INSUFFICIENT_PERMISSIONS | この操作を実行する権限がない。 |
EQ-RESOURCE-00001 | クォータに達した(role-based、params.quotaLevelによる)。 |
EQ-RESOURCE-SYSTEM-LIMIT | リソースのクォータに達した(params.name)。 |
BFF-CREATING-CONCURRENCY | このワークスペース/サービスで別のリソースが作成中。 |
route_not_found | エンドポイントが存在しない。 |
method_not_allowed | メソッドが間違っている。POSTのみ使用可能。 |
request_too_large | ボディが64 KBを超えている。 |
invalid_token | トークンが無効または期限切れ。 |
gateway_internal_error | ゲートウェイ内部エラー。 |
upstream_unavailable | バックエンドサービスが一時的に利用不可。 |
gateway_timeout | バックエンドサービスがタイムアウト。 |