NHN Cloud NetworkサービスはOpenStack neutron APIと互換性のあるAPIを提供します。 提供するOpenstack互換APIは次のとおりです。
| Openstack APIメソッド | 用途 |
|---|---|
| GET networks | ネットワークリスト表示 |
| GET subnets | サブネットリスト表示 |
| GET ports | ポートリスト表示 |
| POST port | ポートを作成する |
| PUT port | ポートを変更する |
| DELETE port | ポートを削除する |
OpenStack互換APIのリクエスト及びレスポンスに含まれるフィールドはOpenStack neutron APIが提供する項目のうち、NHN Cloudのポリシーに基づき、文書に明示された項目に制限されます。
APIを使用するにはAPIエンドポイントとトークンなどが必要です。API使用準備を参照してAPIを使用するのに必要な情報を準備します。
Openstack互換APIはnetworkタイプエンドポイントを利用します。正確なエンドポイントはトークン発行レスポンスのserviceCatalogを参照します。
| タイプ | リージョン | エンドポイント |
|---|---|---|
| network | 韓国(パンギョ)リージョン 韓国(ピョンチョン)リージョン 日本(東京)リージョン 米国(カリフォルニア)リージョン |
https://kr1-api-network-infrastructure.nhncloudservice.com https://kr2-api-network-infrastructure.nhncloudservice.com https://jp1-api-network-infrastructure.nhncloudservice.com https://us1-api-network-infrastructure.nhncloudservice.com |
使用可能なネットワークリストを返します。
GET /v2.0/networks
X-Auth-Token: {tokenId}
このAPIはリクエスト本文を要求しません。
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| tokenId | Header | String | O | トークンID |
| id | Query | UUID | - | 照会するネットワークID |
| name | Query | String | - | 照会するネットワーク名 |
| provider:network_type | Query | Enum | - | 照会するネットワークタイプflat、vlanのどちらか |
| router:external | Query | Boolean | - | 照会するネットワークの外部接続有無 |
| shared | Query | Boolean | - | 照会するネットワークの共有有無 |
| tenant_id | Query | String | - | 照会するネットワークが属しているテナントID |
| sort_dir | Query | Enum | - | 照会するネットワークのソート方向sort_keyで指定したフィールドを基準にソートasc、descのどちらか |
| sort_key | Query | String | - | 照会するネットワークのソートキーsort_dirで指定した方向通りにソート |
| fields | Query | String | - | 照会するネットワークのフィールド名 例) fields=id&fields=name |
| 名前 | 種類 | 形式 | 説明 |
|---|---|---|---|
| networks | Body | Array | ネットワーク情報オブジェクトリスト |
| networks.status | Body | Enum | ネットワークの状態 ACTIVE、DOWN、BUILD、ERRORのいずれか。 |
| networks.subnets | Body | Array | ネットワークに属しているサブネットのIDリスト |
| networks.name | Body | String | ネットワーク名 |
| networks.router:external | Body | Boolean | ネットワーク外部接続有無 |
| networks.tenant_id | Body | String | テナントID |
| networks.admin_state_up | Body | Boolean | 管理者制御状態true:使用可能false:使用不可 |
| networks.mtu | Body | Integer | 最大転送単位(Maximum Transmission Unit) |
| networks.shared | Body | Boolean | ネットワーク共有有無 |
| networks.port_security_enabled | Body | Boolean | ネットワークポートのセキュリティ有無 このネットワークで作成されるポートのセキュリティ有無を決定 |
| networks.id | Body | String | ネットワークID |
| networks.name | Body | String | ネットワーク名 |
| networks_links | Body | Array | ページネーション用の情報オブジェクトlimit、offsetを追加した場合に返す次のリストを指すパスを含む |
{
"networks": [
{
"status": "ACTIVE",
"subnets": [
"b83863ff-0355-4c73-8c10-0bdf66a69aab"
],
"name": "Default Network",
"router:external": false,
"tenant_id": "6cdebe3eb0094910bc41f1d42ebe4cb7",
"admin_state_up": true,
"mtu": 0,
"shared": false,
"port_security_enabled": true,
"id": "245ff686-4ca2-4176-a069-81013537ac3a"
},
{
"name": "public_network",
"id": "b04b1c31-f2e9-4ae0-a264-02b7d61ad618",
"status": "ACTIVE",
"shared": true,
"subnets": [
"6b3f7d6d-df61-4345-beb5-1621fd274659",
"f22ae5cb-5e52-4704-9c31-83dc3826efb7"
],
"admin_state_up": true,
"port_security_enabled": true,
"router:external": true,
"tenant_id": "e873d250f2ca40b78e2c12cfbaaeb740",
"mtu": 0
}
]
}
使用可能なサブネットリストを返します。
GET /v2.0/subnets
X-Auth-Token: {tokenId}
このAPIはリクエスト本文を要求しません。
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| tokenId | Header | String | O | トークンID |
| id | Query | UUID | - | 照会するサブネットID |
| name | Query | String | - | 照会するサブネット名 |
| enable_dhcp | Query | Boolean | - | 照会するサブネットのDHCP有無 |
| network_id | Query | UUID | - | 照会するサブネットのネットワークID |
| cidr | Query | String | - | 照会するサブネットのCIDR |
| shared | Query | Boolean | - | 照会するサブネットの共有有無 |
| sort_dir | Query | Enum | - | 照会するサブネットのソート方向sort_keyで指定したフィールドを基準にソートasc、descのいずれか |
| sort_key | Query | String | - | 照会するサブネットのソートキーsort_dirで指定した方向通りにソート |
| fields | Query | String | - | 照会するサブネットのフィールド名 例) fields=id&fields=name |
| 名前 | 種類 | 形式 | 説明 |
|---|---|---|---|
| subnets | Body | Array | サブネット情報オブジェクトリスト |
| subnets.name | Body | String | サブネット名 |
| subnets.enable_dhcp | Body | Boolean | サブネットのDHCP有無 |
| subnets.network_id | Body | UUID | サブネットのネットワークID |
| subnets.tenant_id | Body | String | テナントID |
| subnets.dns_nameservers | Body | Array | サブネットに接続されたDNSネームサーバーリスト |
| subnets.gateway_ip | Body | String | サブネットのゲートウェイIP |
| subnets.ipv6_ra_mode | Body | Boolean | IPv6のRouter Advertisementモード |
| subnets.allocation_pools | Body | Array | サブネットIP範囲オブジェクトリスト |
| subnets.allocation_pools.start | Body | String | サブネットIP範囲の最初のIPアドレス |
| subnets.allocation_pools.end | Body | String | サブネットIP範囲の最後のIPアドレス |
| subnets.host_routes | Body | Array | サブネットの追加パス情報リスト |
| subnets.host_routes.destination | Body | String | 宛先 宛先アドレスが destinationの場合nexthopに指定されたアドレスへ伝達 |
| subnets.host_routes.nexthop | Body | String | 次のhopアドレス |
| subnets.ip_version | Body | Integer | IPプロトコルバージョン 4または6 |
| subnets.ipv6_address_mode | Body | String | IPv6のアドレス割り当てモード |
| subnets.cidr | Body | String | サブネットのCIDR |
| subnets.id | Body | UUID | サブネットのID |
| subnets.subnetpool_id | Body | UUID | サブネットPool ID |
| subnets_links | Body | Array | ページネーション用の情報オブジェクトlimit、offsetを追加した場合に返す次のリストを指すパスを含む |
{
"subnets": [
{
"name": "default",
"enable_dhcp": true,
"network_id": "245ff686-4ca2-4176-a069-81013537ac3a",
"tenant_id": "6cdebe3eb0094910bc41f1d42ebe4cb7",
"dns_nameservers": [],
"gateway_ip": "192.168.0.1",
"ipv6_ra_mode": null,
"allocation_pools": [
{
"start": "192.168.0.2",
"end": "192.168.0.254"
}
],
"host_routes": [],
"ip_version": 4,
"ipv6_address_mode": null,
"cidr": "192.168.0.0/24",
"id": "b83863ff-0355-4c73-8c10-0bdf66a69aab",
"subnetpool_id": null
}
]
}
ポートリストを返します。
GET /v2.0/ports
X-Auth-Token: {tokenId}
このAPIはリクエスト本文を要求しません。
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| tokenId | Header | String | O | トークンID |
| id | Query | UUID | - | 照会するポートID |
| status | Query | Enum | - | 照会するポート状態ACTIVE, BUILD, DOWNのいずれか |
| name | Query | String | - | 照会するポート名 |
| admin_state | Query | Boolean | - | 照会するポートの管理者制御状態 |
| network_id | Query | UUID | - | 照会するポートのネットワークID |
| tenant_id | Query | String | - | 照会するポートのテナントID |
| fixed_ips | Query | array | - | 照会するポートの固定IP情報。 IPアドレス( ip_address), IPアドレス一部(ip_address_substr)、サブネットID(subnet_id)でフィルタリング可能 |
| mac_address | Query | String | - | 照会するポートのMACアドレス |
| device_owner | Query | String | - | 照会するポートを使用するリソースの種類 |
| device_id | Query | UUID | - | 照会するポートを使用するリソースID |
| fields | Query | String | - | 照会するポートのフィールド名 例) fields=id&fields=name |
| 名前 | 種類 | 形式 | 説明 |
|---|---|---|---|
| ports | Body | Array | ポート情報オブジェクトリスト |
| ports.id | Body | UUID | ポートのID |
| ports.name | Body | String | ポート名 |
| ports.status | Body | Enum | ポート状態ACTIVE, BUILD, DOWNのいずれか |
| ports.admin_state_up | Body | Boolean | ポートの管理者制御状態 |
| ports.network_id | Body | UUID | ポートのネットワークID |
| ports.tenant_id | Body | String | テナントID |
| ports.extra_dhcp_opts | Body | Array | 追加DHCPオプション |
| ports.binding:vnic_type | Body | String | ポートに接続されたvNICタイプ |
| ports.device_owner | Body | String | ポートを使用するリソースの種類 |
| ports.device_id | Body | UUID | ポートを使用するリソースID |
| ports.mac_address | Body | String | ポートのMACアドレス |
| ports.fixed_ips | Body | Array | ポートの固定IPリスト |
| ports.fixed_ips.subnet_id | Body | UUID | 固定IPが属するサブネットID |
| ports.fixed_ips.ip_address | Body | String | 固定IPアドレス |
| ports.port_security_enabled | Body | Boolean | ポートのセキュリティ状態 有効の場合、セキュリティグループ、許可アドレスペアを設定可能 |
| ports.security_groups | Body | Array | ポートに設定されたセキュリティグループIDリスト |
| ports.allowed_address_pairs | Body | Array | ポートに設定された許可アドレスのペアリスト |
{
"ports": [
{
"status": "ACTIVE",
"name": "",
"allowed_address_pairs": [],
"admin_state_up": true,
"network_id": "c46ee4e8-c9fa-462e-8a3b-55b1f11dd8f8",
"tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
"extra_dhcp_opts": [],
"binding:vnic_type": "normal",
"device_owner": "compute:kr-pub-a",
"mac_address": "fa:16:3e:1a:ed:34",
"port_security_enabled": true,
"fixed_ips": [
{
"subnet_id": "eb166bdf-dd99-4b02-ac8e-64be21dff2d5",
"ip_address": "192.168.0.15"
}
],
"id": "2a83bc25-ed76-4a2b-83b7-a4408aa99c4a",
"security_groups": [
"877b092c-2a31-4509-8d23-deeb02d95633"
],
"device_id": "10b9643d-9bc8-4b0f-a5dd-cfcb4033d70b"
}
]
}
GET /v2.0/ports/{portId}
X-Auth-Token: {tokenId}
このAPIはリクエスト本文を要求しません。
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| portId | URL | UUID | O | ポートID |
| tokenId | Header | String | O | トークンID |
| fields | Query | String | - | 照会するポートのフィールド名 例) fields=id&fields=name |
| 名前 | 種類 | 形式 | 説明 |
|---|---|---|---|
| port | Body | Array | ポート情報オブジェクト |
| port.id | Body | UUID | ポートのID |
| port.name | Body | String | ポート名 |
| port.status | Body | Enum | ポート状態ACTIVE, BUILD, DOWNのいずれか |
| port.admin_state_up | Body | Boolean | ポートの管理者制御状態 |
| port.network_id | Body | UUID | ポートのネットワークID |
| port.tenant_id | Body | String | テナントID |
| port.extra_dhcp_opts | Body | Array | 追加DHCPオプション |
| port.binding:vnic_type | Body | String | ポートに接続されたvNICタイプ |
| port.device_owner | Body | String | ポートを使用するリソースの種類 |
| port.device_id | Body | UUID | ポートを使用するリソースID |
| port.mac_address | Body | String | ポートのMACアドレス |
| port.fixed_ips | Body | Array | ポートの固定IPリスト |
| port.fixed_ips.subnet_id | Body | UUID | 固定IPが属するサブネットID |
| port.fixed_ips.ip_address | Body | String | 固定IPアドレス |
| port.port_security_enabled | Body | Boolean | ポートのセキュリティ状態 有効化の場合、セキュリティグループ、許可アドレスのペアを設定可能 |
| port.security_groups | Body | Array | ポートに設定されたセキュリティグループIDリスト |
| port.allowed_address_pairs | Body | Array | ポートに設定された許可アドレスのペアリスト |
{
"port": {
"status": "ACTIVE",
"name": "",
"allowed_address_pairs": [],
"admin_state_up": true,
"network_id": "c46ee4e8-c9fa-462e-8a3b-55b1f11dd8f8",
"tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
"extra_dhcp_opts": [],
"binding:vnic_type": "normal",
"device_owner": "compute:kr-pub-a",
"mac_address": "fa:16:3e:1a:ed:34",
"port_security_enabled": true,
"fixed_ips": [
{
"subnet_id": "eb166bdf-dd99-4b02-ac8e-64be21dff2d5",
"ip_address": "192.168.0.15"
}
],
"id": "2a83bc25-ed76-4a2b-83b7-a4408aa99c4a",
"security_groups": [
"877b092c-2a31-4509-8d23-deeb02d95633"
],
"device_id": "10b9643d-9bc8-4b0f-a5dd-cfcb4033d70b"
}
}
新しいポートを作成します。作成したポートはインスタンス作成時に活用できます。
POST /v2.0/ports
X-Auth-Token: {tokenId}
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| tokenId | Header | String | O | トークンID |
| port | Body | Object | O | ポート作成リクエストオブジェクト |
| port.name | Body | String | - | ポート名 |
| port.network_id | Body | UUID | O | ポートのネットワークID |
| port.admin_state_up | Body | Boolean | - | ポートの管理者制御状態。デフォルト値true |
| port.fixed_ips | Body | Array | - | ポートの固定IPリスト |
| port.fixed_ips.subnet_id | Body | UUID | - | 固定IPを割り当てるサブネットID |
| port.fixed_ips.ip_address | Body | String | - | 固定IPアドレス |
| port.port_security_enabled | Body | Boolean | - | ポートセキュリティを使用するかどうか。デフォルト値true |
| port.security_groups | Body | Array | - | ポートに設定するセキュリティグループIDリスト。デフォルト値defaultセキュリティグループのIDポートセキュリティ使用時に設定可能 |
| port.allowed_address_pairs | Body | Array | - | ポートの許可アドレスのペアリスト ポートセキュリティ使用時に設定可能 |
| port.allowed_address_pairs.ip_address | Body | String | - | 許可するIPアドレス |
| port.allowed_address_pairs.mac_address | Body | String | - | 許可するMACアドレス |
| port.extra_dhcp_opts | Body | Array | - | 追加DHCPオプション |
| port.device_owner | Body | String | - | ポートを使用するリソースの種類 |
| port.device_id | Body | UUID | - | ポートを使用するリソースID。仮想IPとして使用する場合はnetwork:virtual_ipに指定 |
{
"port": {
"network_id": "a87cc70a-3e15-4acf-8205-9b711a3531b7",
"name": "private-port",
"admin_state_up": true
}
}
| 名前 | 種類 | 形式 | 説明 |
|---|---|---|---|
| port | Body | Array | ポート情報オブジェクト |
| port.id | Body | UUID | ポートのID |
| port.name | Body | String | ポート名 |
| port.status | Body | Enum | ポート状態ACTIVE, BUILD, DOWNのいずれか |
| port.admin_state_up | Body | Boolean | ポートの管理者制御状態 |
| port.network_id | Body | UUID | ポートのネットワークID |
| port.tenant_id | Body | String | テナントID |
| port.extra_dhcp_opts | Body | Array | 追加DHCPオプション |
| port.binding:vnic_type | Body | String | ポートに接続されたvNICタイプ |
| port.device_owner | Body | String | ポートを使用するリソースの種類 |
| port.device_id | Body | UUID | ポートを使用するリソースID |
| port.mac_address | Body | String | ポートのMACアドレス |
| port.fixed_ips | Body | Array | ポートの固定IPリスト |
| port.fixed_ips.subnet_id | Body | UUID | 固定IPが属するサブネットID |
| port.fixed_ips.ip_address | Body | String | 固定IPアドレス |
| port.port_security_enabled | Body | Boolean | ポートのセキュリティ状態 有効化の場合、セキュリティグループ、許可アドレスのペアを設定可能 |
| port.security_groups | Body | Array | ポートに設定されたセキュリティグループIDリスト |
| port.allowed_address_pairs | Body | Array | ポートに設定された許可アドレスのペアリスト |
{
"port": {
"status": "DOWN",
"name": "private-port",
"allowed_address_pairs": [],
"admin_state_up": true,
"network_id": "a87cc70a-3e15-4acf-8205-9b711a3531b7",
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
"device_owner": "",
"mac_address": "fa:16:3e:c9:cb:f0",
"fixed_ips": [
{
"subnet_id": "a0304c3a-4f08-4c43-88af-d796509c97d2",
"ip_address": "10.0.0.2"
}
],
"id": "65c0ee9f-d634-4522-8954-51021b570b0d",
"security_groups": [
"f0ac4394-7e4a-4409-9701-ba8be283dbc3"
],
"device_id": ""
}
}
指定したポートのプロパティを変更します。
PUT /v2.0/ports/{portId}
X-Auth-Token: {tokenId}
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| tokenId | Header | String | O | トークンID |
| port | Body | Object | O | ポート作成リクエストオブジェクト |
| port.name | Body | String | - | ポート名 |
| port.admin_state_up | Body | Boolean | - | ポートの管理者制御状態 |
| port.fixed_ips | Body | Array | - | ポートの固定IPリスト |
| port.fixed_ips.subnet_id | Body | UUID | - | 固定IPを割り当てるサブネットID |
| port.fixed_ips.ip_address | Body | String | - | 固定IPアドレス |
| port.port_security_enabled | Body | Boolean | - | ポートセキュリティを使用するかどうか セキュリティグループ及び許可アドレスのペアがすべて除去された後、 falseに変更可能 |
| port.security_groups | Body | Array | - | ポートに設定するセキュリティグループIDリスト。空のリストを入力すると全て削除 ポートセキュリティ使用時に設定可能 |
| port.allowed_address_pairs | Body | Array | - | ポートの許可アドレスのペアリスト。空のリストを入力すると全て除去 ポートセキュリティ使用時に設定可能 |
| port.allowed_address_pairs.ip_address | Body | String | - | 許可するIPアドレス |
| port.allowed_address_pairs.mac_address | Body | String | - | 許可するMACアドレス |
| port.extra_dhcp_opts | Body | Array | - | 追加DHCPオプション |
{
"port": {
"name": "private-port",
"admin_state_up": true
}
}
| 名前 | 種類 | 形式 | 説明 |
|---|---|---|---|
| port | Body | Array | ポート情報オブジェクト |
| port.id | Body | UUID | ポートのID |
| port.name | Body | String | ポート名 |
| port.status | Body | Enum | ポート状態ACTIVE, BUILD, DOWNのいずれか |
| port.admin_state_up | Body | Boolean | ポートの管理者制御状態 |
| port.network_id | Body | UUID | ポートのネットワークID |
| port.tenant_id | Body | String | テナントID |
| port.extra_dhcp_opts | Body | Array | 追加DHCPオプション |
| port.binding:vnic_type | Body | String | ポートに接続されたvNICタイプ |
| port.device_owner | Body | String | ポートを使用するリソースの種類 |
| port.device_id | Body | UUID | ポートを使用するリソースID |
| port.mac_address | Body | String | ポートのMACアドレス |
| port.fixed_ips | Body | Array | ポートの固定IPリスト |
| port.fixed_ips.subnet_id | Body | UUID | 固定IPが属するサブネットID |
| port.fixed_ips.ip_address | Body | String | 固定IPアドレス |
| port.port_security_enabled | Body | Boolean | ポートのセキュリティ状態 有効化の場合、セキュリティグループ、許可アドレスのペアを設定可能 |
| port.security_groups | Body | Array | ポートに設定されたセキュリティグループIDリスト |
| port.allowed_address_pairs | Body | Array | ポートに設定された許可アドレスのペアリスト |
{
"port": {
"status": "DOWN",
"name": "private-port",
"allowed_address_pairs": [],
"admin_state_up": true,
"network_id": "a87cc70a-3e15-4acf-8205-9b711a3531b7",
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
"device_owner": "",
"mac_address": "fa:16:3e:c9:cb:f0",
"fixed_ips": [
{
"subnet_id": "a0304c3a-4f08-4c43-88af-d796509c97d2",
"ip_address": "10.0.0.2"
}
],
"id": "65c0ee9f-d634-4522-8954-51021b570b0d",
"security_groups": [
"f0ac4394-7e4a-4409-9701-ba8be283dbc3"
],
"device_id": ""
}
}
指定したポートを削除します。
DELETE /v2.0/ports/{portId}
X-Auth-Token: {tokenId}
このAPIはリクエスト本文を要求しません。
| 名前 | 種類 | 形式 | 必須 | 説明 |
|---|---|---|---|---|
| portId | URL | UUID | O | ポートID |
| tokenId | Header | String | O | トークンID |
このAPIはレスポンス本文を返しません。