GLOWS SDK v1 は /sdk/v1 配下で、インスタンスのライフサイクル、イメージ送信、リソース仕様、ネットワーク、スナップショット API を提供します。
認証には Authorization: Bearer <token> ヘッダー内の SDK トークンを使用します。サーバーは
Authorization クエリパラメーターも受け付け、JWT 検証の前にそれをヘッダーへコピーします。
アプリケーションエラーは code と msg を含む JSON body として返されます。多くのアプリケーションエラーは HTTP
status 200 を使用します。レート制限ではプレーンテキスト body 付きの HTTP 429 が返る場合があります。
この契約は公開 SDK HTTP API サーフェスを説明します。
request_id または meta_key でインスタンスを照会します。
request_id は create/list/query response が返す instanceID です。サーバーは ins-... のような
resource ID と、レガシー hash ID fallback の両方を受け付けます。meta_key は作成時に custom_meta_key として指定した、グローバルに一意な
カスタム key です。
| request_id | string <= 64 characters Example: request_id=ins-boyqp4g8
|
| meta_key | string <= 64 characters Example: meta_key=order.123456 ユーザーが指定するグローバルに一意な |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (VisibleInstance) |
{- "code": 0,
- "msg": "",
- "instance": {
- "instanceID": "ins-boyqp4g8",
- "category": "container",
- "status": "Running",
- "priceCent": 65,
- "hardware": {
- "gpuName": "NVIDIA GeForce RTX 4090",
- "cpuName": "Intel(R) Xeon(R) Platinum 8352V CPU @ 2.10GHz",
- "gpuNum": 1,
- "gpuRamMB": 24564,
- "cpuCoresNum": 10,
- "ramMB": 43008,
- "diskGB": 100
}, - "baseImage": {
- "imageID": "img-87p9kq26",
- "imageName": "Ubuntu20.04 CUDA12.2 Python3.9"
}, - "baseSnap": null,
- "sshCred": {
- "user": "root",
- "password": "example-password"
}, - "accesses": [
- {
- "protocol": "ssh",
- "listenPort": 22,
- "url": "ssh://access.example.com:15692"
},
], - "domain": 0,
- "createTime": {
- "seconds": 1726810944
}, - "cmd": "",
- "envs": "foo=bar",
- "remark": "this is from sdk",
- "metaKey": "order.123456",
- "sourceType": "SourceSDK",
- "netEndpointInfos": [
- {
- "netID": "net-od7pv75w",
- "cidr": "203.0.113.2/24",
- "mac": "02:00:01:00:00:02",
- "status": "Connected"
}
], - "regionName": "Region-01"
}
}イメージまたはスナップショットからコンテナまたは VM インスタンスを作成します。
| from_image_id required | string <= 64 characters Base image resource ID。 |
| gpu_name required | string <= 128 characters GPU モデル名。 |
| custom_meta_key required | string <= 64 characters 冪等な business lookup に使用する、グローバルに一意なカスタム key。 |
| instance_category required | string (InstanceCategory) Default: "container" Enum: "container" "vm" |
| region_name required | string <= 128 characters platform domain に対応する必須のリージョン表示/名前値。 |
| remark | string <= 32 characters 人間が読める備考。 |
| cmd | string <= 512 characters インスタンス entry command。 |
| envs | string <= 512 characters 環境変数文字列。例: |
| ports | string
|
| unit_qty | integer <int64> >= 0 Default: 1 要求する GPU/CPU リソース単位数。 |
object (CreateInstanceBaseResource) base resource descriptor に直接変換される base resource description。 | |
object (CreateInstanceExtraResource) Extra resource description。Extra resources には resource ID や GPU fields はありません。 | |
| net_ids | Array of strings <= 1 items [ items <= 64 characters ]
|
| network_type | integer <int32> (NetworkType) Enum: 0 1 2 3 4 5 6 7 数値の network type。SDK network API では、互換性のため省略または |
| public_ip_id | string <= 64 characters Public/NAT network resource ID。存在し有効な場合、サーバーは |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (VisibleInstance) |
{- "from_image_id": "img-87p9kq26",
- "custom_meta_key": "order.123456",
- "remark": "this is from sdk",
- "envs": "foo=bar",
- "gpu_name": "NVIDIA GeForce RTX 4090",
- "unit_qty": 2,
- "instance_category": "container",
- "region_name": "Region-01",
- "ports": "[{\"port\":7890,\"protocol\":2}]"
}{- "code": 0,
- "msg": "",
- "instance": {
- "instanceID": "ins-boyqp4g8",
- "category": "container",
- "status": "SchedQueued",
- "priceCent": 0,
- "hardware": {
- "gpuName": "NVIDIA GeForce RTX 4090",
- "cpuName": "",
- "gpuNum": 2,
- "gpuRamMB": 0,
- "cpuCoresNum": 0,
- "ramMB": 0,
- "diskGB": 0
}, - "baseImage": {
- "imageID": "img-87p9kq26",
- "imageName": "Ubuntu20.04 CUDA12.2 Python3.9"
}, - "baseSnap": null,
- "sshCred": {
- "user": "root",
- "password": "example-password"
}, - "accesses": [
- {
- "protocol": "ssh",
- "listenPort": 22,
- "url": ""
}, - {
- "protocol": "http",
- "listenPort": 7890,
- "url": ""
}
], - "domain": 0,
- "createTime": {
- "seconds": 1726810944
}, - "cmd": "",
- "envs": "foo=bar",
- "remark": "this is from sdk",
- "metaKey": "order.123456",
- "sourceType": "SourceSDK",
- "netEndpointInfos": null,
- "regionName": "Region-01"
}
}request_id または meta_key でインスタンスをキャンセルします。
サーバーは、認証済み SDK ユーザーが所有し、SDK source semantics で作成されたインスタンスのみをキャンセルします。
無効な ID、所有していないインスタンス、query parameter の不足は ParamIllegal を返します。
| request_id | string <= 64 characters Example: request_id=ins-boyqp4g8
|
| meta_key | string <= 64 characters Example: meta_key=order.123456 ユーザーが指定するグローバルに一意な |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
{- "code": 0,
- "msg": ""
}認証済み SDK ユーザーの疎な status-to-count map を返します。
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object status name から instance count への疎な map。 |
{- "code": 0,
- "msg": "",
- "stats": {
- "Running": 1,
- "SchedQueued": 2
}
}認証済み SDK ユーザーのインスタンスを一覧します。
サーバー binding により page と per_page は必須です。per_page は 20 以下である必要があります。
空の statuses list を渡すとすべての状態が返ります。不明な status name は現在サーバーにより無視されます。
| page required | integer <uint32> >= 1 Example: page=1 1 始まりのページ番号。 |
| per_page required | integer <uint32> [ 1 .. 20 ] Example: per_page=10 ページサイズ。現在のサーバーは 20 より大きい値を拒否します。 |
| ascending | boolean Default: false true の場合は作成時刻の昇順、false の場合は降順でソートします。 |
| statuses | Array of strings (NodeStatusName) Items Enum: "InvalidNodeStatus" "Pending" "Running" "Exited" "Finished" "Rebooted" "Canceling" "Unavail" "Pausing" "Paused" "Resuming" "Snapshotted" "ExitSnapshotted" "Migrating" "Checkpointed" "SchedInit" "SchedQueued" "PriceChanged" 繰り返し指定可能な状態フィルターです。例: |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (Pagination) | |
Array of objects (VisibleInstance) |
{- "code": 0,
- "msg": "",
- "pagination": {
- "total": 1,
- "numPages": 1,
- "page": 1,
- "perPage": 10
}, - "instances": [
- {
- "instanceID": "ins-boyqp4g8",
- "category": "container",
- "status": "Running",
- "priceCent": 65,
- "hardware": {
- "gpuName": "NVIDIA GeForce RTX 4090",
- "cpuName": "Intel(R) Xeon(R) Platinum 8352V CPU @ 2.10GHz",
- "gpuNum": 1,
- "gpuRamMB": 24564,
- "cpuCoresNum": 10,
- "ramMB": 43008,
- "diskGB": 100
}, - "baseImage": {
- "imageID": "img-87p9kq26",
- "imageName": "Ubuntu20.04 CUDA12.2 Python3.9"
}, - "baseSnap": null,
- "sshCred": {
- "user": "root",
- "password": "example-password"
}, - "accesses": [ ],
- "domain": 0,
- "createTime": {
- "seconds": 1726810944
}, - "cmd": "",
- "envs": "foo=bar",
- "remark": "this is from sdk",
- "metaKey": "order.123456",
- "sourceType": "SourceSDK",
- "netEndpointInfos": [ ],
- "regionName": "Region-01"
}
]
}認証済み SDK ユーザーのために、単一のコンテナ registry イメージリンクを送信します。
SDK サーフェスは image_link のみを受け付けます。サーバーは registry URL provider semantics でユーザー所有のプライベートイメージを作成し、
エンコードされた image resource ID を返します。
| image_link required | string <= 512 characters 単一の registry image link。空白文字は拒否されます。 |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
| image_id | string エンコード済み image resource ID。例: |
| name | string サーバー生成の image name。 |
{- "image_link": "registry.example.com/team/runtime:cuda12.2"
}{- "code": 0,
- "msg": "",
- "image_id": "img-87p9kq26",
- "name": "sdk-10001-1726810944000000000-runtime"
}認証済み SDK ユーザーが所有するプライベートイメージを削除します。
サーバーは img-... のようなエンコード済み image resource ID を受け付け、所有権を検証し、
backing image store を解決してから image manager delete flow を呼び出します。公開イメージや他ユーザー所有のイメージは拒否されます。
| image_id required | string <= 64 characters エンコード済み image resource ID。例: |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
{- "image_id": "img-87p9kq26"
}{- "code": 0,
- "msg": ""
}| page | integer <uint32> >= 0 Default: 1 Example: page=1 1 始まりのページ番号。省略または |
| per_page | integer <uint32> [ 0 .. 20 ] Default: 20 Example: per_page=10 ページサイズ。省略または |
| owned | boolean Default: false true の場合、認証済みユーザーが所有するイメージのみを返します。 |
| keywords | string <= 100 characters |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (Pagination) | |
Array of objects (SDKImageInfo) |
{- "code": 0,
- "msg": "",
- "pagination": {
- "total": 1,
- "numPages": 1,
- "page": 1,
- "perPage": 10
}, - "images": [
- {
- "image_id": "img-87p9kq26",
- "name": "sdk-10001-1726810944000000000-runtime",
- "status": 0,
- "create_time": 1726810944
}
]
}| machine_category required | integer <int32> (MachineCategory) Enum: 0 1 2 3 マシンリソースカテゴリーフィルター。 |
| from_image_id required | string <= 64 characters Example: from_image_id=img-87p9kq26 イメージ互換 specs を一覧するために使用する image resource ID。 |
| page | integer <uint32> >= 0 Default: 1 Example: page=1 1 始まりのページ番号。省略または |
| per_page | integer <uint32> [ 0 .. 20 ] Default: 20 Example: per_page=10 ページサイズ。省略または |
| region_name | string <= 128 characters Example: region_name=Region-01 任意のリージョン表示/名前値です。省略時は複数リージョンにわたって specs を一覧します。 |
| by_region | boolean Default: false response をリージョン別にグループ化します。このモードではページングはリージョンに適用されます。 |
| instance_category | integer <int32> (SpecInstanceCategory) Enum: 0 1 任意の container/VM フィルターです。省略すると instance category ではフィルターしません。 |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (Pagination) | |
Array of objects (SpecInfo)
| |
Array of objects (RegionSpecs)
|
{- "code": 0,
- "msg": "",
- "pagination": {
- "total": 1,
- "numPages": 1,
- "page": 1,
- "perPage": 10
}, - "specs": [
- {
- "region_name": "Region-01",
- "machine_category": 0,
- "instance_categories": [
- 0,
- 1
], - "base_resource": {
- "resource_id": "cnR4NDA5MC0xZ3B1",
- "unit_qty": 1,
- "unit_spec": {
- "cpus": 10,
- "gpus": 1,
- "disk_gb": 100,
- "gpu_name": "NVIDIA GeForce RTX 4090",
- "cpu_name": "Intel(R) Xeon(R) Platinum 8352V CPU @ 2.10GHz",
- "ram_mb": 43008
}
}, - "extra_resources": [
- {
- "resource": {
- "cpus": 4
}, - "price": {
- "millicent_per_hour": 20000
}
}
], - "price": {
- "millicent_per_hour": 120000
}, - "avail": true,
- "max_available_units": 8
}
], - "regions": [ ]
}ユーザー mesh ネットワークを作成します。network_type は SDK 向けの整数 enum です。mesh 作成では省略するか 0 を渡します。
NAT4 作成は SDK HTTP API では公開されていません。
| name required | string <= 32 characters |
| region_name required | string <= 128 characters |
| network_type | integer <int32> (NetworkType) Enum: 0 1 2 3 4 5 6 7 数値の network type。SDK network API では、互換性のため省略または |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
| network_id | string エンコード済み network resource ID。例: |
{- "network_type": 0,
- "name": "train-mesh",
- "region_name": "Region-01"
}{- "code": 0,
- "msg": "",
- "network_id": "net-od7pv75w"
}ユーザー所有のネットワークを一覧します。mesh ネットワークを一覧するには network_type を省略するか 0 を渡します。ユーザーが購入した public IP ネットワークを一覧するには 6
(NAT4) を渡します。
この endpoint は所有中の NAT4/public-IP ネットワークを返し、購入可能な EIP pool は返しません。
| page | integer <uint32> >= 0 Default: 1 Example: page=1 1 始まりのページ番号。省略または |
| per_page | integer <uint32> [ 0 .. 20 ] Default: 20 Example: per_page=10 ページサイズ。省略または |
| network_type | integer <int32> (NetworkType) Enum: 0 1 2 3 4 5 6 7 mesh/UserVXLAN では省略または 0 を渡し、NAT4 public IP ネットワークでは 6 を渡します。 |
| domain | integer <int32> (Domain) Default: 0 Domain の数値です。デフォルト domain では省略するか 0 を渡します。 |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (Pagination) | |
Array of objects (VisibleNetwork) |
{- "code": 0,
- "msg": "",
- "pagination": {
- "total": 1,
- "numPages": 1,
- "page": 1,
- "perPage": 5
}, - "networks": [
- {
- "netID": "net-od7pv75w",
- "name": "DefaultNet_DM0",
- "createTime": {
- "seconds": 1728287027
}, - "create_time": 1728287027,
- "clusterType": "Overlay",
- "domain": 0
}
]
}1 つ以上の既存のユーザー所有インスタンスを、ユーザー所有の mesh ネットワークに接続します。重複した
instance_ids は quota チェック前に無視されます。現在の request は最大 10 件の instance ID を受け付けます。
| network_id required | string <= 64 characters |
| instance_ids required | Array of strings [ 1 .. 10 ] items [ items <= 64 characters ] |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
| network_id | string |
| endpoint_ids | Array of strings |
{- "network_id": "net-od7pv75w",
- "instance_ids": [
- "ins-boyqp4g8",
- "ins-qgv8a2zk"
]
}{- "code": 0,
- "msg": "",
- "network_id": "net-od7pv75w",
- "endpoint_ids": [
- "ept-9avm2m3p"
]
}| network_id required | string <= 64 characters Example: network_id=net-od7pv75w |
| page | integer <uint32> >= 0 Default: 1 Example: page=1 1 始まりのページ番号。省略または |
| per_page | integer <uint32> [ 0 .. 20 ] Default: 20 Example: per_page=10 ページサイズ。省略または |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (Pagination) | |
Array of objects (SDKNetworkEndpoint) |
{- "code": 0,
- "msg": "",
- "pagination": {
- "total": 1,
- "numPages": 1,
- "page": 1,
- "perPage": 10
}, - "endpoints": [
- {
- "endpoint_id": "ept-9avm2m3p",
- "network_id": "net-od7pv75w",
- "instance_id": "ins-boyqp4g8",
- "status": 2,
- "cidr": "203.0.113.2/24",
- "mac": "02:00:01:00:00:02",
- "create_time": 1728287027
}
]
}サーバー設定の SDK Snapshot Volume を使用して、実行中のインスタンスのスナップショットを 1 つ以上作成します。
| instance_id required | string <= 64 characters |
| name | string <= 32 characters |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
| snapshot_ids | Array of strings |
| instance_id | string |
| status | string スナップショット作成後のインスタンス状態名。現在の成功 response は |
{- "instance_id": "ins-boyqp4g8",
- "name": "checkpoint-001"
}{- "code": 0,
- "msg": "",
- "snapshot_ids": [
- "snap-5mrq9a2w"
], - "instance_id": "ins-boyqp4g8",
- "status": "Pausing"
}| page | integer <uint32> >= 0 Default: 1 Example: page=1 1 始まりのページ番号。省略または |
| per_page | integer <uint32> [ 0 .. 20 ] Default: 20 Example: per_page=10 ページサイズ。省略または |
| status | Array of integers <int32> (SnapshotStatus) [ items <int32 > ] Items Enum: 0 1 2 3 4 5 6 7 繰り返し指定可能な数値 snapshot status フィルターです。省略するとサーバーデフォルトの snapshot listing semantics を使用します。 |
| code | integer <int32> (ErrCode) Enum: 0 1 6 7 10 17 20 88 89 114 133 164 174 192 194 198 199 206 208 215 SDK に関連するアプリケーションエラーコード。 |
| msg | string |
object (Pagination) | |
Array of objects (SDKSnapshotInfo) |
{- "code": 0,
- "msg": "",
- "pagination": {
- "total": 1,
- "numPages": 1,
- "page": 1,
- "perPage": 10
}, - "snapshots": [
- {
- "snapshot_id": "snap-5mrq9a2w",
- "instance_id": "ins-boyqp4g8",
- "status": 3,
- "type": 1,
- "domain": 0,
- "create_time": 1728287027,
- "modify_time": 1728287080,
- "size_bytes": 1073741824,
- "vol_size_bytes": 10737418240
}
]
}公開 SDK API が使用するエラーコード:
| code | 名前 | 意味 |
|---|---|---|
| 0 | Success | リクエストは成功しました。 |
| 1 | InternalError | サーバー内部エラー。 |
| 6 | ParamIllegal | パラメーターが無効、必須フィールドの欠落、リソース ID が無効、または所有権の不一致。 |
| 7 | PermissionDenied | 権限がありません。 |
| 10 | MetaKeyExist | custom_meta_key は既に存在します。 |
| 17 | DiskQuotaExceeded | ディスククォータを超過しました。 |
| 20 | IllegalStatus | インスタンスは要求された操作を実行できる状態ではありません。 |
| 88 | OutOfNetCountLimit | ネットワーク数のクォータを超過しました。 |
| 89 | EndpointExist | エンドポイントは既に存在します。 |
| 114 | TakingSnapNotAllowed | スナップショットの作成は許可されていません。 |
| 133 | NetNameRepeat | ネットワーク名は既に存在します。 |
| 164 | OutOfNetEndpointCountLimit | プライベートネットワークのエンドポイントクォータを超過しました。 |
| 174 | ImageAlreadyExists | イメージは既に存在します。 |
| 192 | ImagePendingLimitExceeded | イメージの保留数が上限を超過しました。 |
| 194 | ConflictPortMapping | 指定された Bind IP の exposePort は既に使用されています。 |
| 198 | UserNodeQtyExceedQuota | ユーザーのインスタンスクォータを超過しました。 |
| 199 | UserSnapQtyExceedQuota | ユーザーのスナップショットクォータを超過しました。 |
| 206 | InvalidDomainInfo | region_name を有効なドメインにマッピングできません。 |
| 208 | RegionAccessDenied | 認証されたユーザーは要求されたリージョンへのアクセス権を持っていません。 |
| 215 | NoResourceAvailable | 必要なリソースが利用できません。 |