Download OpenAPI specification:Download OpenAPI Spec (YAML)Download OpenAPI Spec (JSON)
ネットワークスイート (CR) APIは、さくらのクラウドのネットワークスイート機能 (Networking Suite) を提供するAPIです。
APIを利用するためには、認証のための「APIキー」が必要です。事前にキーを発行しておきます。 APIキーは「ユーザID」「パスワード」に相当する「トークン」と呼ばれる認証情報で構成されています。
| 項目名 | APIキー発行時の項目名 | このドキュメント内での例 |
|---|---|---|
| ユーザID | アクセストークン(UUID) | 01234567-89ab-cdef-0123-456789abcdef |
| パスワード | アクセストークンシークレット | SAMPLETOKENSAMPLETOKENSAMPLETOKENSAM |
APIの入力には送信先URLに対して、いくつかのヘッダーとAPIキーを送信します。
# 入力サンプル
curl \
-u '01234567-89ab-cdef-0123-456789abcdef:SAMPLETOKENSAMPLETOKENSAMPLETOKENSAM' \
-X GET \
'https://secure.sakura.ad.jp/cloud/zone/is1c/api/cloud/1.1/networking-suite/subnet-groups'
ネットワークスイートでは、作成するリソースのスコープに応じてAPIエンドポイントのゾーンを指定します。
is1 リージョンの場合、is1c ゾーンを指定します。is1c ゾーンにサブネットを作成する場合、is1c ゾーンを指定します。| リソース種 | リソース種識別子 | スコープ |
|---|---|---|
| サブネットグループ | sakura.networking-suite.subnet-group | リージョン |
| サブネット | sakura.networking-suite.subnet | ゾーン |
| インターフェースコネクション | sakura.networking-suite.interface-connection | ゾーン |
| サブネットアドレス | sakura.networking-suite.address | ゾーン |
| NIC (インターフェース) | sakura.iaas.interface | ゾーン |
リソース種識別子についての詳細は「さくらのリソース名 (Sakura resource name, SRN)」の項目をご参照ください。
さくらのリソース名 (Sakura resource name, SRN) は、さくらのクラウドのリソースを一意に識別するための文字列です。SRNは、リソースのスコープや種類、IDなどを含む構造化された文字列であり、リソースを特定するために使用されます。 ネットワークスイート (CR) APIでは、SRNを使用してサブネットグループやサブネットなどのリソースを識別します。SRNは、リソースの種類やIDを含むため、API呼び出し時にリソースを指定する際に便利です。
SRNは以下の構造を持ちます。
srnv1:{{ロケーション識別子}}:{{リソース種識別子}}:{{ID}}
| 項目 | 概要 | 形式例 |
|---|---|---|
| ロケーション識別子 | リソースの所在を示す識別子です。 | sakura-is1c (石狩第3ゾーン), sakura-is1 (石狩リージョン) |
| リソース種識別子 | リソースの種類を示す識別子です。 | sakura.networking-suite.subnet-group (サブネットグループ), sakura.iaas.interface (インターフェース) |
| ID | リソースのIDです。 | (形式はリソースによって異なります) |
例1: 石狩リージョンにあるサブネットグループのSRNは以下のような形式です。
srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890
例2: 石狩第3ゾーンにあるNIC (インターフェース)のSRNは以下のような形式です。
srnv1:sakura-is1c:sakura.iaas.interface:2345678901
具体的なSRNの値や指定方法については、各APIごとのドキュメントをご参照ください。
ネットワークスイート (CR) APIのレスポンスには、ドキュメント上に記載のないフィールドが含まれる場合があります。これらのフィールドは、将来的な拡張あるいは後方互換性のために予告無く追加・削除されることがあります。ドキュメント上に記載のないフィールドは、アプリケーションでの利用は行わないようにしてください。
サブネットグループを作成します。
| Name required | string 名前 |
| Description required | string 説明 |
| IPv4AddressRangeCIDR required | string IPv4アドレス範囲 (CIDR形式) マニュアル内「仕様」に記載の条件を満たすIPアドレス範囲をCIDR形式で表現します。 |
required | object (Region) リージョン |
{- "Name": "サブネットグループ名",
- "Description": "サブネットグループの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/20",
- "Region": {
- "Code": "is1"
}
}{- "SubnetGroup": {
- "Name": "サブネットグループ名",
- "Description": "サブネットグループの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/20",
- "Region": {
- "Code": "is1"
}, - "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}
}{- "Count": 1,
- "From": 0,
- "SubnetGroups": [
- {
- "Name": "サブネットグループ名",
- "Description": "サブネットグループの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/20",
- "Region": {
- "Code": "is1"
}, - "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}
], - "Total": 1
}サブネットグループの詳細を取得します。
| subnetgroupid required | string Examples:
サブネットグループのID サブネットグループのSRNの末尾、ID部分の値を指定します。
例: |
{- "SubnetGroup": {
- "Name": "サブネットグループ名",
- "Description": "サブネットグループの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/20",
- "Region": {
- "Code": "is1"
}, - "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}
}サブネットグループの詳細を更新します。
名前 (Name) と説明 (Description) のみ更新可能です。
| subnetgroupid required | string Examples:
サブネットグループのID サブネットグループのSRNの末尾、ID部分の値を指定します。
例: |
| Name required | string 名前 |
| Description required | string 説明 |
{- "Name": "新しいサブネットグループ名",
- "Description": "新しいサブネットグループの説明"
}{- "SubnetGroup": {
- "Name": "新しいサブネットグループ名",
- "Description": "新しいサブネットグループの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/20",
- "Region": {
- "Code": "is1"
}, - "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}
}サブネットグループを削除します。
サブネットグループを削除するには、サブネットグループに属するサブネットがすべて削除されている必要があります。
| subnetgroupid required | string Examples:
サブネットグループのID サブネットグループのSRNの末尾、ID部分の値を指定します。
例: |
{- "serial": "4f464bf7db102d5e8e2092876506bc77",
- "error_code": "forbidden",
- "error_msg": "要求された操作は許可されていません。権限エラー。"
}サブネットグループにサブネットを作成します。
| Name required | string 名前 |
| Description required | string 説明 |
| IPv4AddressRangeCIDR required | string IPv4アドレス範囲 (CIDR形式) マニュアル内「仕様」に記載の条件を満たすIPアドレス範囲をCIDR形式で表現します。 IPv4アドレス範囲は、親サブネットグループのIPv4アドレス範囲に含まれ、かつ、同一親サブネットグループ下の他サブネットと重複しない範囲である必要があります。 |
required | object (Zone) ゾーン |
required | object (SakuraResourceNameRef) 親サブネットグループ |
{- "Name": "サブネット名",
- "Description": "サブネットの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/26",
- "Zone": {
- "Code": "is1c"
}, - "SubnetGroup": {
- "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}
}{- "Subnet": {
- "Name": "サブネット名",
- "Description": "サブネットの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/26",
- "Zone": {
- "Code": "is1c"
}, - "SubnetGroup": {
- "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}, - "SRN": "srnv1:sakura-is1c:sakura.networking-suite.subnet:2345678901"
}
}サブネットの一覧を取得します。
| subnetGroupSRN required | string Examples:
サブネットグループのSRN 指定されたサブネットグループに属するサブネットの一覧のみを取得します。 |
{- "Count": 1,
- "From": 0,
- "Subnets": [
- {
- "Name": "サブネット名",
- "Description": "サブネットの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/26",
- "Zone": {
- "Code": "is1c"
}, - "SubnetGroup": {
- "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}, - "SRN": "srnv1:sakura-is1c:sakura.networking-suite.subnet:2345678901"
}
], - "Total": 1
}サブネットの詳細を取得します。
| subnetid required | string Examples:
サブネットのID サブネットのSRNの末尾、ID部分の値を指定します。
例: |
{- "Subnet": {
- "Name": "サブネット名",
- "Description": "サブネットの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/26",
- "Zone": {
- "Code": "is1c"
}, - "SubnetGroup": {
- "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}, - "SRN": "srnv1:sakura-is1c:sakura.networking-suite.subnet:2345678901"
}
}サブネットの詳細を更新します。
名前 (Name) と説明 (Description) のみ更新可能です。
| subnetid required | string Examples:
サブネットのID サブネットのSRNの末尾、ID部分の値を指定します。
例: |
| Name required | string 名前 |
| Description required | string 説明 |
{- "Name": "新しいサブネット名",
- "Description": "新しいサブネットの説明"
}{- "Subnet": {
- "Name": "新しいサブネット名",
- "Description": "新しいサブネットの説明",
- "IPv4AddressRangeCIDR": "10.0.0.0/26",
- "Zone": {
- "Code": "is1c"
}, - "SubnetGroup": {
- "SRN": "srnv1:sakura-is1:sakura.networking-suite.subnet-group:1234567890"
}, - "SRN": "srnv1:sakura-is1c:sakura.networking-suite.subnet:2345678901"
}
}サブネットを削除します。
サブネットを削除するには、サブネットに接続されているNICがすべて切断されている必要があります。インターフェースコネクションを削除することで、NICをサブネットから切断します。
| subnetid required | string Examples:
サブネットのID サブネットのSRNの末尾、ID部分の値を指定します。
例: |
{- "serial": "4f464bf7db102d5e8e2092876506bc77",
- "error_code": "forbidden",
- "error_msg": "要求された操作は許可されていません。権限エラー。"
}NIC (インターフェース) をサブネットに接続するために、インターフェースコネクションを作成します。
ネットワークスイートでは、NICとサブネットの接続関係をインターフェースコネクションというリソースで管理します。 また、NICをサブネットに接続する際に、エフェメラルIPアドレスを確保のうえ、インターフェースコネクションと紐付けて管理します。エフェメラルIPアドレスはサブネット内で一時的に割り当てられるIPアドレスであり、NICがサブネットから切断されると自動的に解放されます。
NICのSRNは、以下の手順で取得できます。
GET /server/{serverid}; 詳細) のレスポンスに含まれる Server.Interfaces[].ID を取得しますServer.Interfaces[].ID を用いて、NICのSRNを組み立てますServer.Interfaces[].ID が 3456789012 の場合、SRNは srnv1:<ロケーション識別子>:sakura.iaas.interface:3456789012 となります接続するNICとサブネットは同一ゾーンに存在する必要があります。異なるゾーンのNICとサブネットを接続することはできません。
| EphemeralIPv4Address | string IPv4アドレス |
required | object (SakuraResourceNameRef) サーバーNIC (インターフェース) |
required | object (SakuraResourceNameRef) サブネット |
NICをサブネットに接続する際、EphemeralIPv4Address フィールドを省略することで、空いている未使用のエフェメラルIPアドレスを自動的に割り当てます。
{- "Interface": {
- "SRN": "srnv1:sakura-is1c:sakura.iaas.interface:3456789012"
}, - "Subnet": {
- "SRN": "srnv1:sakura-is1c:sakura.networking-suite.subnet:2345678901"
}
}NICをサブネットに接続する際、EphemeralIPv4Address フィールドを省略することで、空いている未使用のエフェメラルIPアドレスを自動的に割り当てます。
{- "InterfaceConnection": {
- "SRN": "srnv1:sakura-is1c:sakura.networking-suite.interface-connection:4567890123",
- "EphemeralIPv4Address": "10.0.0.10"
}
}インターフェースコネクションを削除することで、NIC (インターフェース) をサブネットから切断します。
NICをサブネットから切断すると、NICに割り当てられていたエフェメラルIPアドレスは自動的に解放されます。
インターフェースコネクションを削除してNICをサブネットから切断するには、NICが接続されたサーバーが停止している必要があります。サーバーが起動中の場合、インターフェースコネクションを削除することはできません。
| interfaceconnectionid required | string Examples:
インターフェースコネクションのID インターフェースコネクションのSRNの末尾、ID部分の値を指定します。 インターフェースコネクションのIDは、以下のいずれかの方法で取得できます:
|
{- "serial": "4f464bf7db102d5e8e2092876506bc77",
- "error_code": "forbidden",
- "error_msg": "要求された操作は許可されていません。権限エラー。"
}割り当て済みのIPアドレスの一覧を取得します。
| subnetSRN required | string Examples:
サブネットのSRN 指定されたサブネットで割り当て済みのIPアドレスの一覧のみを取得します。 |
| interfaceConnectionSRN | string Examples:
インターフェースコネクションのSRN 指定されたインターフェースコネクションに割り当て済みのIPアドレスのみを取得します。 インターフェースコネクションのSRNは以下のいずれかの方法で取得できます:
|
{- "Total": 0,
- "From": 0,
- "Count": 0,
- "Addresses": [
- {
- "SRN": "string",
- "AddressType": "string",
- "IPVersion": "string",
- "IPAddress": "string",
- "Subnet": {
- "SRN": "string"
}
}
]
}割り当て済みのIPアドレスの詳細情報を取得します。
| addressid required | string Example: 5678901234 アドレスのID アドレスのSRNの末尾、ID部分の値を指定します。
例: |
{- "Address": {
- "SRN": "srnv1:sakura-is1c:sakura.networking-suite.address:5678901234",
- "AddressType": "EPHEMERAL_ADDRESS",
- "IPVersion": "IPv4",
- "IPAddress": "10.0.0.10",
- "Subnet": {
- "SRN": "srnv1:sakura-is1c:sakura.networking-suite.subnet:2345678901"
}
}
}