Master'sONE CloudWANではAPIを使って契約処理及び設定作業を行うことができます。
本ガイドではCloudWAN APIに関する用語や概念と基本的なユースケースに沿った利用方法をご説明致します。
APIの一覧及び詳細パラメータ等の仕様についてはAPIリファレンスをご参照下さい。
用語と各要素の関係
Master'sONE CloudWANの課金システムで使われる用語とIDの概念について以下に示します。
各用語の説明
名称 | システム上の識別子 | 説明 | APIでの取得方法 |
顧客 | cloudwan_id + customer_id | 再販を行うパートナー事業者様や複数ネットワークを持つ大規模なお客様が持つIDです。 顧客は複数のテナントを持つことが出来ます。 |
こちら |
テナント | tenant_id | 1つの論理ネットワークの単位です。 同一テナント内に所属するエッジ装置のみが通信経路(トンネル)を確立できます。 |
こちら |
拠点(契約用ID) | site_id | エッジ装置を設置している場所です。 基本的に1拠点にエッジ装置は1台 or 2台(冗長構成の場合)になります。 なおこちらのidは 契約情報の操作など /baas 配下のURIの場合に使います |
こちら |
拠点(設定用ID) | site_id | エッジ装置を設置している場所です。 基本的に1拠点にエッジ装置は1台 or 2台(冗長構成の場合)になります。 なおこちらのidは 拠点の設定変更など /cloudwan 配下のURIの場合に使います。 |
こちら |
エッジ装置 | ese_device_id | VPN通信経路を生成する通信機器です。 冗長構成の場合はアクティブ機とスタンバイ機になります。 |
こちら |
ID取得のサンプルコマンド
ここではMaster's ONE CloudWANの各種IDを取得するAPIコマンドを示します。
このコマンドの動作環境は一般的なlinux環境(centos,ubuntu等)を想定しています。
なお本コマンドを実行する前にはトークンを取得する必要がございます。
システムID/cloudwan_id の調べ方
お申込み時にお送りしております「開通案内」、またはコントロールパネルの以下のページから参照ください。
「人物のアイコン > アカウント一覧」
customer_id
コマンド例
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/baas/customers/{cloudwan_id}
レスポンス例
{
"customer_data": [
{
"customer_type": 0,
"note": null,
"customer_lastname": "くらうど",
"company_name_kana": "カブシキガイシャクラウドワン",
"customer_firstname": "わん",
"address_1": "東京都",
"display_customer_id": "Z9999999999",
"address_2": "港区",
"address_3": "西新橋",
"address_4": null,
"customer_lastname_kana": "クラウド",
"customer_memo": null,
"division": null,
"customer_firstname_kana": "ワン",
"company_name": "エンドユーザー1",
"tel": "0311112222",
"customer_id": "Z9999999999", ←★このID
"postal_code": "111-2222",
"mail_address": "test-test-test@test-mail-address.cloud.wan.com",
"fax": null,
"company_mynumber": null
}
]
}
(参考)コントロールパネル上の表示から取得
トップページ => 顧客検索の順に移動
tenant_id
コマンド例
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/baas/sdwan_tenants/{cloudwan_id}/{customer_id}
レスポンス例
{
"sdwan_tenant_data": [
{
"sdwan_tenant_id": "1234567890abcdef1234567890abcdef", ←★このID
"display_sdwan_tenant_id": "ten99999",
"sdwan_tenant_name": "テナント1",
"sdwan_tenant_status_id": 1,
"sdwan_tenant_status_name": "契約中",
"tenant_admin_division": "あああ",
"tenant_admin_lastname": "いいい",
"tenant_admin_firstname": "ううう",
"tenant_admin_tel": "0122223333",
"tenant_admin_mail_address1": "a@a.com",
"tenant_admin_mail_address2": "b@a.com",
"tenant_admin_mail_address3": "c@a.com",
"failure_contact_mail_address1": "d@a.com",
"failure_contact_mail_address2": "e@a.com",
"failure_contact_mail_address3": "f@a.com",
"maintenance_mail_address1": "g@a.com",
"maintenance_mail_address2": "h@a.com",
"maintenance_mail_address3": "i@a.com",
"contract_memo": "aaii"
}
]
}
(参考)コントロールパネル上の表示から取得
トップページ => 拠点 と移動し、 該当テナントを選択し拠点一覧を表示
site_id
site_idは 契約情報に関するID(/baasのURIで使うID) と 設定に関するID(/cloudwanのURIで使うID) が別のIDとなっております。
以下にそれぞれ記載を致します。
契約情報に関するID
※契約情報に関するIDはコントロールパネル上からは取得できません。APIでのみ取得可能です。
コマンド例
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/baas/sdwan_sites/{cloudwan_id}/{customer_id}/{tenant_id}
レスポンス例
{
"sdwan_site_data": [
{
"sdwan_site_id": "fedcba0987654321fedcba0987654321", ←★このID
"display_sdwan_site_id": "CN99999999",
"sdwan_site_name": "サイト1",
"sdwan_site_status_id": 1,
"sdwan_site_status_name": "契約中",
"plan_id": "1",
"sdwan_edge_model_id": "1",
"maintenance_condition_id": 1,
"postal_code": "111-2222",
"address_1": "東京都",
"address_2": "港区",
"address_3": "西新橋",
"site_division": "情報システム部",
"site_tel": "0311112222",
"site_admin_lastname": null,
"site_admin_firstname": null,
"site_admin_tel": null,
"site_admin_mail_address": null,
"desired_delivery_date": "20171018",
"precontact_lastname": null,
"precontact_firstname": null,
"precontact_tel": null,
"witness_lastname": null,
"witness_firstname": null,
"witness_tel": null,
"admission_note": null,
"setup_method_id": 1,
"desired_setup_date": null,
"delivery_postal_code": "105-0003",
"delivery_address_1": "東京都",
"delivery_address_2": "港区",
"delivery_address_3": "西新橋",
"delivery_address_4": "",
"delivery_name": "くらうどわん",
"delivery_tel": "0311112222",
"delivery_mail_address": "test-test-test@test-test.cloud.wan.com",
"delivery_date": "20171018",
"setup_date": null,
"contract_memo": "",
"edge_serial_no_1": "20171023-001",
"edge_serial_no_2": null,
"aws_account_id": null,
"aws_region_id": null,
"onsite_order_id": null,
"onsite_status": null,
"onsite_reason_kind": null,
"onsite_reason_detail": null,
"onsite_start_date": null,
"onsite_finish_date": null,
"onsite_staff": null,
"onsite_invalid_dispatch": null,
"onsite_delivery_fee": null,
"onsite_transportation_fee": null,
"onsite_special_area": null,
"onsite_comment": null,
"setup_ping_src_ipaddr": null,
"setup_ping_check_option": null,
"setup_extension": null,
"setup_ping_src_gateway": null,
"setup_ping_ipaddr1": null,
"setup_ping_result1": null,
"setup_ping_ipaddr2": null,
"setup_ping_result2": null,
"setup_ping_ipaddr3": null,
"setup_ping_result3": null,
"contract_start_date": "20171023"
}
]
}
設定に関するID
コマンド例
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/cloudwan/sites?tenant_id="tenant_id"
レスポンス例
{
"sites": [
{
"tenant_id": "********************************",
"wan_profile": {
"id": null
},
"description": "",
"contact_info": null,
"site_group": {
"tenant_id": "********************************",
"name": "利用ガイド拠点1",
"description": "",
"id": "********-****-****-****-************",
"tenant": {
"tenant_id": "********************************",
"name": "利用ガイドテナント1",
"id": "********************************"
}
},
"geo": null,
"headless": true,
"site_group_id": "********-****-****-****-************",
"wan_profile_id": null,
"expected_ese_device_profile_id": "********-****-****-****-************",
"name": "利用ガイド拠点1",
"id": "23456789-0abc-def1-2345-67890abcdef1", ←★このID
"redundancy": "Single",
"tenant": {
"tenant_id": "********************************",
"name": "利用ガイドテナント1",
"id": "********************************"
},
"expected_device_profile": {
"flavor_id": "********-****-****-****-************",
"service_levels": [
"BASIC",
"ADVANCED"
],
"physical_port_types": [
{
"link_type": "Ethernet",
"bandwidth": 1,
"name": "wan-1",
"units": "Gb",
"interface_type": "primary"
},
{
"link_type": "Ethernet",
"bandwidth": 1,
"name": "wan-2",
"units": "Gb",
"interface_type": "secondary"
},
{
"link_type": "Ethernet",
"bandwidth": 1,
"name": "lan-1",
"units": "Gb",
"interface_type": "tenant"
},
{
"link_type": "Ethernet",
"bandwidth": 1,
"name": "lan-2",
"units": "Gb",
"interface_type": "tenant"
}
],
"name": "ESE-1000",
"ese_device_flavor": {
"manufacture": null,
"capabilities": {
"virtualization_types": [
"libvirt-qemu",
"docker"
]
},
"memory": 8,
"cpus": 4,
"port_number": 4,
"name": "ESE-1000",
"model": "CAF-1022",
"id": "********-****-****-****-************"
},
"id": "********-****-****-****-************",
"is_cloud_connector": false
}
}
]
}
(参考)コントロールパネル上の表示から取得
トップページ => 拠点 と移動し、 該当テナントを選択し拠点一覧を表示
ese_device_id
※ese_device_idはコントロールパネル上からは取得できません。APIでのみ取得可能です。
コマンド例
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/cloudwan/ese_devices?tenant_id="所属するテナントID"
レスポンス例
{
"ese_devices": [
{
"diskversions": [],
"tenant_id": "********************************",
"last_software_update_event": null,
"user_triggered_manual_eseupdate": false,
"description": "",
"geo": null,
"sync_state_last_reported_at": null,
"reboot_context": null,
"private_ip_address": "",
"id": "12345678-90ab-cdef-1234-567890abcdef", ←★このID
"software_version": "",
"tenant": {
"tenant_id": "********************************",
"name": "利用ガイドテナント1",
"id": "********************************"
},
"software_update_status": "NOT_UPDATING",
"sync_config_last_reported_at": null,
"tunnel_mtu": 1400,
"ese_device_hardware_id": null,
"sync_state": "N/A",
"last_disconnected_at": null,
"redundancy_type": "primary",
"last_connected_at": null,
"manual_eseupdate": false,
"connection_up": false,
"private_ip_address_kv_id": "********-****-****-****-************",
"name": "利用ガイド拠点1 - primary",
"site_id": "********-****-****-****-************",
"sync_config": "N/A",
"ese_software": {
"id": null
},
"desired_software_id": null,
"ipam_manager_id": "********-****-****-****-************",
"status": "DISSOCIATED"
},
ユースケース別のサンプルコマンド
ここではユースケース毎のサンプルコマンドを示します。
なお、このコマンドの動作環境は一般的なlinux環境を想定しています。
また本サンプルではjqコマンド(linuxのコマンドラインでJSONオブジェクトを扱うソフトウェア)を使っております。
jqコマンドは標準インストールされていない場合がございますので、その際はこちらを参考にしてインストールしてください。
(※もしjqコマンドをインストールできない場合は、jqコマンドで抽出している文字列を手動で変数に代入することで同じ結果が得られます。)
ユースケース1: トークン取得
Master's ONE CloudWAN のAPIを利用するためにはトークンと呼ばれるデータを取得する必要があります。
初回は以下のようにWEBブラウザをご利用頂くことを推奨しております。
まずWEBブラウザを起動し、https://api.customer.jp/cloudwan/v1/にアクセスします。
するとコントロールパネルのログイン画面が表示されますので、IDとパスワードを入力し、ログインボタンを押下します。
次に「コントロールパネルへようこそ」の画面が表示されますので、ログインボタンを押下します。
"access_token" という文字列が表示されますので、コピーをしてお使いください。(画面上では eyJr~5ZFg までがトークンです)
2回目以降は以下のコマンドを実行することでトークンが取得可能です。
※2020/10/22よりHTTP1.1のみサポートから、HTTP1.1およびHTTP2.0の双方でサポートされるようになりました。この変更により、お客様のご利用環境において事前の設定変更が必要な場合がございます。詳細は以下のURLをご確認ください。
2020年10月22日リリース機能のご案内
USERNAME="コントロールパネルのログインID"
PASSWORD="コントロールパネルのログインパスワード"
CSRF=`curl -k -c cookie.txt -L -D - 'https://api.customer.jp/cloudwan/v1/' | awk '$0~/name="_csrf"/{print $4}' | awk -F '"' '{print $2}'`
REDIRECT_URL=`curl -c cookie2.txt -b cookie.txt -D - -X POST --http1.1 -d "_csrf=${CSRF}" -d "username=${USERNAME}" -d "password=${PASSWORD}" 'https://portal.onewan.cloud/auth/login' | awk '$1~/^Location/{print $2}'`
ACCESS_TOKEN=`curl -b cookie2.txt -L -X GET "${REDIRECT_URL%$'\r'}" | jq -r ".access_token"`
コマンドを全て実行した後、以下のように変数${ACCESS_TOKEN}に文字列が格納されていれば取得成功です。
echo ${ACCESS_TOKEN}
eyj***********************************.**************************************************************************************************************************************************************************************************************************************************************.**************************************************************************************************-***************************************************************************************************************************************************************************************************************************************************
(参考)トークン取得のフロー
認証及びトークン払い出しは以下のフローで実行されます。
ユースケース2: 顧客一覧の取得
管理している顧客名と顧客ID一覧を取得するユースケースです。
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/baas/customers/"cloudwan_id" | jq '.customer_data[] | {company_name: .company_name, customer_id: .customer_id}'
レスポンス例
{
"company_name": "NTTPC_トライアル1",
"customer_id": "Z9999999999"
}
{
"company_name": "NTTPC_トライアル2",
"customer_id": "Z8888888888"
}
ユースケース3: 拠点詳細を見たい
拠点の設定情報を確認するユースケースです。以下は拠点が複数存在している場合に拠点名をキーに検索するコマンド例です。
curl -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/cloudwan/sites?tenant_id="所属するテナントID" | jq '.sites[] | select(.name == "拠点名")'
レスポンス例
{
"tenant_id": "********************************",
"wan_profile": {
"id": null
},
"description": "",
"contact_info": {},
"site_group": {
"tenant_id": "********************************",
"name": "利用ガイド拠点1",
"description": "",
"id": "********-****-****-****-************",
"tenant": {
"tenant_id": "********************************",
"name": "利用ガイドテナント1",
"id": "********************************"
}
},
"geo": {
"lon": 999.999999,
"lat": 99.999999
},
"headless": true,
"site_group_id": "********-****-****-****-************",
"wan_profile_id": null,
"expected_ese_device_profile_id": "ESE-1000",
"name": "利用ガイド拠点1",
"id": "23456789-0abc-def1-2345-67890abcdef1",
"redundancy": "Single",
"tenant": {
"tenant_id": "********************************",
"name": "利用ガイドテナント1",
"id": "********************************"
},
"expected_device_profile": {
"flavor_id": "********-****-****-****-************",
"service_levels": [
"BASIC"
],
"physical_port_types": [
{
"bandwidth": 1,
"name": "wan-1",
"units": "Gb",
"interface_type": "primary"
},
{
"bandwidth": 1,
"name": "wan-2",
"units": "Gb",
"interface_type": "secondary"
},
{
"bandwidth": 1,
"name": "lan-1",
"units": "Gb",
"interface_type": "tenant"
},
{
"bandwidth": 1,
"name": "lan-2",
"units": "Gb",
"interface_type": "tenant"
}
],
"name": "ESE-1000",
"ese_device_flavor": {
"manufacture": "Caswell",
"capabilities": {
"virtualization_types": [
"libvirt-qemu",
"docker"
]
},
"memory": 8,
"cpus": 4,
"port_number": 4,
"name": "ESE-1000",
"model": "CAF-1022",
"id": "********-****-****-****-************"
},
"id": "ESE-1000",
"is_cloud_connector": false
}
}
ユースケース4: トラフィック(Metrics)の取得
ある端末のトラフィック量やアプリケーション利用状況をを確認するユースケースです。
拠点名から端末を特定して取得するまでの手順を示します。
なお、本手順で取得できるのはWAN側ポートのみとなります。
手順1 site_config_idの取得
コマンド例
curl -sS -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/cloudwan/sites?tenant_id="所属するテナントID" | jq '.sites[] | select(.name == "拠点名") | .id'
レスポンス例: レスポンスのidをコピーして下さい。
"23456789-0abc-def1-2345-67890abcdef1"
手順2 ese_device_idの取得
コマンド例
curl -sS -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/cloudwan/sites/"site_config_id"(上の例では 23456789-0abc-def1-2345-67890abcdef1)/ese_devices?tenant_id="所属するテナントID" | jq '.ese_devices[] | {name: .name, id: .id}'
レスポンス例: レスポンスの中から対象のエッジ装置を確認し、idをコピーしてください。
{
"name": "利用ガイド拠点1 - primary",
"id": "34567890-abcd-ef12-3456-7890abcdef12"
}
手順3 通信ポートの確認
エッジ装置は複数の通信ポートを持っているため、状態を取得したいポートのIDを特定し、取得してください。
コマンド例
curl -sS -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" https://api.customer.jp/cloudwan/v1/cloudwan/sites/"site_config_id"/ese_devices/"ese_device_id"(上の例では34567890-abcd-ef12-3456-7890abcdef12)/ese_physical_ports?tenant_id="所属するテナントID" | jq '.ese_physical_ports[] | select(.name | startswith("wan")) | {name: .name, id: .id} '
レスポンス例
{
"name": "wan-1",
"id": "4567890a-bcde-f123-4567-890abcdef123"
}
{
"name": "wan-2",
"id": "567890ab-cdef-1234-5678-90abcdef1234"
}
手順4 トラフィック状況の取得
コマンド例 (wan-1の過去30分のトラフィック状況を取得)
curl -sS -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" "https://api.customer.jp/cloudwan/v1/cloudwan/sites/"site_config_id"/ese_devices/"ese_device_id"/ese_physical_ports/"wan_port_id"(上の例では567890ab-cdef-1234-5678-90abcdef1234)/metrics?tenant_id="所属するテナントID"&start=30m-ago" | jq '.'
レスポンス例
以下のように、アプリケーション毎の通信量が返ってきます。
"dps"の項目は指定した時間での該当アプリケーションのトラフィック量を60秒単位で出力しています。
"tags"の項目には通信の情報が出力されています。 なおこの例ではNTPの通信に関する情報が出力されています。
{
"metric": "ese_physical_port.network.bytes.in",
"dps": {
"1512354060": 0,
"1512354180": 0,
"1512354480": 0.75,
"1512353220": 1.5,
"1512353880": 0,
"1512353760": 0,
"1512353640": 0,
"1512353520": 0,
"1512353580": 0,
"1512353460": 0,
"1512353340": 0,
"1512353400": 1.5,
"1512353940": 0,
"1512353820": 0,
"1512353700": 0,
"1512353280": 0,
"1512353160": 0,
"1512354420": 0.75,
"1512354540": 0,
"1512354840": 0,
"1512354300": 1.5,
"1512354240": 0,
"1512354360": 0,
"1512354000": 0,
"1512354660": 0,
"1512354120": 1.5,
"1512354780": 0,
"1512354900": 0,
"1512354600": 0,
"1512354720": 0
},
"aggregateTags": [],
"tags": {
"tenant_id": "1234567890abcdef1234567890abcdef",
"protocol": "ipv4",
"application_name": "NTP",
"traffic_class_id": "__na__",
"ese_device_id": "34567890-abcd-ef12-3456-7890abcdef12",
"resource_id": "4567890a-bcde-f123-4567-890abcdef123",
"traffic_class_name": "default",
"traffic_type": "internet",
"ese_device_name": "34567890-abcd-ef12-3456-7890abcdef12",
"resource_name": "wan-1",
"application_id": "__na__"
}
},
ユースケース5: 拠点追加(AWSクラウドコネクタ版)
拠点の追加オーダーを発注し、利用可能な状態にするまでの手順です。
手順0 事前準備(各種IDの取得)
本手順を実行するにあたり、以下のIDを事前に取得してください。
・CloudWAN ID
・顧客ID
・テナントID
手順1 拠点追加オーダーの発注
まずパラメータを作成します。以下はAWSクラウドコネクタを作成するために最低限必要なパラメータのみを記載しております。
なお注意点として、指定しないパラメータも項目としては必要ですので、"null"を指定してください。
PARAM='{
"sdwan_site_data": {
"display_sdwan_site_id": null,
"sdwan_site_name": "aws20171213-1", ★拠点名(全角のみ指定可能です)
"plan_id": "3", ★CloudWANのプランです(3はクラウドコネクタプランです)
"sdwan_edge_configuration_id": null,
"maintenance_condition_id": null,
"cloudconnector_type_id": "1", ★クラウドコネクタのタイプ(1はAWSです)
"lte_bundle_id": null,
"postal_code": null,
"address_1": null,
"address_2": null,
"address_3": null,
"site_division": null,
"site_tel": null,
"site_admin_lastname": null,
"site_admin_firstname": null,
"site_admin_tel": null,
"site_admin_mail_address": null,
"desired_delivery_date": "20171213", ★配送予定日(クラウドコネクタの場合、今日以降の日付を指定)
"setup_method_id": null,
"desired_setup_date": null,
"precontact_lastname": null,
"precontact_firstname": null,
"precontact_tel": null,
"witness_lastname": null,
"witness_firstname": null,
"witness_tel": null,
"admission_note": null,
"delivery_postal_code": null,
"delivery_address_1": null,
"delivery_address_2": null,
"delivery_address_3": null,
"delivery_address_4": null,
"delivery_name": null,
"delivery_tel": null,
"delivery_mail_address": null,
"contract_memo": null,
"aws_account_id": "123456789012", ★お客様のAWSのアカウントです。AMIの共有のために使います。
"aws_region_id": "1", ★AWSのリージョンです(2017年12月現在は1(東京)固定です)
"setup_extension": null,
"setup_ping_check_option": null,
"setup_ping_src_ipaddr": null,
"setup_ping_src_gateway": null,
"setup_ping_ipaddr1": null,
"setup_ping_ipaddr2": null,
"setup_ping_ipaddr3": null
}
}'
拠点オーダーを発注します。
curl -Ss -k -X POST -d "${PARAM}" -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" "https://api.customer.jp/cloudwan/v1/baas/sdwan_sites/{cloudwan_id}/{customer_id}/{tenant_id}"
以下のようなレスポンスが返ってくれば成功です。
{"order_id":"ON000000000000000001"}
なお、この手順ではクラウドコネクタプランのため、すぐに次の手順に進むことができます。
一方、通常の物理エッジ装置の拠点オーダーの場合では物品発送が行われますので、受領後に次の手順を実行してください。
手順2 site_idの確認
今回発注した拠点のsite_idを確認します。
curl -Ss -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" "https://api.customer.jp/cloudwan/v1/cloudwan/sites?tenant_id="所属するテナントID"" | jq '.sites[]| select(.name == "拠点名"(今回の例ではaws20171213-1)) | .id'
以下のようなレスポンスが返ってきますので、コピーしてください。
"12345678-90ab-cdef-1234-567890abcdef"
手順3 ese_device_idの確認
ESEデバイスのオブジェクトも同時に作成されていますので、こちらのIDと名前も確認します。
curl -Ss -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" "https://api.customer.jp/cloudwan/v1/cloudwan/sites/{site_id}/ese_devices?tenant_id="所属するテナントID"" | jq ".ese_devices[] | { name: .name, id: .id}"
{
"name": "aws20171213-1 - primary",
"id": "23456789-0abc-def1-2345-67890abcdef1"
}
手順4 ese_device_hardware_idの確認
ese_deviceオブジェクトと登録されたhardwareを紐付ける作業(associate)を行うため、hardware_idを取得します。
curl -Ss -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" "https://api.customer.jp/cloudwan/v1/cloudwan/ese_device_hardwares?tenant_id="所属するテナントID"" | jq '.ese_device_hardwares[] | select(.site.name == "拠点名") | .id'
"34567890-abcd-ef12-3456-7890abcdef12"
手順5 associateの実行
まずパラメータを作成します。
PARAM='{"ese_device":{"ese_device_hardware_id":"取得したhardware_id (今回の手順では34567890-abcd-ef12-3456-7890abcdef12)","manual_eseupdate":false,"name":"ese_deviceの名前(今回の手順ではaws20171213-1 - primary)","tunnel_mtu":1400}}'
associateを実行します
$ curl -Ss -k -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer ${ACCESS_TOKEN}" -d "${PARAM}" "https://api.customer.jp/cloudwan/v1/cloudwan/sites/{site_id}/ese_devices/{ese_device_id}?tenant_id="所属するテナントID""
以下のようなレスポンスが返ってくれば成功です。
{
"ese_device": {
"connection_up": false,
"description": "",
"desired_software_id": "4567890a-bcde-f123-4567-890abcdef123",
"diskversions": [],
"ese_device_hardware_id": "34567890-abcd-ef12-3456-7890abcdef12",
"ese_software": {
"id": null
},
"geo": null,
"id": "23456789-0abc-def1-2345-67890abcdef1",
"ipam_manager_id": "********-****-****-****-************",
"last_connected_at": null,
"last_disconnected_at": null,
"last_software_update_event": null,
"manual_eseupdate": false,
"name": "aws20171213-1 - primary",
"private_ip_address": "",
"private_ip_address_kv_id": null,
"reboot_context": null,
"redundancy_type": "primary",
"site_id": "12345678-90ab-cdef-1234-567890abcdef",
"software_update_status": "NOT_UPDATING",
"software_version": "",
"status": "NOT_ONBOARDED",
"sync_config": "N/A",
"sync_config_last_reported_at": null,
"sync_state": "N/A",
"sync_state_last_reported_at": null,
"tenant": {
"id": null,
"tenant_id": null
},
"tenant_id": "567890ab-cdef-1234-5678-90abcdef1234",
"tunnel_mtu": 1400,
"user_triggered_manual_eseupdate": false
}
}
手順6 クラウドコネクタトークンの取得
associat完了後、クラウドコネクタ構築に必要なトークンが払い出されますので、取得します。
curl -Ss -k -X GET -H "Authorization: Bearer ${ACCESS_TOKEN}" -H "Content-Type: application/json" "https://api.customer.jp/cloudwan/v1/cloudwan/sites/{site_id}/ese_devices/{ese_device_id}/ese_device_activations?tenant_id="所属するテナントID"" | jq ".ese_device_activations[].expected_cloud_token"
以下のようなレスポンスが返ってくれば成功です。
"1234567890abcdef1234567890abcdef"
以降はこちらの手順に沿ってクラウドコネクタを構築してください。
その他補足
URIの単数形/複数形について
基本的に/cloudwan以下の複数形のURI(sites, ese_devices, peer_sessionsなど)は全ての情報(全拠点、全ESEデバイス、全トンネル)を返却します。
必要な情報だけを返却させたい場合は各オブジェクトのIDを指定してください。
(例1)
/cloudwan/sites => 全拠点情報
/cloudwan/sites/${site_id} => 1拠点だけの情報
(例2)
/cloudwan/ese_devices => 全ESEデバイスの情報
/cloudwan/ese_devices/${ese_device_id} => 1デバイスだけの情報
留意事項
- APIの負荷状況によっては、タイムアウトなどが発生する場合がございます。
その場合には、リトライをお試しください。
コメント
0件のコメント
記事コメントは受け付けていません。