Compute FLATタイプ APIリファレンス

本マニュアルでは、 Cloudn Compute(FLATタイプ)のAPIご利用方法に関してご説明いたします。
右上の “索引” や、右のバーにある検索にて検索が可能です。

1. Cloudn APIについて

Cloudn では、各プロダクトごとにAPIを提供しております。
APIを使用することで、コントロールパネルを介さずにお客様のプログラムから直接リソースを操作することが可能です。

1.1. API共通情報

ご利用にあたっては下記の通りの情報/前提知識が必要となります。

API共通情報

以下、3つの情報がAPIを利用するにあたり必要となります。

  • アクセスキーID
  • 秘密鍵
  • APIエンドポイント

以下の2つを Cloudn ポータルよりログインし、入手します。

  • アクセスキーID

    • APIへのアクセスにおいて、お客様個人のIDを識別するためのキーです。
    • お客様固有のものとなります
  • 秘密鍵

    • APIへのアクセスにおいて、電子署名に利用される鍵です。
    • お客様固有のものとなります

APIエンドポイントについては、各 Cloudn サービスごとに異なります。 下記を参照してください。

API情報 ( Cloudn Compute FLATタイプ)

アクセスキーID・秘密鍵入手方法

Cloudn ポータルへログイン

下記URLより、パスワード/IDでログインをします。

https://portal.cloudn-service.com/comgi/login

画面下部”APIアクセスキー・秘密鍵管理”をクリック

画面下部に存在する”APIアクセスキー・秘密鍵管理”をクリックします。

ポータルから秘密鍵へのリンク

Cloudn ポータル最下段、アクセスキーID・秘密鍵管理画面へのリンク

Query API->アクセスキーID・秘密鍵をコピーして利用

アクセスキーID・秘密鍵をコピーして利用します。

アクセスキーID・秘密鍵管理画面キャプチャ

アクセスキーID・秘密鍵管理画面

1.2. API情報 ( Cloudn Compute FLATタイプ)

本サービスにて提供しているAPI Server (End Point)のURIは下記となります。

CloudStack API Endpoint
リージョン URL
東日本 https://comp-api.jp-e1.cloudn-service.com/client/api
西日本 https://comp-api.jp-w1.cloudn-service.com/client/api
米国 https://comp-api.us-e1.cloudn-service.com/client/api
AWS互換API Endpoint
リージョン URL
東日本 https://comp-apia.jp-e1.cloudn-service.com/awsapi
西日本
米国 https://comp-apia.us-e1.cloudn-service.com/awsapi

注釈

西日本リージョンはAWS互換API未対応です。

以下のテーブルは後述のAPI Requestにおいて用いる共通のパラメータを示しています。

Common Request Parameter
パラメータ名 説明 必須
apikey アクセスキーID (※1) Yes
command APIメソッドを指定する Yes
signature リクエストに対する電子署名情報を指定する Yes
response 値に、”json”を指定することで、responseをXMLからjson 形式に変更する No
expires APIリクエストの有効期限を指定する。指定方法は、strftime(3)の書式で、”%Y-%m-%dT%T%z”で指定(※1) No
signatureVersion “3”を指定する (※1) No

注釈

(※1). expires と signatureVersionを用いる場合は同時に指定する必要があります。

下記にAsynchronous(非同期)APIの共通レスポンス形式を示します。

Common Response (Asynchronous Methods)
Node名 説明 子Node
“非同期メソッド名”response レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、 ジョブとして登録された際に払い出されたjobid  

注釈

非同期メソッドを実行した際のレスポンスは、非同期メソッドにより、jobidを格納するコンテナの値が変わります。たとえば、”deployVirtuamMachine”メソッドを実行した場合、そのレスポンスコンテナは、”deployvirtualmachineresponse”となります。

[参考]前提知識

Cloudn Computeについて

Cloudn Computeの操作・機能については操作マニュアルを参照してください。

クラウド・エヌ インフォメーションポータル - マニュアル

APIの利用方法について

APIを利用するには、クライアントと呼ばれるツールを利用する方法、
もしくはお客様プログラム上において仕様にしたがってAPIを利用する方法が一般的です。

以下、APIクライアントを利用した利用例・プログラム上でAPIを利用するために必要なリクエストの作成例を示します。

注釈

APIのご利用にあたっては、ご利用前に、 Cloudn ポータルより サービスを「利用中」の状態にする必要があります。

1.3. APIクライアントの利用

警告

本章はWebサーバの設定など、サポート対象外の部分の記述を多く含みます。 必ずお客様ご自身で編集前設定のバックアップや設定項目の理解をされた上でのご実施をお願い致します。 また、本ソフトウェアに関しては、あくまで記載した環境での動作を確認したものを掲載しております。オープンソースソフトウェアに関する記載が含まれており、弊社では動作保証などをいたしかねますこと、予めご了承ください。

Cloudn Compute FLATタイプでは Apache Cloudstack (以下Cloudstack)を利用しており、 Cloudstackを操作するためのクライアントである、CloudMonkey [1] を利用することが可能です。

以下、例としてCloudMonkeyを利用するためのセットアップ方法を示します。
他のプラットフォームにおけるセットアップ方法や、トラブルシュート、その他詳細な使い方に関する情報は Cloudstack cloudmonkey CLI より参照してください。

紹介手順の前提条件

  • OS: CentOS6.5 オフィシャルテンプレート
の環境にて紹介いたします。
以下の手順で、cloudmonkeyのインストールが完了します。
# yum -y install python python-setuptools
# easy_install cloudmonkey

Cloudmonkeyのセットアップ

cloudmonkeyを起動し、必要な設定を実施します。

$ cloudmonkey
(これ以降はshellではなくcloudmonkey内でのコマンド実行)
> set url https://comp-api.jp-e1.cloudn-service.com/client/api
> set apikey ## APIアクセスキーIDを入力する
> set secretkey ## API秘密鍵を入力する
> exit

注釈

“set url”の引数にはエンドポイントを入力します

上記の例では”https://comp-api.jp-e1.cloudn-service.com/client/api“です。

注釈

“set apikey”ではAPIアクセスキーを、”set secretkey”ではAPI秘密鍵を入力します

上記がCloudMonkeyを利用するために最低限必要な設定となります。
CloudMonkeyの中でexitコマンドを実行することでshellへと抜けることができます。

CloudMonkeyの利用

“cloudmonkey”をシェルで入力し、Enterを実行して再度CloudMonkeyシェルに入ります。

#cloudmonkey
>

CloudMonkeyシェルに入った状態で、”API動詞 操作対象”のように入力することで、APIが利用可能です。

#cloudmonkey
> list virtualmachines
    {
      "count": 23,
      "virtualmachine": [
        {
          "account": "cln*******",
          "cpunumber": 1,
          "cpuspeed": 400,
          "created": "2014-07-10T14:23:44+0900",
          "displayname": "***************",
          "domain": "cln**************",
          "domainid": "*******-*****-*****-9de8-9df1f82721bb",
          "guestosid": "144",
          "haenable": true,
          "hypervisor": "KVM",
          "id": "*******-ab7e-42b3-9fac-************",
          "memory": 512,
          "name": "******-ab7e-42b3-9fac-************",
          "nic": [
            {
              "id": "******-ab7e-42b3-9fac-************",
              "isdefault": true,
              "networkid": "******-ab7e-42b3-9fac-************",
              "traffictype": "Guest",
              "type": "Shared"
            }
          ],
          "passwordenabled": true,
          "rootdeviceid": 0,
          "rootdevicetype": "Not created",
          "securitygroup": [
            {
              "description": "Default Security Group",
              "id": "******-ab7e-42b3-9fac-************",
              "name": "default"
            }
          ],
          "serviceofferingid": "200c6378-8ae9-4718-9b25-b8c4f6c1dfc8",
          "serviceofferingname": "t1.micro",
          "state": "Stopped",
          "tags": [],
          "templatedisplaytext": "CentOS 6.3 64 bit",
          "templateid": "33243e96-6d8c-4b3a-a28e-b8cbe25b0e12",
          "templatename": "CentOS 6.3 64 bit",
          "zoneid": "1b02e74c-6c21-4aa3-b96c-51042de8fccd",
          "zonename": "jp-e1a"
        }
    }

また、”api”というコマンドを利用することで、本APIリファレンスに記載されたAPIをそのまま利用することが可能です。

#cloudmonkey
> api listVirtualMachines
    {
      "count": 23,
      "virtualmachine": [
        {
          "account": "cln*******",
          "cpunumber": 1,
          "cpuspeed": 400,
          "created": "2014-07-10T14:23:44+0900",
          "displayname": "***************",
          "domain": "cln**************",
          "domainid": "*******-*****-*****-9de8-9df1f82721bb",
          "guestosid": "144",
          "haenable": true,
          "hypervisor": "KVM",
          "id": "*******-ab7e-42b3-9fac-************",
          "memory": 512,
          "name": "******-ab7e-42b3-9fac-************",
          "nic": [
            {
              "id": "******-ab7e-42b3-9fac-************",
              "isdefault": true,
              "networkid": "******-ab7e-42b3-9fac-************",
              "traffictype": "Guest",
              "type": "Shared"
            }
          ],
          "passwordenabled": true,
          "rootdeviceid": 0,
          "rootdevicetype": "Not created",
          "securitygroup": [
            {
              "description": "Default Security Group",
              "id": "******-ab7e-42b3-9fac-************",
              "name": "default"
            }
          ],
          "serviceofferingid": "200c6378-8ae9-4718-9b25-b8c4f6c1dfc8",
          "serviceofferingname": "t1.micro",
          "state": "Stopped",
          "tags": [],
          "templatedisplaytext": "CentOS 6.3 64 bit",
          "templateid": "33243e96-6d8c-4b3a-a28e-b8cbe25b0e12",
          "templatename": "CentOS 6.3 64 bit",
          "zoneid": "1b02e74c-6c21-4aa3-b96c-51042de8fccd",
          "zonename": "jp-e1a"
        }
    }

上記の様に、クライアントを利用することでAPIの実行に必要な署名・リクエストの作成といった作業が簡略化されます。 詳細な利用方法については、 Cloudstack cloudmonkey CLI を参照してください。

脚注

[1]Pythonで記述されたCLIからCloudStack APIを利用するためのツール。CloudMonkeyはApacheライセンスのもとオープンソースソフトウェアとして公開されており、Python 2.5以降が利用可能な環境で動作します。また、商用非商用を問わずに利用可能となっています。
[2]URLにて使用できない文字を別の文字に変換することです。(ex.) “/” -> “%2F” “+” -> “%2B” “=” -> “%3D”

1.4. リクエストの作成方法

APIクライアントなどを使用せずにAPIリスクエストを利用する方法を示します。

APIリクエスト形式

APIリクエストは次のような形式となっています。 以下では、日本DCでPlan VQの仮想サーバーを作成するコマンド「deployVirtualMachine」の例を記載します。

https://comp-api.jp-e1.cloudn-service.com/client/api?command=deployVirtualMachine&serviceofferingid=38&templateid=241&zoneid=1&apikey=APIKEYSAMPLE&signature=8vjVFWLtIruwxdxNvG1CLs1mGVw%3D

上記のリクエストは、下記の要素群により構成されています。

エンドポイント
エンドポイントです。
リージョン・NWタイプにより異なりますのでご注意ください。
https://comp-api.jp-e1.cloudn-service.com/client/api?
コマンド

APIコマンドです。

command=deployVirtualMachine
コマンドオプション
上記コマンドのオプションです。
APIにより異なりますのでAPIリファレンスをご参照ください。
&serviceofferingid=38
&templateid=241
&zoneid=1
APIアクセスキー

APIアクセスキーです。

&apikey=APIKEYSAMPLE
電子署名

アカウントごとの署名です。 署名の作成方法については後述します。

&signature=8vjVFWLtIruwxdxNvG1CLs1mGVw%3D

署名の作成方法

署名は、ユーザーの秘密鍵とHMAC-SHA-1ハッシュアルゴリズムを組み合わせて生成します。
署名を作成するには、APIコマンドとオプション、APIアクセスキー(公開鍵) を用意します。
command=deployVirtualMachine
serviceofferingid=38
templateid=241
zoneid=1
apikey=APIKEYSAMPLE
それぞれの値の部分(”=”の右側)をURLエンコード [1] します。

次に、大文字を小文字に変換します。

command=deployvirtualmachine
serviceofferingid=38
templateid=241
zoneid=1
apikey=apikeysample

続いて、要素をアルファベット順(昇順)でソートします。

apikey=apikeysample
command=deployvirtualmachine
serviceofferingid=38
templateid=241
zoneid=1

“&”でつなげます。

apikey=apikeysample&command=deployvirtualmachine&serviceofferingid=38&templateid=241&zoneid=1
秘密鍵を使用し HMAC SHA-1でハッシュをかけます。
ハッシュにはopensslコマンドを利用し、ハッシュ結果はBASE64で文字列化します。
#echo -n 'apikey=apikeysample&command=deployvirtualmachine&serviceofferingid=38&templateid=241&zoneid=1' | openssl sha1 -binary -hmac 'SECRETKEYSAMPLE' | openssl base64

8vjVFWLtIruwxdxNvG1CLs1mGVw=

ハッシュした結果をURLエンコードします。 このエンコード後の値が署名となります。

8vjVFWLtIruwxdxNvG1CLs1mGVw%3D

なお、上記の署名はプログラムの検証にお使いいただけます。 APIキー、秘密鍵、およびコマンド引数を全く同じ状態にしたうえで上記署名と同じとなるかを確認することで 署名作成プログラムの動作を検証可能です。

脚注

[1]URLにて使用できない文字を別の文字に変換することです。(ex.) “/” -> “%2F” “+” -> “%2B” “=” -> “%3D”

1.5. 参考情報

Time Zoneのフォーマット

各地域ごとに使用できるTime Zoneのフォーマットは以下の通りです。

Africa
都市名 TimeZone表記
Cairo Africa/Cairo
Casablanca Africa/Casablanca
Johannesburg Africa/Johannesburg
Nairobi Africa/Nairobi
America
都市名 TimeZone表記
Araguaina America/Araguaina
Argentina America/Argentina/Buenos_Aires
Asuncion America/Asuncion
Bogota America/Bogota
Caracas America/Caracas
Cayenne America/Cayenne
Chicago America/Chicago
Chihuahua America/Chihuahua
Costa_Rica America/Costa_Rica
Cuiaba America/Cuiaba
Godthab America/Godthab
Halifax America/Halifax
La_Paz America/La_Paz
Los_Angeles America/Los_Angeles
Mexico_City America/Mexico_City
Montevideo America/Montevideo
New_York America/New_York
Santiago America/Santiago
St_Johns America/St_Johns
Asia
都市名 TimeZone表記
Bangkok Asia/Bangkok
Beirut Asia/Beirut
Jerusalem Asia/Jerusalem
Karachi Asia/Karachi
Kolkata Asia/Kolkata
Kuala_Lumpur Asia/Kuala_Lumpur
Seoul Asia/Seoul
Shanghai Asia/Shanghai
Taipei Asia/Taipei
Tokyo Asia/Tokyo
Atlantic
都市名 TimeZone表記
Azores Atlantic/Azores
Cape_Verde Atlantic/Cape_Verde
Reykjavik Atlantic/Reykjavik
Adelaide Australia/Adelaide
Brisbane Australia/Brisbane
Canberra Australia/Canberra
Darwin Australia/Darwin
Perth Australia/Perth
Canada
都市名 TimeZone表記
Saskatchewan Canada/Saskatchewan
CET
都市名 TimeZone表記
CET CET
ETC
都市名 TimeZone表記
GMT+11 Etc/GMT+11
GMT+12 Etc/GMT+12
GMT+2 Etc/GMT+2
UTC Etc/UTC
Europe
都市名 TimeZone表記
Bucharest Europe/Bucharest
London Europe/London
Minsk Europe/Minsk
Moscow Europe/Moscow
Mexico
都市名 TimeZone表記
BajaNorte Mexico/BajaNorte
Pacific
都市名 TimeZone表記
Auckland Pacific/Auckland
Guam Pacific/Guam
Honolulu Pacific/Honolulu
Samoa Pacific/Samoa
US
都市名 TimeZone表記
Alaska US/Alaska
Arizona US/Arizona
Mountain US/Mountain

EventTypeのフォーマット

listEventsのtypeにて絞込に仕様できるEventType一覧です。

  • DISK

    • DISK.OFFERING.CREATE
    • DISK.OFFERING.DELETE
    • DISK.OFFERING.EDIT
-ISO
  • ISO.ATTACH
  • ISO.COPY
  • ISO.CREATE
  • ISO.DELETE
  • ISO.DETACH
  • ISO.EXTRACT
  • ISO.UPLOAD
  • NETWORK

    • NETWORK.CREATE
    • NETWORK.DELETE
    • NETWORK.OFFERING.CREATE
    • NETWORK.OFFERING.DELETE
    • NETWORK.OFFERING.EDIT
    • NETWORK.RESTART
  • ROUTER

    • ROUTER.CREATE
    • ROUTER.DESTROY
    • ROUTER.HA
    • ROUTER.REBOOT
    • ROUTER.START
    • ROUTER.STOP
  • SecurityGroup

    • SG.AUTH.INGRESS
    • SG.REVOKE.INGRESS
  • SNAPSHOT

    • SNAPSHOT.CREATE
    • SNAPSHOT.DELETE
  • SnapshotPolicy

    • SNAPSHOTPOLICY.CREATE
    • SNAPSHOTPOLICY.DELETE
    • SNAPSHOTPOLICY.UPDATE
  • Static NAT

    • STATICNAT.DISABLE
  • Template

    • TEMPLATE.CLEANUP
    • TEMPLATE.COPY
    • TEMPLATE.CREATE
    • TEMPLATE.DELETE
    • TEMPLATE.DOWNLOAD.FAILED
    • TEMPLATE.DOWNLOAD.START
    • TEMPLATE.DOWNLOAD.SUCCESS
    • TEMPLATE.EXTRACT
    • TEMPLATE.UPDATE
    • TEMPLATE.UPLOAD
  • Virtual Machine

    • VM.CREATE
    • VM.DESTROY
    • VM.REBOOT
    • VM.RESETPASSWORD
    • VM.START
    • VM.STOP
    • VM.UPGRADE
  • VOLUME

    • VOLUME.ATTACH
    • VOLUME.CREATE
    • VOLUME.DELETE
    • VOLUME.DETACH
    • VOLUME.UPLOAD
  • VPN

    • VPN.REMOTE.ACCESS.CREATE
    • VPN.USER.ADD
    • VPN.USER.REMOVE

2. Compute FLATタイプ API( Cloudn Compute独自形式)

Cloudn Compute独自形式(Apache Cloudstack準拠)のAPI一覧は以下の通りです。

2.1. 仮想サーバー管理 (VirtualMachine)

仮想サーバを管理するAPIです。

listVirtualMachines - 仮想サーバー一覧表示

概要

仮想サーバー情報の一覧を取得する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
account domainidと共に使用して、任意のアカウントを指定する No
details 詳細情報を取得する。指定出来る値は、all, group, nics, stats, secgrp, tmpl, servoff, iso, volume及びmin また、複数指定する場合は、カンマ(,) で区切り指定する No
domainid domainid を指定する No
groupid VM Group のIDを指定する No
id 仮想サーバーのIDを指定する No
isoid 仮想サーバーをisoidにより指定する No
isrecursive サブドメインを検索対象に含める No
keyword 仮想サーバーをキーワードにより指定する No
listall true/ falseで指定する(default false). zoneidとisrecursive=trueと設定した場合に等しい No
name 仮想サーバーを名前により指定する No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する.(default: 500) No
state 仮想サーバーの状態(Running, Stopped等)により、仮想マシンを指定する No
tags タグ情報(key, value)による検索条件を指定する。 No
templateid 仮想サーバーをテンプレートIDにより指定する No
vpcid VPCを指定し仮想サーバーを指定する No
zoneid 仮想サーバーをZone idにより指定する No
レスポンス
レスポンス (Body)
Response(Body)
Node名   説明 子Node
listvirtualmachinesresponse   レスポンスコンテナ count, virtualmachine
count   レスポンスに含まれる仮想サーバーオブジェクトの個数  
virtualmachine   仮想サーバーを格納するコンテナ  
id   仮想サーバーのID  
account   当該仮想サーバーを所有するアカウント  
cpunumber   当該仮想サーバーのCPUのコア数  
cpuspeed   CPUのスピード  
cpuused   CPU使用率  
created   当該仮想サーバーの作成日時  
displayname   当該仮想サーバーの表示名  
domain   ドメイン名  
domainid   ドメインID  
group      
groupid      
guestosid   OS のID  
haenable   高可用性機能の有効・無効(true / false )  
hypervisor   常にKVM  
isodisplaytext      
isoid      
isoname      
memory   仮想サーバーに搭載されたメモリサイズ  
name   仮想サーバーの名前  
networkkbsread   ネットワークトラフィック量: incomming (KB)  
networkkbswrite   ネットワークトラフィック量: outgoing (KB)  
password   パスワード(パスワードリセットを実施時)  
passwordenabled   パスワードリセット機能が有効か否か(true/ alse)  
rootdevicetype      
serviceofferingid   Service Offering(仮想サーバーのスペック)のID  
serviceofferingname   Service Offering(仮想サーバーのスペック)名  
state   仮想サーバーの状態  
templatedisplaytext   テンプレート表示名  
templateid   仮想サーバー作成時のテンプレートまたはISOのID  
templatename   仮想サーバー作成時のテンプレートまたはISOの名前  
zoneid   仮想サーバーが存在するzoneのID  
zonename   仮想サーバーが存在するzone の名前  
nic   Network Interface Card(NIC)の情報を格納するコンテナ  
id NICのID  
networkid NetworkのID  
netmask NICにアサインされたIPアドレスのnetmask  
Gateway Default GatewayのIPアドレス  
ipaddress NICにアサインされたIPアドレス  
traffictype “Guest”  
type “Shared”  
isdefault 通常使うNICか否か(常にtrue)  
macaddress MAC アドレス  
tags   タグ情報のコンテナ  
key タグのキー情報  
value タグの値  
サンプルレスポンス
{
  "listvirtualmachinesresponse": {
    "count": 1,
    "virtualmachine": [
      {
        "id": "**:**:**:****:**:**:**7fa59dfc",
        "name": "*******",
        "displayname": "*******",
        "account": "cln*********",
        "domainid": "**:**:**:****:**:**:**f82721bb",
        "domain": "cln*********",
        "created": "2014-07-20T21:32:22+0900",
        "state": "Running",
        "haenable": true,
        "zoneid": "**:**:**:****:**:**:**ed875e76",
        "zonename": "jp-e1b",
        "templateid": "**:**:**:****:**:**:**8dc90864",
        "templatename": "**************",
        "templatedisplaytext": "**************",
        "passwordenabled": true,
        "serviceofferingid": "**:**:**:****:**:**:**58275276",
        "serviceofferingname": "m1.small",
        "cpunumber": 1,
        "cpuspeed": 1600,
        "memory": 2048,
        "cpuused": "0.28%",
        "networkkbsread": 1289976,
        "networkkbswrite": 650,
        "guestosid": "160",
        "rootdeviceid": 0,
        "rootdevicetype": "NetworkFilesystem",
        "securitygroup": [
          {
            "id": "**:**:**:****:**:**:**5a4dd38a",
            "name": "windows2012",
            "description": ""
          }
        ],
        "nic": [
          {
            "id": "**:**:**:****:**:**:**24bf6d0a",
            "networkid": "**:**:**:****:**:**:**56267647",
            "netmask": "***.***.***.***",
            "gateway": "***.***.***.***",
            "ipaddress": "***.***.***.***",
            "traffictype": "Guest",
            "type": "Shared",
            "isdefault": true,
            "macaddress": "**:**:**:**"
          }
        ],
        "hypervisor": "KVM",
        "tags": []
      }
    ]
  }
}

deployVirtualMachine (A) - 仮想サーバー作成

概要
仮想サーバーを作成する。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
serviceofferingid 仮想サーバーのスペックを確定するために、serviceOfferingIdを指定する Yes
templateid 仮想サーバーを作成する際に利用するテンプレートのID、またはISO ImageのIDを指定する Yes
zoneid 仮想サーバーを作成するゾーンを指定する Yes
account domainidと共に使用して、任意のアカウントを指定する No
diskofferingid diskofferingidを指定する。templateidがISO imageのIDの場合は、 指定したdiskofferingidをもつDISKはroot DISKに. templateidで指定したIDがテンプレートであれば、Data DISKとして作成される No
displayname 仮想サーバーの任意の表示名 No
domainid domainid を指定する。accountと同時に指定する No
group 仮想サーバーに任意のグループを設定する No
keyboard 仮想サーバーのキーボードタイプを指定する。 指定出来る値は、de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk及びusのいずれか。 No
keypair log-in時に利用するsshのkeypairの名前を指定する No
name 仮想サーバーに任意の名前を設定する。 No
securitygroupids 仮想サーバーに適用するセキュリティーグループのIDを指定する。 複数指定する場合は、カンマ(,)区切りで指定する。 このパラメータを指定する場合は、”securitygroupnames”を指定することが出来ない。 No
securitygroupnames 仮想サーバーに適用するセキュリティーグループの名前を指定する。 複数指定する場合は、カンマ(,)区切りで指定する。 このパラメータを指定する場合は、”securitygroupids”を指定することが出来ない。 No
userdata 任意のデータをbase64でエンコードして指定する(base64 encode後 2KBまで) No

注釈

本コマンド例における「deployVirtualMachine」を利用される場合の各パラメータ値については以下をご参照ください。

  • serviceofferingid: 生成時の仮想サーバープランになります

listServiceOfferings - サービスオファリング一覧表示

  • templateid: 生成時に利用するテンプレートIDになります。

listTemplates - テンプレート一覧表示

  • zoneid: 生成する先のzone IDになります。

listZones - ゾーン情報一覧

参考

セキュリティグループ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSecurityGroups - セキュリティグループ一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deployvirtualmachineresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobiid  

注釈

(※)非同期メソッドのため、”deployvirtualmachineresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
virtualmachine listVirtulaMachineのResponseを参照。 statusには、Running、ならびに、passwordに初期パスワードが含まれる jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に払い出されたjobiid  

destroyVirtualMachine (A) - 仮想サーバー削除

概要

仮想サーバーを削除する。 ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVirtualMachines - 仮想サーバー一覧表示

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
destroyvirtualmachineresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”deployvirtualmachineresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)
Response(Body)
Node名 説明 子Node
virtualmachine listVirtulaMachineのResponseを参照。 statusには、destoryedが含まれる jobid

rebootVirtualMachine (A) - 仮想サーバー再起動

概要

仮想サーバーを再起動する。 ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVirtualMachines - 仮想サーバー一覧表示

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
rebootvirtualmachineresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”rebootvirtualmachineresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)
Response(Body)
Node名 説明 子Node
virtualmachine listVirtulaMachineのResponseを参照。 statusには、Runningが含まれる jobid

startVirtualMachine (A) - 仮想サーバー起動

概要
仮想サーバーを起動する。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
startvirtualmachineresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”startvirtualmachineresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
virtualmachine listVirtulaMachinesのResponseを参照。 statusには、Runningが含まれる jobid

stopVirtualMachine (A) - 仮想サーバー停止

概要

仮想サーバーを停止する。 ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVirtualMachines - 仮想サーバー一覧表示

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
stopvirtualmachineresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”stopvirtualmachineresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
virtualmachine listVirtulaMachineのResponseを参照。 statusには、Stoppedが含まれる jobid

resetPasswordForVirtualMachine - 仮想サーバーパスワードリセット

概要
仮想サーバーに設定された初期アカウントのパスワードをリセットする。
このコマンドを実行するためには、仮想サーバーを停止させる必要がある。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVirtualMachines - 仮想サーバー一覧表示

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
resetpasswordforvirtualmachineresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”resetpasswordforvirtualmachineresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)
Response(Body)
Node名 説明 子Node
virtualmachine listVirtulaMachineのResponseを参照。 statusには、Stoppedが含まれる。 また、passwordには新規パスワードが含まれる。 jobid

changeServiceForVirtualMachine - 仮想サーバープラン変更

概要

仮想サーバーのサービスオファリング(プラン)を変更する。 このコマンドを実行するためには、仮想サーバーを停止させる必要がある。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes
serviceofferingid サービスオファーリングIDを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
changeserviceforvirtualmachineresponse レスポンスコンテナ virtualmachine
virtualmachine listVirtulaMachineのResponseを参照。 statusには、Stoppedが返される。 また、serviiceofferingidや、cpunumber, memory, cpuspeedが変更される  

updateVirtualMachine - 仮想サーバープロパティ変更

概要

仮想サーバーのプロパティを変更する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes
displayname 仮想サーバーの表示名 No
group グループを変更する。グループを名前(string)で指定する No
haenable 仮想サーバーの高可用性機能を有効・無効にする(true / false で指定) No
ostypeid 仮想サーバーのOS Typeを変更する(IDで指定する) No
userdata 任意のデータをbase64でエンコードして指定する(base64 encode後 2KBまで) No Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVirtualMachines - 仮想サーバー一覧表示

警告

HAenableをfalseにした場合、仮想サーバーのホストが障害時にHA機能 (仮想サーバーが自動的に別ホストへマイグレーションされる)が動作しなくなります。

レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
updatevirtualmachineresponse レスポンスコンテナ virtualmachine
virtualmachine listVirtulaMachineのResponseを参照。 リクエストで指定した値が変更され、返される。  

recoverVirtualMachine - 仮想サーバー復元

概要

削除した仮想サーバーを復元する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 仮想サーバーのidを指定する Yes

参考

仮想サーバー情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVirtualMachines - 仮想サーバー一覧表示

レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
recovervirtualmachineresponse レスポンスコンテナ virtualmachine
virtualmachine listVirtulaMachineのResponseを参照。  

警告

仮想サーバーの状態が”Destroyed”のものを復旧します。 “Expunging”の状態を経て、完全に削除された状態の仮想サーバーは復旧出来ません。

(A): Async,非同期APIを表します

2.2. セキュリティグループ操作 (SecurityGroup)

セキュリティグループを管理するAPIです。

listSecurityGroups - セキュリティグループ一覧

概要

非同期APIの実行状態および結果を追跡・確認する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
account 指定したアカウントに属する情報に絞り込む。domainidと同時に利用する No
domainid ドメインIDを指定する。指定することにより、指定したドメイン以下の情報に絞り込む No
id セキュリティグループのIdを指定する No
isrecursive サブドメインを検索対象に含める。(true/falseで指定) No
keyword 任意キーワードによる検索条件の付与 No
listall true/ falseで指定する(default false). zoneidとisrecursive=trueと設定した場合に等しい No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時にしていする.(default:500) No
securitygroupname セキュリティグループの名前を指定する No
tags タグ情報(key, value)による検索条件を指定する。 タグ情報は、 - tags[N].key=“sample_key” - tags[N].value=“sample_value”(N=0, 1, 2, 3, ….) の形で指定する No
virtualmachineid 仮想サーバーのIDを指定する No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名   説明 子Node
listsecuritygroupsresponse レスポンスコンテナ count, asyncjobs
count レスポンスに含まれるセキュリティグループオブジェクトの個数  
securitygroup セキュリティグループオブジェクトを格納するコンテナ accountid, userid, cmd, jobstatus, jobporcstatus, jobresultcode, jobresulttype, jobresult, created, jobid
id セキュリティグループのid  
account 当該セキュリティポリシーを所有するアカウント  
userid 当該非同期APIのクエストを実行したユーザのID  
description 当該セキュリティポリシーに関する説明  
domainid 当該セキュリティポリシーを保持するドメインのID  
domiain 当該セキュリティポリシーを保持するドメインの名前  
name 当該セキュリティポリシーの名前  
tags key Value タグ情報のコンテナ タグのキー情報 タグの値 key, value
egress egress filter (outgoingの通信にかけるフィルタ) のルールを格納するコンテナ ruleid, protocol, startport, endport, cidr, icmptype, icmpcode
ruleid egress filterのルールID  
protocol tcp, udp, icmp, (all) のいずれかを指定する  
startport tcp又はudpを指定した際、port rangeの始点  
endport tcp,又はudpを指定した際、port rangeの終点  
cidr 送信先(destination addresses)を CIDR(Classless Inter-Domain-Rouring) Block 単位で返される (例:192.0.2.0/24)  
icmpcode icmpのコード (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml)  
icmptype icmpのtype (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml)  
ingress   ingress filter (incommingの通信にかけるフィルタ) のルールを格納するコンテナ ruleid, protocol, startport, endport, cidr, icmptype, icmpcode
ruleid egress filterのルールID  
protocol tcp, udp, icmp, (all) のいずれか  
startport tcp又はudpを指定した際、port rangeの始点を指定する  
endport tcp,又はudpを指定した際、port rangeの終点を指定する  
cidr 通信元(source addresses)を CIDR(Classless Inter-Domain-Rouring) Block 単位で返される (例:192.0.2.0/24)  
icmpcode icmpのコード (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml)  
icmptype icmpのtype (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml)  

createSecurityGroup - セキュリティグループ作成

概要

セキュリティグループを作成する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
name セキュリティグループに任意の名前を設定する。 Yes
account domainidと共に使用して、任意のアカウントを指定する No
domainid domainid を指定する。accountと同時に指定する No
description セキュリティグループの説明を指定する No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名   説明 子Node
createsecuritygroupresponse レスポンスコンテナ securitygroup
securitygroup セキュリティグループオブジェクトを格納するコンテナ id, name, description, account, domainid, domain
id セキュリティグループのid  
name セキュリティグループの名前  
description セキュリティグループの説明  
account セキュリティグループの保有アカウント  
domainid セキュリティグループの保有ドメインID  
domain セキュリティグループの保有ドメイン  

deleteSecurityGroup - セキュリティグループ削除

概要

セキュリティグループを削除する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id 削除対象のセキュリティグループのidを指定する Yes ※
name 削除対象のセキュリティグループの名前を設定する Yes ※
account domainidと共に使用して、任意のアカウントを指定する No
domainid domainid を指定する。accountと同時に指定する No

注釈

Idとnameのどちらかは必須です。また、nameとidを同時に指定することは出来ません。

参考

セキュリティグループ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSecurityGroups - セキュリティグループ一覧

レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deletesecuritygroupresponse レスポンスコンテナ success
success 削除リクエストに対して、成功の場合はtrue 失敗の場合は、falseが与えられ返される  

authorizeSecurityGroupIngress (A) - セキュリティグループ受信ルール追加

概要

セキュリティグループにingressのフィルター(incoming の通信)に対する”permit”ルールを設定する ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
securitygroupid 対象のセキュリティグループのidを指定する Yes(※)
securitygroupname 対象のセキュリティグループの名前を設定する。 Yes(※)
account domainidと共に使用して、任意のアカウントを指定する No
cidrlist 通信元(source addresses)をCIDR(Classless Inter-Domain-Rouring) Block 単位で指定する(例:192.0.2.0/24) No (※1)
domainid domainid を指定する。accountと同時に指定する No
endport tcp又はudpを指定した際、port rangeの終点を指定する No
icmpcode protocolでicmpを指定した場合にコードを指定する (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml) No
icmptype protocolでicmpを指定した場合にコードを指定する (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml) No
protocol tcp, udp, 又はicmpのいずれかを指定する No
startport tcp,又はudpを指定した際、port rangeの始点を指定する No

注釈

(※) securitygroupidと、securitygroupnameのどちらかは必須です。また、同時に指定することは出来ません。

注釈

(※1) 少なくとも、一つのCIDR Blockを”cidrlist”に含めるか、usersecuritygrouplistに必要があります。 また、cidrlistだけを指定した場合、protocol の値は”all”となります。

参考

セキュリティグループ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSecurityGroups - セキュリティグループ一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
authorizeSecurityGroupIngressressresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

非同期メソッドのため、”authorizesecuritygroupIngressresponse”コンテナには、jobidのみが返されます。 queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。

レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
securitygroup llistSecurityGroupのResponseを参照 jobid

revokeSecurityGroupIngress (A) - セキュリティグループ受信ルール削除

概要

セキュリティグループに設定された、特定のingress filterのルールを削除する。 ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id セキュリティグループに設定された、特定のingress filterのルールを削除する Yes

参考

セキュリティグループ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSecurityGroups - セキュリティグループ一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
revokesecuritygroupingress レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

非同期メソッドのため、”revokesecuritygroupingress”コンテナには、jobidのみが返されます。 queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。

レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
success 成功時にはtrue, 失敗時にはfalseが返される  

authorizeSecurityGroupEgress (A) - セキュリティグループ送信ルール追加

概要

セキュリティグループに Egressのフィルター(outgoingの通信)に対するルールを設定する ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
securitygroupid 対象のセキュリティグループのidを指定する Yes (※)
securitygroupname 対象のセキュリティグループの名前を設定する。 Yes (※)
account domainidと共に使用して、任意のアカウントを指定する No
cidrlist 通信元(source addresses)をCIDR(Classless Inter-Domain-Rouring) Block 単位で指定する (例:192.0.2.0/24) No (※1)
domainid domainid を指定する。accountと同時に指定する No
endport tcp又はudpを指定した際、port rangeの終点を指定する No
icmpcode protocolでicmpを指定した場合にコードを指定する (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml) No
icmptype protocolでicmpを指定した場合にコードを指定する (http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml) No
protocol tcp, udp, 又はicmpのいずれかを指定する No
startport tcp,又はudpを指定した際、port rangeの始点を指定する No

注釈

(※) securitygroupidと、securitygroupnameのどちらかは必須です。また、同時に指定することは出来ません。

注釈

(※1) 少なくとも、一つのCIDR Blockを”cidrlist”に含めるか、usersecuritygrouplistに必要があります。 また、cidrlistだけを指定した場合、protocol の値は”all”となります。

参考

セキュリティグループ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSecurityGroups - セキュリティグループ一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
authorizeSecurityGroupIngressressresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

非同期メソッドのため、”authorizesecuritygroupIngressresponse”コンテナには、jobidのみが返されます。 queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。

レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
securitygroup listSecurityGroupのResponseを参照。  

revokeSecurityGroupEgress (A) - セキュリティグループ送信ルール削除

概要

セキュリティグループに設定された、特定のEgress filterのルールを削除する。 ※非同期API

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id セキュリティグループに設定された、特定のEgress filterのルールを削除する Yes

参考

セキュリティグループ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSecurityGroups - セキュリティグループ一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
revokesecuritygroupegress レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

非同期メソッドのため、”revokesecuritygroupegress”コンテナには、jobidのみが返されます。 queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。

レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
success 成功時にはtrue, 失敗時にはfalseが返される  

(A): Async,非同期APIを表します

2.3. テンプレート管理 (Template)

テンプレートを管理するAPIです。

listTemplates - テンプレート一覧表示

概要

Cloudn Computeサービスで提供しているテンプレートや、自作テンプレート等の一覧を取得する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
templatefilter 以下のいずれかを指定する。 - featured : Cloudn Computeサービスで提供しているテンプレート一覧を取得するためのフィルター - self : 自作または持ち込みテンプレート一覧を取得するためのフィルター - self-executable : 自作、持ち込みテンプレートで、新しいVMを作成するのに利用できるテンプレート一覧を取得するフィルター - executable : 新しいVMを作成するのに利用できるテンプレート一覧を取得するフィルター Yes
account 指定したアカウントに属する情報に絞り込む。domainidと同時に利用する No
domainid ドメインIDを指定する。指定することにより、指定したドメイン以下の情報に絞り込む No
hypervisor Hypervisor を指定。 No
id テンプレートのIDを指定 No
isrecursive サブドメインが保有するテンプレートも検索対象とする No
keyword キーワードによる検索を実施する No
listall true/ falseで指定する(default:false). zoneidとisrecursive=trueと設定した場合に等しい No
name テンプレート名を指定して、検索を実施する No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する.(default: 500) No
tags タグ情報(key, value)による検索条件を指定する。 タグ情報は、 - tags[N].key=“sample_key” - tags[N].value=“sample_value”(N=0, 1, 2, 3, ….) の形で指定する

No

No

zoneid テンプレートの存在するゾーンを指定する No
レスポンス
レスポンス (Body)
Response(Body)
Node名 説明 子Node
listtemplatesresponse レスポンスコンテナ count, template  
count レスポンスに含まれるtemplateオブジェクトの個数  
template templateオブジェクトを格納するコンテナ id, name, displaytext, ispublic, created, isready, passwordenabled, format, isfeatured, crosszones, ostypeid, account, zoneid, zonename, status, size, type, hypervisor, tags, domainid, domain, isextractable, checksum, sshkeyenabled, sourcetemplateid
id テンプレートのid  
name テンプレート名  
displaytext テンプレートの表示名  
ispublic public テンプレートかどうか(true|false)  
created テンプレートの作成日時が返る  
isready 利用可能か否か(true|false)  
passwordenabled パスワードリセット機能の有無  
format テンプレートのフォーマット  
isfeatured Cloudn Computeサービスで提供しているテンプレートか 否か(true|false)  
crosszones zoneを跨いで管理されているか否か(true|false)  
ostypeid テンプレートのOS Type ID  
ostypename テンプレートのOS Type 名  
account テンプレートを保有するアカウント名  
zoneid テンプレートが管理されているzoneのid  
zonename テンプレートが管理されているzoneの名前  
status テンプレートのステータス  
size テンプレートのサイズ  
templatetype テンプレートタイプ  
Hypervisor ハイパーバイザーの種類  
domain テンプレートを保有するドメインの名前  
domainid テンプレートを保有するドメインのid  
isextractable 展開が可能か否か(true/false)  
checksum テンプレートのチェックサム値  
tags タグ情報  
sshkeyenabled ssh-key機能が利用出来るか否か  
sourcetemplateid 当該テンプレートのもとになったテンプレートのID  
サンプルレスポンス
{
  "count": 1,
  "template": [
    {
      "account": "cln************",
      "checksum": "7cff59dbfc1c09280ba4242cc3f653a8",
      "created": "2013-09-03T13:28:40+0900",
      "crossZones": false,
      "displaytext": "****",
      "domain": "cln******",
      "domainid": "********-****-****-************",
      "format": "QCOW2",
      "hypervisor": "KVM",
      "id": "********-****-****-************",
      "isextractable": true,
      "isfeatured": false,
      "ispublic": false,
      "isready": true,
      "name": "************",
      "ostypeid": "144",
      "ostypename": "CentOS 6.0 (64-bit)",
      "passwordenabled": true,
      "size": 16106127360,
      "sourcetemplateid": "********-****-****-************",
      "sshkeyenabled": false,
      "status": "Download Complete",
      "tags": [],
      "templatetype": "USER",
      "zoneid": "********-****-****-************",
      "zonename": "jp-e1a"
    }]
}

createTemplate (A) - テンプレート作成

概要
テンプレートを作成する。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
displaytext テンプレートの表示名を指定する Yes
name テンプレート名を指定する Yes
ostypeid テンプレートのOSタイプを指定する Yes
bits 32もしくは64bitを指定する No
details テンプレートの詳細を指定する。 (key/value形式) No
ispublic public テンプレートかどうかを指定する (“false”のみ有効) No
passwordenabled パスワード変更の可否を指定する No
snapshotid 生成元のSnapshot IDを指定する Yes [1]
templatetag テンプレートタグを指定する No
volumeid 生成元のRootディスクのボリュームIDを指定する Yes [1]

注釈

本コマンド例における「createTemplate」を利用される場合の各パラメータ値については以下をご参照ください。

脚注

[1](1, 2) snapshotidと、volumeidのどちらかは必須です。また、同時に指定することは出来ません。
レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
createTemplateresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobiid  

注釈

(※)非同期メソッドのため、”createTemplateresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
template listTemplatesのResponseを参照。 statusには、Running、ならびに、passwordに初期パスワードが含まれる jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に払い出されたjobiid  

updateTemplate - テンプレートプロパティ変更

概要

テンプレートのプロパティを変更する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id テンプレートのidを指定する Yes
displaytext テンプレートの表示名 No
format テンプレートイメージのフォーマット No
name テンプレートイメージの名前 No
passwordenabled パスワードリセット機能が有効か。 テンプレートにパスワードエージェントが インストールされている時のみtrueとする No
sortkey テンプレートをソートするキー。整数での指定をする。 No
ostypeid 仮想サーバーのOS Typeを変更する(IDで指定する) No

参考

テンプレート情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
updatetemplateresponse レスポンスコンテナ Template
template listTemplates - テンプレート一覧表示 のResponseを参照。 リクエストで指定した値が変更され、返される。  

copyTemplate (A) - Templateのコピー

概要
Templateを異なるゾーンへコピーをする。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id TemplateイメージのID Yes
destzoneid コピー先ZoneのID Yes
sourcezoneid コピー元ZoneのID Yes

参考

Template・ゾーン情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 - listTemplates - テンプレート一覧表示 - listZones - ゾーン情報一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
copytemplateresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”copytemplateresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
サンプルレスポンス
{
  "copytemplateresponse": {
    "jobid": "**:**:**:****:**:**:**b818a8f6"
  }
}
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
template template Objectを格納するコンテナ。詳細は listTemplates - テンプレート一覧表示 を参照。  

deleteTemplate (A) - テンプレート削除

概要
テンプレートを削除する。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id テンプレートのidを指定する Yes
zoneid ゾーンのIDを指定する No

参考

テンプレート情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listTemplates - テンプレート一覧表示

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deletetemplateresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”deletetemplateresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deletetemplate listIsosのResponseを参照  
サンプルレスポンス
 > delete template id=********-****-****-************
{
  "accountid": "********-****-****-************",
  "cmd": "com.cloud.api.commands.DeleteTemplateCmd",
  "created": "2014-07-23T15:34:00+0900",
  "jobid": "be6aebbd-cd2e-4277-98f2-d115103b0cb9",
  "jobprocstatus": 0,
  "jobresult": {
    "success": true
  },
  "jobresultcode": 0,
  "jobresulttype": "object",
  "jobstatus": 1,
  "userid": "********-****-****-************"
}

extractTemplate (A) - テンプレートの展開

概要
Templateを展開(ダウンロードURLの発行)をする。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Templateのidを指定する Yes
mode “HTTP_DOWNLOAD” あるいは “FTP_UPLOAD”のいずれかを指定する Yes
zoneid Templateが存在するzoneidを指定する Yes
url Templateが展開されるURLを指定する No

参考

Template情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listTemplates - テンプレート一覧表示

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
extracttemplateresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”extracttemplateresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
template Template Objectを格納するコンテナ id, name, extractId, accountid, state, zoneid, zonename, extractMode, url, created, status, uploadpercentage
id 展開されたTemplateのid  
accountid 展開したTemplateを保有するアカウントのID  
created 展開されたTemplate オブジェクトが作成された日時  
extractId 展開ずみobjectのID  
extractMode 展開時のモード (HTTP_DOWNLOAD / FTP_UPLOAD)  
name 展開されたオブジェクト(Template)の名前  
state 展開されたオブジェクトの状態  
status ステータス  
uploadpercentage アップロードの進捗  
zoneid 展開元のTemplate objectが存在したzoneのid  
zonename 展開元のTemplate objectが存在したzoneの名前  
url modeに“HTTP_DOWNLOAD”を指定した場合は、 展開したオブジェクトをダウンロードするためのURLが “HTTP_UPLOAD”を指定した場合は、オブジェクトがアップロードされるURL  
サンプルレスポンス
>api extractTemplate id=********-****-****-************ mode=HTTP_DOWNLOAD zoneid=********-****-****-************
   {
  "accountid": "********-****-****-************",
  "cmd": "com.cloud.api.commands.ExtractTemplateCmd",
  "created": "2014-07-23T15:30:01+0900",
  "jobid": "********-****-****-************",
  "jobprocstatus": 0,
  "jobresult": {
    "template": {
      "accountid": "********-****-****-************",
      "extractId": "1032",
      "extractMode": "HTTP_DOWNLOAD",
      "id": "********-****-****-************",
      "name": "Test",
      "state": "DOWNLOAD_URL_CREATED",
      "url": "https://153-128-28-208.realhostip.com/userdata/*******.qcow2",
      "zoneid": "********-****-****-************",
      "zonename": "jp-e1b"
    }
  },
  "jobresultcode": 0,
  "jobresulttype": "object",
  "jobstatus": 1,
  "userid": "********-****-****-************"
}

2.4. Volume管理 (Volume)

Volime(仮想ディスク)を管理するAPIです。

listVolumes - Volume一覧

概要

Volume(仮想ディスク)一覧を表示する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
account 指定したアカウントに属する情報に絞り込む。 domainidと同時に利用する No
details 取得する情報にフィルターを設定する。 指定出来る値は、all, vm, account, storage_type, disk_offering及びmin. 複数指定する場合は、カンマ(,)区切りで指定する。 No
domainid ドメインIDを指定する。 指定することにより、指定したドメイン以下の情報に絞り込む No
id テンプレートのIDを指定 No
isrecursive サブドメインが保有するDisk Voluneも検索対象とする No
keyword キーワードによる検索を実施する No
listall true/falseで指定する(default false). zoneidとisrecursive=trueと設定した場合に等しい No
name Volume名を指定して、検索を実施する No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。 pageと同時にしていする.(default: 500) No
tags タグ情報(key, value)による検索条件を指定する。 タグ情報は、 - tags[N].key=“sample_key” - tags[N].value=“sample_value” (N=0, 1, 2, 3, ….)の形で指定する No
type Disk Volumeのタイプを指定する。(ROOT/DATADISK) No
virtualmachineid 仮想サーバーのidによる検索条件を付与する No
zoneid zoneidによる検索条件を付与する No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listvolumesresponse レスポンスコンテナ count, volume
count レスポンスに含まれるtemplateオブジェクトの個数  
volume Volumeオブジェクトを格納するコンテナ id, name, zoneid, zonename, type, deviceid, virtualmachineid, vmname, vmdisplayname, vmstate, size, created, state, account, domainid, domain, storagetype, storage, attached, destroyed, serviceofferingid, serviceofferingname, serviceofferingdisplaytext, isextractable, tags, diskofferingid, diskofferingname, diskofferingdisplaytext
id Volumeのid  
name Volume名  
zoneid Volumeが管理されているzoneのid  
zonename Volumeが管理されているzoneの名前  
type VolumeのType (ROOT / DATADISK)  
deviceid デバイスのID  
virtualmachineid 仮想サーバーのID  
vmname 仮想サーバーの名前  
vmdisplayname 仮想サーバーの表示名  
vmstate 仮想サーバーの状態  
size Volumeのサイズ  
created Volumeの作成日時  
state Volumeの状態  
account Volumeを保有するアカウントの名前  
domainid Volumeを保有するドメインのID  
domain Volumeを保有するドメインの名前  
storagetype ストレージのタイプ  
storage ストレージの名前  
attached Volumeが仮想サーバーにアタッチされた日時  
destroyed 破棄されたか否か(true / false)  
serviceofferingid 仮想サーバーのServiceOffering ID (TypeがROOTの場合)  
serviceofferingname 仮想サーバーのServiceOffering 名 (TypeがROOTの場合)  
serviceofferingdisplaytext 仮想サーバーのServiceOffering の表示名 (TypeがROOTの場合)  
isextractable ダウンロード可能か否か  
tags タグ情報  
diskofferingid 仮想サーバーのDisk Offering ID (TypeがDATADISKの場合)  
diskofferingname 仮想サーバーのDisk Offering 名 (TypeがDATADISKの場合)  
diskofferingdisplaytext 仮想サーバーのDisk Offering の表示名 (TypeがDATADISKの場合)  

attachVolume (A) - Disk Volumeのアタッチ

概要

Disk Volume(仮想ディスク)を仮想サーバーへアタッチする。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Volumeのidを指定する Yes
virtualmachineid Targetとする仮想サーバーのidを指定する Yes

参考

Volume情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVolumes - Volume一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
attachvolumeresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”attachvolumeresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
Volume listVolumesのResponseを参照。 jobid

detachVolume (A) - Volumeのデタッチ

概要

Volume(仮想ディスク)を仮想サーバーからデタッチする。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Volumeのidを指定する Yes(※)
virtualmachineid Targetとする仮想サーバーのidを指定する Yes(※)
deviceid 仮想マシン上のdeviceidを指定する Yes(※)

注釈

“id” または、”deviceid”, “virtualmachineid” (deviceidとvirtualmachineidを同時に指定)は必須

参考

Volume情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVolumes - Volume一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
detachhvolumeresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”detachvolumeresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
Volume listVolumesのResponseを参照。 jobid

createVolume (A) - Volumeの作成

概要

Volume(仮想ディスク)を作成する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
name Volumeの名前を指定する Yes
diskofferingid Disk Offering IDを指定する Yes(※)
snapshotid Snapshot IDを指定する Yes(※)
zoneid zoneidを指定する Yes
account domainidと共に使用して、任意のアカウントを指定する No
domainid domainid を指定する。accountと同時に指定する No
レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
createvolumeresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”createvolumeresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
Volume listVolumesのResponseを参照。 jobid

deleteVolume - Volumeの削除

概要

Volume(仮想ディスク)を削除する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Volumeのidを指定する Yes

参考

Volume情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVolumes - Volume一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deletevolumeresponse レスポンスコンテナ jobid
success 成功時にはtrue, 失敗時にはfalseが返される。  

extractVolume (A) - Volumeの展開

概要

Volume(仮想ディスク)を展開(ダウンロードURLの発行)をする。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Volumeのidを指定する Yes
mode “HTTP_DOWNLOAD” あるいは “FTP_UPLOAD”のいずれかを指定する Yes
zoneid Volumeが存在するZone idを指定する Yes
url Volumeが展開されるURLを指定する No

参考

Volume情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listVolumes - Volume一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
extractvolumeresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”extractvolumeresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
volume Volume Objectを格納するコンテナ id, name, extractId, accountid, state, zoneid, zonename, extractMode, url, created, status, storagetype, uploadpercentage
id 展開されたVolumeのid  
accountid 展開したVolumeを保有するアカウントのID  
created 展開されたvolume オブジェクトが作成された日時  
extractId 展開ずみobjectのID  
extractMode 展開時のモード (HTTP_DOWNLOAD / FTP_UPLOAD)  
name 展開されたオブジェクト(Volume)の名前  
state 展開されたオブジェクトの状態  
status ステータス  
storagetype ストレージの種類  
uploadpercentage アップロードの進捗  
zoneid 展開元のvolume objectが存在したzoneのid  
zonename 展開元のvolume objectが存在したzoneの名前  
url modeに“HTTP_DOWNLOAD”を指定した場合は、 展開したオブジェクトをダウンロードするためのURLが “HTTP_UPLOAD”を指定した場合は、オブジェクトがアップロードされるURL  

(A): Async,非同期APIを表します

2.5. スナップショット管理 (Snapshot)

スナップショットを管理するAPIです。

listSnapshots - Snapshot一覧

概要

Snapshot一覧を表示する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
account 指定したアカウントに属する情報に絞り込む。 domainidと同時に利用する No
domainid ドメインIDを指定する。 指定することにより、指定したドメイン以下の情報に絞り込む No
id スナップショットのIDを指定 No
isrecursive サブドメインが保有するスナップショットも検索対象とする No
keyword キーワードによる検索を実施する No
listall true/falseで指定する(default false). zoneidとisrecursive=trueと設定した場合に等しい No
name Snapshot名を指定して、検索を実施する No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。 pageと同時にしていする.(default: 500) No
tags タグ情報(key, value)による検索条件を指定する。 タグ情報は、 - tags[N].key=“sample_key” - tags[N].value=“sample_value” (N=0, 1, 2, 3, ….)の形で指定する No
volumeid Disk VolumeのIDを指定する No
zoneid zoneidによる検索条件を付与する No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名   説明 子Node
listsnapshotsresponse   レスポンスコンテナ count, Snapshot
count   レスポンスに含まれるtemplateオブジェクトの個数  
snapshot   snapshotオブジェクトを格納するコンテナ id, name, zoneid, zonename, type, deviceid, virtualmachineid, vmname, vmdisplayname, vmstate, size, created, state, account, domainid, domain, storagetype, storage, attached, destroyed, serviceofferingid, serviceofferingname, serviceofferingdisplaytext, isextractable, tags, diskofferingid, diskofferingname, diskofferingdisplaytext
id   Snapshotのid  
account   Snapshotを保有するアカウントの名前  
created   Snapshotの作成日時  
domain   Snapshotを保有するドメインの名前  
domainid   Snapshotを保有するドメインのID  
name   Snapshot名  
account   Snapshotに紐付いたアカウント  
state   Snapshotの状態。BackedUPであれば利用可能を意味する。  
volumeid   Disk VolumeのID  
volumename   Disk Volumeの名前  
volumetype   Disk Volumeの種別(Root/Data)  
zoneid   snapshotが管理されているzoneのid  
tags   タグ情報  
account tagが紐付けられたアカウント  
customer tagが紐付けられた顧客名  
domain tagが紐付けられたdomain  
domainid tagが紐付けられたdomainid  
key tag keyの名前  
project タグが所属するプロジェクト名  
projectid タグが所属するプロジェクトID  
resourceid リソースのID  
resourcetype リソースの種類  
value タグの値  

listSnapshotPolicies - Snapshotポリシー一覧

概要

SnapshotPolicy(スナップショットを定期作成するポリシー)の一覧を表示する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
volumeid Snapshot対象Disk VolumeのID Yes
keyword 検索キーワード No
page   No
pagesize レスポンスをページ分けする際のページサイズ No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
id SnapshotPolicyのID  
intervaltype SnapshotPolicyの取得間隔タイプ  
maxsnaps maximum number of snapshots retained  
schedule time the snapshot is scheduled to be taken.  
timezone SnapshotPolicyのタイムゾーン  
volumeid disk volumeのID  

createSnapshot (A) - Snapshotの作成

概要
Snapshotを作成する。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
volumeid ディスクのID Yes
account スナップショットを取得するアカウント。 “domainid”と一緒に指定する必要がある。 No
domainid スナップショットの”domainid”。”account”と一緒に指定する必要がある。 No
policyid スナップショットのpolicyid。空白である場合には”MANUAL_POLICY”が使用される。 No
レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
createsnapshotresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”createsnapshotresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
Snapshot listSnapshotsのResponseを参照。 jobid

deleteSnapshot - Snapshotの削除

概要

Snapshotを削除する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Snapshotのidを指定する Yes

参考

Snapshot情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSnapshots - Snapshot一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deleteSnapshotresponse レスポンスコンテナ jobid
success 成功時にはtrue, 失敗時にはfalseが返される。  

createSnapshotPolicy - SnapshotPolicyの作成

概要
SnapshotPolicy(スナップショットを定期作成するポリシー)の作成。
定期スナップショットの作成ルールとなります。

注釈

操作マニュアルにある通り、仮想サーバーが動作した状態でのスナップショット取得はサポートされません。

stopVirtualMachine (A) - 仮想サーバー停止 、および startVirtualMachine (A) - 仮想サーバー起動 などとの組み合わせにより、仮想サーバーを停止/起動するAPI実行を対象サーバー以外のサーバーなどから cronなどでスケジュール化してください。

また、スナップショットの取得時間は仮想サーバー内部の実使用データ量に比例し、時間がかかります。 事前に十分な検証を行った上でご設定ください。

警告

仮想サーバーが動作した状態でのスナップショットのリスクは以下の通りです

  • 作成したスナップショットにデータの不整合が発生し、仮想サーバーの復元が正常に出来ない可能性があります
  • スナップショット取得時、対象の仮想サーバーの負荷が増大、もしくはレスポンスが一時的に遅延する場合があります
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
intervaltype
SnapshotPolicyの取得間隔タイプを指定します。
“WEEKLY”, および “MONTHLY” が使用可能です。”HOURLY”, “DAILY”はサポートされません。
Yes
maxsnaps 保存するスナップショットの世代数。1以上を入力してください。 Yes
schedule
スナップショット取得のスケジュールを指定します。
フォーマットは下記の通り:
時 * ,
分 MM* ,
日時の場合 MM:HH*,
週次実施の場合 MM:HH:DD (1-7)*
月次の場合 MM:HH:DD (1-28)
Yes
timezone Timezoneを指定します。 Yes
volumeid DiskVolumeのID Yes

注釈

“HOURLY”, “DAILY”を入力した場合は以下のようなエラーが返されます。 操作マニュアルにある通り、Daily、Hourlyでのスナップショットはサポートされません。

errorcode = 431
errortext = maxSnaps exceeds limit: 0
レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
id SnapshotPolicyのID  
intervaltype SnapshotPolicyの取得間隔タイプ  
maxsnaps maximum number of snapshots retained  
schedule time the snapshot is scheduled to be taken.  
timezone SnapshotPolicyのタイムゾーン  
volumeid disk volumeのID  

deleteSnapshotPolicies - スナップショット取得ポリシーの削除

概要

スナップショット取得ポリシーを削除する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id snapshotpolicyidを指定する No
ids snapshotpolicyidを”,”(コンマ)で複数指定可能 No

参考

SnapshotPolicies情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 listSnapshotPolicies - Snapshotポリシー一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deleteSnapshotPoliciesresponse レスポンスコンテナ jobid
success 成功時にはtrue, 失敗時にはfalseが返される。  

2.6. ISO管理 (Iso)

ISOを管理するAPIです。

listIsos - ISO一覧表示

概要

ISOの一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
bootable 起動可能なISOであるか(true|false) No
id ISOのIDを指定する  
isofilter 以下のいずれかを指定する。 - self : 自作または持ち込みISO一覧を取得するためのフィルター - self-executable : 自作、持ち込みISOで、新しいVMを作成するのに利用できるISO一覧を取得するフィルター - executable : 新しいVMを作成するのに利用できるISO一覧を取得するフィルター No
isready 使用準備が完了しているISOのみ表示する (true|false) No
keyword キーワードを指定する No
name ISOの名前を指定する No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する。(default: 500) No
tags タグ情報(key, value)による検索条件を指定する。 タグ情報は、 - tags[N].key=“sample_key” - tags[N].value=“sample_value”(N=0, 1, 2, 3, ….) の形で指定する

No

No

zoneid Zone IDを指定する No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listisosresponse レスポンスコンテナ count, Iso
count レスポンスに含まれるIsoオブジェクトの個数  
iso Isoオブジェクトを格納するコンテナ id, name, displaytext, cpunmber, cpuspeed, memory, created, storagetype, offerha, limitcpuuse, tags, domainid, domain, hosttag, issytem, defaultuse
id ISOのid  
bootable 起動可能なISOであるか  
checksum ISOのMD5ハッシュ値  
created ISOの作成日時  
displaytext ISOの表示名  
crossZones 常にfalse  
domain ISOの登録されたドメイン名  
domainid ISOの登録されたドメインID  
id ISOのID  
isextractable ダウンロードの可否  
isfeatured 常にfalse  
ispublic 常にfalse, trueであれば他のユーザからも閲覧・使用可能  
isready trueであれば使用可能  
name ISOの名前  
ostypeid ISOより仮想サーバーを作成する際のOSのID  
ostypename ISOより仮想サーバーを作成する際のOS種別  
size ISOのサイズ  
status ISOの状態  
tags tagsテーブルを参照 account, customer, domain, domainid, key, project, projectid, resourceid, resourcetype, value
zoneid ISOの登録されたzoneのID  
zonename ISOの登録されたzoneの名前  
tags
Node名 説明 子Node
key tag key名  
value tag 値  
サンプルレスポンス
{
  "listisosresponse": {
    "count": 6,
    "iso": [
      {
        "id": "**:**:**:****:**:**:**54d8755d",
        "name": "centos6.5",
        "displaytext": "centos6.5",
        "ispublic": false,
        "created": "2014-06-09T23:04:48+0900",
        "isready": true,
        "bootable": true,
        "isfeatured": false,
        "crossZones": false,
        "ostypeid": "144",
        "ostypename": "CentOS 6.0 (64-bit)",
        "account": "cln*********",
        "zoneid": "**:**:**:****:**:**:**ed875e76",
        "zonename": "jp-e1b",
        "status": "Successfully Installed",
        "size": 4467982336,
        "domain": "cln*********",
        "domainid": "**:**:**:****:**:**:**f82721bb",
        "isextractable": true,
        "checksum": "**:**:**:****:**:**:**60787838",
        "tags": []
      }
    ]
  }
}

attachIso (A) - ISOのアタッチ

概要
ISOをアタッチをする。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id ISOイメージのID Yes
virtualmachineid アタッチ先の仮想サーバーのID Yes

参考

ISO情報を一覧表示・仮想サーバー一覧を表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
attachIsoresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”attachisoresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
サンプルレスポンス
{
  "attachisoresponse": {
    "jobid": "**:**:**:****:**:**:**b818a8f6"
  }
}
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名   説明 子Node
iso   レスポンスコンテナ count, virtualmachine
count   レスポンスに含まれる仮想サーバーオブジェクトの個数  
virtualmachine   仮想サーバーを格納するコンテナ  
id   ISOをアタッチした仮想サーバーのID  
account   当該仮想サーバーを所有するアカウント  
cpunumber   当該仮想サーバーのCPUの  
cpuspeed   CPUのスピード  
cpuused   CPU仕様率  
created   当該仮想サーバーの作成日時  
displayname   当該仮想サーバーの表示名  
domain   ドメイン名  
domainid   ドメインID  
group      
groupid      
guestosid   OS のID  
haenable   高可用性機能の有効・無効(true / false )  
hypervisor   常にKVM  
isodisplaytext      
isoid      
isoname      
memory   仮想サーバーに搭載されたメモリサイズ  
name   仮想サーバーの名前  
networkkbsread   ネットワークトラフィック量: incomming (KB)  
networkkbswrite   ネットワークトラフィック量: outgoing (KB)  
password   パスワード(パスワードリセットを実施時)  
passwordenabled   パスワードリセット機能が有効か否か(true/ alse)  
rootdevicetype      
serviceofferingid   Service Offering(仮想サーバーのスペック)のID  
serviceofferingname   Service Offering(仮想サーバーのスペック)名  
state   仮想サーバーの状態  
templatedisplaytext   テンプレート表示名  
templateid   仮想サーバー作成時のテンプレートまたはISOのID  
templatename   仮想サーバー作成時のテンプレートまたはISOの名前  
zoneid   仮想サーバーが存在するzoneのID  
zonename   仮想サーバーが存在するzone の名前  
nic   Network Interface Card(NIC)の情報を格納するコンテナ  
id NICのID  
networkid NetworkのID  
netmask NICにアサインされたIPアドレスのnetmask  
Gateway Default GatewayのIPアドレス  
ipaddress NICにアサインされたIPアドレス  
traffictype “Guest”  
type “Shared”  
isdefault 通常使うNICか否か(常にtrue)  
macaddress MAC アドレス  
tags   タグ情報のコンテナ  
key タグのキー情報  
value タグの値  

detachIso (A) - ISOのデタッチ

概要
ISOを展開(ダウンロードURLの発行)をする。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
virtualmachineid デタッチ元の仮想サーバーのID Yes

参考

仮想サーバー一覧を表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
detachisoresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”detachisoresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
サンプルレスポンス
{
  "detachisoresponse": {
    "jobid": "**:**:**:****:**:**:**b818a8f6"
  }
}
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
iso レスポンスコンテナ count, virtualmachine
count レスポンスに含まれる仮想サーバーオブジェクトの個数 詳細は listVirtualMachines - 仮想サーバー一覧表示 を参照  

updateIso - ISOプロパティ変更

概要

ISOのプロパティを変更する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id ISOのidを指定する Yes
bootable Boot可能ISOか(true/false) No
displaytext ISOの表示名 No
name ISOイメージの名前 No
sortkey ISOをソートするキー。整数での指定をする。 No

参考

テンプレート情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
updateisoresponse レスポンスコンテナ iso
iso listIsos - ISO一覧表示 のResponseを参照。 リクエストで指定した値が変更され、返される。  
サンプルレスポンス
{
  "updateisoresponse": {
    "iso": {
      "id": "**:**:**:****:**:**:**54d8755d",
      "name": "centos6.5",
      "displaytext": "centos6.5",
      "ispublic": false,
      "created": "2014-06-09T23:04:48+0900",
      "isready": false,
      "format": "ISO",
      "bootable": true,
      "isfeatured": false,
      "crossZones": false,
      "ostypeid": "144",
      "ostypename": "CentOS 6.0 (64-bit)",
      "account": "cln*********",
      "domain": "cln*********",
      "domainid": "**:**:**:****:**:**:**f82721bb",
      "tags": []
    }
  }
}

copyIso (A) - ISOのコピー

概要
ISOを異なるゾーンへコピーをする。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id ISOイメージのID Yes
destzoneid コピー先ZoneのID Yes
sourcezoneid コピー元ZoneのID Yes

参考

Iso・ゾーン情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。 - listIsos - ISO一覧表示 - listZones - ゾーン情報一覧

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
copyisoresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”copyisoresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
サンプルレスポンス
{
  "copyisoresponse": {
    "jobid": "**:**:**:****:**:**:**b818a8f6"
  }
}
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
Iso Iso Objectを格納するコンテナ。詳細は listIsos - ISO一覧表示 を参照。  

deleteIso (A) - ISOイメージ削除

概要
ISOイメージを削除する。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id ISOイメージのidを指定する Yes
zoneid ゾーンのIDを指定する No

参考

ISOイメージ情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deleteisoresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”deleteisoresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deleteiso listIsosのResponseを参照  
サンプルレスポンス
 > delete Iso id=********-****-****-************
{
  "accountid": "********-****-****-************",
  "cmd": "com.cloud.api.commands.DeleteIsoCmd",
  "created": "2014-07-23T15:34:00+0900",
  "jobid": "be6aebbd-cd2e-4277-98f2-d115103b0cb9",
  "jobprocstatus": 0,
  "jobresult": {
    "success": true
  },
  "jobresultcode": 0,
  "jobresulttype": "object",
  "jobstatus": 1,
  "userid": "********-****-****-************"
}

extractIso (A) - ISOの展開

概要
ISOを展開(ダウンロードURLの発行)をする。
※非同期API
リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Isoのidを指定する Yes
mode “HTTP_DOWNLOAD” あるいは “FTP_UPLOAD”のいずれかを指定する Yes
zoneid Isoが存在するzoneidを指定する No
url Isoが展開されるURLを指定する No

参考

Iso情報を一覧表示するAPIで必要なパラメータ情報を取得出来ます。

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
extractIsoresponse レスポンスコンテナ jobid
jobid 非同期メソッドをコールし、ジョブとして登録された際に 払い出されたjobid  

注釈

(※)非同期メソッドのため、”extractIsoresponse”コンテナには、jobidのみが返されます。
queryAsyncJobResult - 非同期APIの状態確認 を実行して、結果を確認する必要があります。
サンプルレスポンス
{
  "extractisoresponse": {
    "jobid": "**:**:**:****:**:**:**b818a8f6"
  }
}
レスポンス(非同期job終了時)
レスポンス(Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
Iso Iso Objectを格納するコンテナ id, name, extractId, accountid, state, zoneid, zonename, extractMode, url, created, status, uploadpercentage
id 展開されたIsoのid  
accountid 展開したIsoを保有するアカウントのID  
created 展開されたIso オブジェクトが作成された日時  
extractId 展開ずみobjectのID  
extractMode 展開時のモード (HTTP_DOWNLOAD / FTP_UPLOAD)  
name 展開されたオブジェクト(Iso)の名前  
state 展開されたオブジェクトの状態  
status ステータス  
uploadpercentage アップロードの進捗  
zoneid 展開元のIso objectが存在したzoneのid  
zonename 展開元のIso objectが存在したzoneの名前  
url modeに“HTTP_DOWNLOAD”を指定した場合は、 展開したオブジェクトをダウンロードするためのURLが “HTTP_UPLOAD”を指定した場合は、オブジェクトがアップロードされるURL  
サンプルレスポンス
{
  "listasyncjobsresponse": {
    "count": 1,
    "asyncjobs": {
      "accountid": "**:**:**:****:**:**:**21ee72a4",
      "userid": "**:**:**:****:**:**:**84a98eb6",
      "cmd": "com.cloud.api.commands.ExtractTemplateCmd",
      "jobstatus": 1,
      "jobprocstatus": 0,
      "jobresultcode": 0,
      "jobresulttype": "object",
      "jobresult": {
        "template": {
          "id": "**:**:**:****:**:**:**dba679fd",
          "name": "************",
          "extractId": "1032",
          "accountid": "**:**:**:****:**:**:**21ee72a4",
          "state": "DOWNLOAD_URL_CREATED",
          "zoneid": "**:**:**:****:**:**:**ed875e76",
          "zonename": "jp-e1b",
          "extractMode": "HTTP_DOWNLOAD",
          "url": "https://153-128-28-208.realhostip.com/userdata/**:**:**:****:**:**:**0b912748.qcow2"
      }
    }
}

registerIso - ISOの登録

概要
ISOをウェブ上のURLからComputeへ登録し、利用出来るようにする。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
displaytext ISOの表示名を入力する。 Yes
name ISOの名前を入力する。 Yes
url ISOのアップロードされているURLを入力する。 Yes
zoneid ISOを登録するzoneidを入力する。 Yes
bootable ブータブルISOとして登録する場合は”true”を与える。デフォルトは”false”。 No
checksum 登録するISOのMD5値を入力する。入力することで、登録後に正しく登録されたかを確認可能となる。 No
isextractable ダウンロード可能にする場合は”trueを与える。デフォルトは”false”。 No
ostypeid OSタイプを入力する。bootable=”false”の際には必須。 No

参考

下記APIで必要なパラメータ情報を取得出来ます。

レスポンス(API実行時)
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
registerisoresponse レスポンスコンテナ count, iso
count isoのレスポンスの個数  
iso コンテナ id, account, bootable, checksum, displaytext, domain, domainid, isextractable, isready, name, ostypeid, ostypename, status, zoneid, zonename
id ISOのID  
account ISOが登録されたアカウント  
bootable 起動可能なISOであれば”true”  
crossZones 常に”false”  
displaytext ISOの表示名  
domain ISOの登録されたドメイン名  
domainid ISOの登録されたドメインID  
isextractable “true”であればダウンロード可能  
isready “true”であれば登録完了  
name ISOの名前  
ostypeid OSタイプのID ( listOsTypes - OSタイプ一覧表示 で確認可能)  
ostypename OSタイプの名前  
status ISOの登録状態  
zoneid ISOの登録されたゾーンID  
zonename ISOの登録されたゾーン名  
サンプルレスポンス
{
    "registerisoresponse": {
        "count": 1,
        "iso": [
            {
                "account": "cln100000001",
                "bootable": false,
                "created": "2014-09-03T10:06:30+0900",
                "crossZones": false,
                "displaytext": "test1",
                "domain": "cln100000001",
                "domainid": "00000000-0000-0000-0000-00000000000",
                "id": "00000000-0000-0000-0000-00000000000",
                "isextractable": false,
                "isfeatured": false,
                "ispublic": false,
                "isready": false,
                "name": "test1",
                "ostypeid": "138",
                "ostypename": "None",
                "status": "",
                "tags": [],
                "zoneid": "1b02e74c-6c21-4aa3-b96c-51042de8fccd",
                "zonename": "jp-e1a"
            }
        ]
    }
}

(A): Async,非同期APIを表します

2.7. イベント管理 (Event)

イベント情報管理を取得するAPIです。

listEvents - イベント情報一覧

概要

イベント情報の一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id EventのIdを指定する No
enddate 取得するイベントの終末点を指定する。 フォーマットは、 - “yyyy-MM-dd” もしくは - “yyyy-MM-dd HH:mm:ss” No
entrytime イベントが登録された時間を指定する。フォーマットは同上。 No
keyword 検索キーワードを指定する No
level イベントレベルを指定する (INFO|WARN|ERROR) No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する。(default: 500) No
startdate 取得するイベントの終点を指定する。フォーマットは同上。 No
type EventTypeのフォーマット を参照 No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listeventsresponse レスポンスコンテナ count, event
count レスポンスに含まれるeventオブジェクトの個数  
event eventオブジェクトを格納するコンテナ id, account, created, description, domain, domainid, level, parentid, state, type
id イベントのID  
account イベントを起こしたアカウント  
created イベントが発生した日時  
description イベントの説明  
domain イベントのドメイン  
domainid イベントのドメインID  
level イベントレベル (INFO|WARN|ERROR)  
parentid 親イベントID  
state イベントの状態  
type EventTypeのフォーマット を参照  
サンプルレスポンス
{
  "listeventsresponse": {
    "count": 1,
    "event": [
      {
        "id": "cb1b08c6-0025-4773-a68a-**:**:**:**",
        "username": "cln*********",
        "type": "NET.RULEDELETE",
        "level": "INFO",
        "description": "revoking forwarding rule. Rule Id: 1925",
        "account": "cln*********",
        "domainid": "e500411b-0462-47fd-9b1f-**:**:**:**",
        "domain": "cln********",
        "created": "2014-07-24T20:14:46+0900",
        "state": "Started",
        "parentid": "975492ef-83c4-44ae-8ffc-**:**:**:**"
      }
    ]
  }
}

deleteEvents - イベント情報削除

概要

イベント情報を削除する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
ids EventのIdを指定する。カンマで複数指定可能 No
enddate 削除するイベントの終末点を指定する。 フォーマットは、 - “yyyy-MM-dd” もしくは - “yyyy-MM-dd HH:mm:ss” No
startdate 削除するイベントの終点を指定する。フォーマットは同上。 No
type イベントタイプを指定して削除する。 EventTypeのフォーマット を参照 No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
deleteeventsresponse レスポンスコンテナ count, event
count レスポンスに含まれるeventオブジェクトの個数  
displaytext エラーであればメッセージを返す  
success trueであれば成功  
サンプルレスポンス
command=listEvents&type="USER.UPDATE"
{
  "listeventsresponse": {
    "count": 1,
    "event": [
      {
        "id": "a2123429-337a-4b19-8ea8-**:**:**:**",
        "username": "portal",
        "type": "USER.UPDATE",
        "level": "INFO",
        "description": "Successfully completed updating User. UserId: 391",
        "account": "cln*********",
        "domainid": "e500411b-0462-47fd-9b1f-**:**:**:**",
        "domain": "cln*********",
        "created": "2014-05-28T16:45:40+0900",
        "state": "Completed"
      }
    ]
  }
}

2.8. サービスオファリング情報 (ServiceOffering)

サービスオファリング情報(仮想サーバプラン情報)を取得するAPIです。

listServiceOfferings - サービスオファリング一覧表示

概要

サービスオファリング(仮想サーバーのプラン)の一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Service OfferingのIdを指定する No
keyword 任意キーワードによる検索条件の付与 No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する。(default: 500) No
name Service Offering名 No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listserviceofferingsresponse レスポンスコンテナ count, serviceoffering
count レスポンスに含まれるServiceOfferingオブジェクトの個数  
serviceoffering ServiceOfferingオブジェクトを格納するコンテナ id, name, displaytext, cpunmber, cpuspeed, memory, created, storagetype, offerha, limitcpuuse, tags, domainid, domain, hosttag, issytem, defaultuse
id Service Offeringのid  
name Service Offering名  
displaytext Service Offeringの表示名  
cpunumber 仮想サーバーのCPUの数  
cpuspeed 仮想サーバーのCPUのclock speed (MHz)  
memory 仮想サーバーに搭載されたメモリ  
created Service Offeringとして登録された日付  
storagetype “Shared”  
offerha 高可用性機能をサポートしているか否か  
limitcpuuse 常に”true”  
tags タグ情報  
domainid 管理ドメインのID  
domain 管理ドメイン名  
hosttags タグ情報  
issystem FALSE  
defaultuse FALSE  
サンプルレスポンス
{
  "listserviceofferingsresponse": {
    "count": 1,
    "serviceoffering": [
      {
        "id": "**:**:**:****:**:**:**f6c1dfc8",
        "name": "t1.micro",
        "displaytext": "Plan vQ (0.25CPU / 0.5GB RAM)",
        "cpunumber": 1,
        "cpuspeed": 400,
        "memory": 512,
        "created": "2013-03-21T10:26:09+0900",
        "storagetype": "shared",
        "offerha": true,
        "limitcpuuse": true,
        "tags": "pattern-S1",
        "domainid": "**:**:**:****:**:**:**a6b3fa1e",
        "domain": "ComRetail",
        "hosttags": "pattern-H1",
        "issystem": false,
        "defaultuse": false
      }
    ]
  }
}

2.9. ディスクオファリング情報 (DiskOffering)

ディスクオファリング情報(仮想ディスクプラン情報)を取得するAPIです。

listDiskOfferings - ディスクオファリング一覧表示

概要

ディスクオファリング(仮想ディスクのプラン)の一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id Disk OfferingのIdを指定する No
keyword 任意キーワードによる検索条件の付与 No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する.(default: 500) No
name Disk offering名 No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listdiskofferingsresponse レスポンスコンテナ count, diskoffering
count レスポンスに含まれるServiceOfferingオブジェクトの個数  
diskoffering DiskOfferingオブジェクトを格納するコンテナ id, name, displaytext, disksize, created, storagetype, tags, domainid, domain, iscustomized
id Disk Offering のid  
name Disk Offering名  
displaytext Disk Offeringの表示名  
disksize Diskのサイズ(GB)  
created Disk Offeringとして登録された日付  
storagetype “Shared”  
tags タグ情報  
domainid 管理ドメインのID  
domain 管理ドメイン名  
iscustomized custom sizeに対応しているか否か  

2.10. ゾーン情報 (Zone)

ゾーン情報を取得するAPIです。

listZones - ゾーン情報一覧

概要

ゾーン情報の一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id ZoneのIdを指定する No
keyword 任意キーワードによる検索条件の付与 No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する.(default: 500) No
name Disk offering名 No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listzonesresponse レスポンスコンテナ count, serviceoffering
count レスポンスに含まれるServiceOfferingオブジェクトの個数  
zone zoneオブジェクトを格納するコンテナ id, name, displaytext, cpunmber, cpuspeed, memory, created, storagetype, offerha, limitcpuuse, tags, domainid, domain, hosttag, issytem, defaultuse
id zoneのid  
name zone名  
created Service Offeringとして登録された日付  
domainid 管理ドメインのID  
domain 管理ドメイン名  
domainname 管理ドメイン名  
networktype “Basic”  
securitygroupsenabled セキュリティグループ機能が有効か否か  
allocationstate クラスタの割当状況  
zonetoken Zone token  
localstorageenabled ローカルストレージの利用可否  
サンプルレスポンス
{
  "listzonesresponse": {
    "count": 2,
    "zone": [
      {
        "id": "**:**:**:****:**:**:**2de8fccd",
        "name": "jp-e1a",
        "domain": "e1a.internal",
        "domainid": 6,
        "domainname": "ComRetail",
        "networktype": "Basic",
        "securitygroupsenabled": true,
        "allocationstate": "Enabled",
        "zonetoken": "**:**:**:****:**:**:**85784908",
        "dhcpprovider": "VirtualRouter",
        "localstorageenabled": false
      },
      {
        "id": "**:**:**:****:**:**:**ed875e76",
        "name": "jp-e1b",
        "domain": "e1b.internal",
        "domainid": 6,
        "domainname": "ComRetail",
        "networktype": "Basic",
        "securitygroupsenabled": true,
        "allocationstate": "Enabled",
        "zonetoken": "**:**:**:****:**:**:**78c9786e",
        "dhcpprovider": "VirtualRouter",
        "localstorageenabled": false
      }
    ]
  }
}

2.11. OS情報 (Os)

仮想サーバーで利用可能なOS情報を取得するAPIです。

listOsCategories - OSカテゴリ一覧表示

概要

OSカテゴリ (OSタイプのカテゴリ) の一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
id OSカテゴリのIDを指定します No
keyword キーワードを指定します No
name OSカテゴリの名前を指定します No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する。(default: 500) No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listostypesresponse レスポンスコンテナ count, oscategories
count レスポンスに含まれるServiceOfferingオブジェクトの個数  
oscategories レスポンスコンテナ id, oscategoryid, description
OsType
Node名 説明 子Node
id OSカテゴリのID  
name OSカテゴリの名前  
サンプルレスポンス
{
  "listoscategoriesresponse": {
    "count": 10,
    "oscategory": [
      {
        "id": "1",
        "name": "CentOS"
      },
      {
        "id": "2",
        "name": "Debian"
      },
      {
        "id": "3",
        "name": "Oracle"
      },
      {
        "id": "4",
        "name": "RedHat"
      },
      {
        "id": "5",
        "name": "SUSE"
      },
      {
        "id": "6",
        "name": "Windows"
      },
      {
        "id": "7",
        "name": "Other"
      },
      {
        "id": "8",
        "name": "Novel"
      },
      {
        "id": "9",
        "name": "Unix"
      },
      {
        "id": "10",
        "name": "Ubuntu"
      }
    ]
  }
}

listOsTypes - OSタイプ一覧表示

概要

OSタイプ (仮想サーバー作成時に使用可能なOSタイプ) の一覧を取得する。

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
description OSタイプの説明を指定する No
id OSタイプのID指定する No
keyword キーワードを指定する No
oscategoryid カテゴリIDで指定する No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時に指定する。(default: 500) No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listostypesresponse レスポンスコンテナ count, ostype
count レスポンスに含まれるServiceOfferingオブジェクトの個数  
ostype レスポンスコンテナ id, oscategoryid, description
OsType
Node名 説明 子Node
id OSタイプのID  
description OSタイプの説明  
oscategoryid OSカテゴリのID  
サンプルレスポンス
{
  "listostypesresponse": {
    "count": 1,
    "ostype": [
      {
        "id": "69",
        "oscategoryid": "7",
        "description": "Asianux 3(32-bit)"
      }
    ]
  }
}

2.12. 非同期API処理 (AsyncJob)

非同期API処理を行うAPIです。

queryAsyncJobResult - 非同期APIの状態確認

概要

非同期APIの実行状態および結果を追跡・確認する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
jobid 非同期APIメソッドを実行した際に、返り値として渡されるjobiidを指定する Yes
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
queryasyncjobresultresponse レスポンスコンテナ accountid, userid, cmd, jobstatus, jobporcstatus, jobresultcode, jobresulttype, jobresult, created, jobid
accountid 当該非同期APIのクエストを実行したアカウントのID  
userid 当該非同期APIのクエストを実行したユーザのID  
cmd 実行したコマンド(メソッド)  
jobstatus jobのステータス  
jobprocstatus jobの進捗に関するステータス  
jobresultcode 当該ジョブの実行結果コード  
jobresulttype 実行結果の形式  
jobresult 実行したジョブ、呼び出した非同期メソッドにより異なる  
created ジョブとして登録された日時  
jobid 非同期APIメソッドを実行した際に、 返り値として渡されるjobiid  
サンプルレスポンス
{
  "queryasyncjobresultresponse": {
    "accountid": "**:**:**:****:**:**:**21ee72a4",
    "userid": "**:**:**:****:**:**:**84a98eb6",
    "cmd": "com.cloud.api.commands.DeleteTemplateCmd",
    "jobstatus": 1,
    "jobprocstatus": 0,
    "jobresultcode": 0,
    "jobresulttype": "object",
    "jobresult": {
      "success": true
    },
    "created": "2014-07-23T15:34:00+0900",
    "jobid": "**:**:**:****:**:**:**103b0cb9"
  }
}

listAsyncJobs - 非同期job一覧

概要

非同期APIが実行されている、処理中のリクエストの一覧を取得する

リクエストパラメータ一覧

リクエストパラメータ一覧
パラメータ名 説明 必須
domainid ドメインIDを指定する。指定することにより、指定したドメイン以下の情報に絞り込む No
account 指定したアカウントに属する情報に絞り込む。domainidと同時に利用する No
isrecursive true/ falseで指定する(default false)。 trueを指定した場合、sub domainの情報も検索の対象に含める No
keyword キーワードを指定し、キーワードによる検索を実施する No
listall true/ falseで指定する(default false). zoneidとisrecursive=trueと設定した場合に等しい No
page pagesizeと同時に指定して、ページ番号を指定する No
pagesize 一度のリクエストに含めるレスポンス(非同期ジョブ)の個数を指定する。pageと同時にしていする.(default: 500) No
startdate 非同期ジョブの実行開始日時を指定する。 No
レスポンス
レスポンス (Body)

形式:XMLまたはjson

Response(Body)
Node名 説明 子Node
listasyncjobsresponse レスポンスコンテナ count, asyncjobs
count レスポンスに含まれる非同期jobオブジェクトの個数  
asyncjobs 当該非同期jobを格納するコンテナ accountid, userid, cmd, jobstatus, jobporcstatus, jobresultcode, jobresulttype, jobresult, created, jjobid
accountid 当該非同期APIのクエストを実行したアカウントのID  
userid 当該非同期APIのクエストを実行したユーザのID  
cmd 実行したコマンド(メソッド)  
jobstatus jobのステータス  
jobprocstatus jobの進捗に関するステータス  
jobresultcode 当該ジョブの実行結果コード  
jobresulttype 実行結果の形式  
jobresult 実行したジョブ/呼び出した非同期メソッドにより異なる  
created ジョブとして登録された日時  
jobid 非同期APIメソッドを実行した際に、 返り値として渡されるjobid  
サンプルレスポンス
{
  "listasyncjobsresponse": {
    "count": 1,
    "asyncjobs": [
      {
        "accountid": "**:**:**:****:**:**:**21ee72a4",
        "userid": "**:**:**:****:**:**:**84a98eb6",
        "cmd": "com.cloud.api.commands.DestroyVMCmd",
        "jobstatus": 1,
        "jobprocstatus": 0,
        "jobresultcode": 0,
        "jobresulttype": "object",
        "jobresult": {
          "virtualmachine": {
            "id": "**:**:**:****:**:**:**c6644b79",
            "name": "**:**:**:****:**:**:**c6644b79",
            "displayname": "**:**:**:****:**:**:**c6644b79",
            "account": "cln*********",
            "domainid": "**:**:**:****:**:**:**f82721bb",
            "domain": "cln*********",
            "created": "2014-07-10T14:23:44+0900",
            "state": "Destroyed",
            "haenable": true,
            "zoneid": "**:**:**:****:**:**:**2de8fccd",
            "zonename": "jp-e1a",
            "templateid": "**:**:**:****:**:**:**e25b0e12",
            "templatename": "CentOS 6.3 64 bit",
            "templatedisplaytext": "CentOS 6.3 64 bit",
            "passwordenabled": true,
            "serviceofferingid": "**:**:**:****:**:**:**f6c1dfc8",
            "serviceofferingname": "t1.micro",
            "cpunumber": 1,
            "cpuspeed": 400,
            "memory": 512,
            "guestosid": "144",
            "rootdeviceid": 0,
            "rootdevicetype": "Not created",
            "securitygroup": [
              {
                "id": "**:**:**:****:**:**:**d596adf4",
                "name": "default",
                "description": "Default Security Group"
              }
            ],
            "nic": [
              {
                "id": "**:**:**:****:**:**:**22cf92ba",
                "networkid": "**:**:**:****:**:**:**ba92f5e2",
                "traffictype": "Guest",
                "type": "Shared",
                "isdefault": true
              }
            ],
            "hypervisor": "KVM",
            "tags": []
          }
        },
        "created": "2014-07-20T21:29:46+0900",
        "jobid": "**:**:**:****:**:**:**8238885f"
      }
    ]
  }
}

3. AmazonWebService EC2互換API

AmazonWebService EC2互換のAPIについて説明します。

3.1. AWS SDK for Java を利用する

Cloudn Compute FLATタイプではAmazonWebService EC2互換APIを提供しています。 以下では、例としてAWS SDK for Java を利用し、仮想サーバーの情報を表示するコマンド「ec2-describe-images」を実行し、 イメージファイルを取得する手順について説明します。

環境の準備

AWS SDK for Java を実行するために必要なパッケージをインストールします。 主なパッケージは下記の 4 つです。

  • Git

    • AWS SDK for Java のダウンロード、バージョンの管理をするために利用します
  • Java(Java 6 以上)

    • AWS SDK for Java の実行するために利用します
  • Maven

    • AWS SDK for Java のソースコードをパッケージングするために利用します
  • Ant

    • 作成した Java ファイルのライブラリ依存を簡単にするために利用します

上記のうちまず Maven 以外をインストールします。

  • RedHat、CentOS
# yum install git java-1.6.0-openjdk java-1.6.0-openjdk-devel ant
  • Debian、Ubuntu
# apt-get install openjdk-6-jdk unzip ant

Maven をダウンロードし、ホームディレクトリの temporary ディレクトリ以下に置きます。

$ mkdir ~/temporary
$ cd ~/temporary
$ wget http://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.zip
$ unzip apache-maven-3.2.2-bin.zip

“Not found” など apache-maven-3.2.2-bin.zip が存在しないというエラーが表示された場合、 Maven の HP からダウンロードしてください。

AWS SDK for Java の準備

AWS SDK for Java のソースコードを git を使いダウンロードします。

$ git clone https://github.com/aws/aws-sdk-java
aws-sdk-java のバージョンを 1.8.3 にし、また Cloudn で使えるようにソースコードを(sed を使い)編集します。
git checkout を実行した際に警告文が出ますが、問題はありません。
(古いバージョンを用いているために発生するメッセージです)
$ cd aws-sdk-java
$ git checkout 1.8.3
$ sed -i -e "s/\"2014-05-01\"/\"2012-08-15\"/g" ./src/main/java/com/amazonaws/services/ec2/model/transform/*.java

次に Maven を使って、 AWS SDK for Java のコンパイル・パッケージングを行います。

$ ~/temporary/maven/bin/mvn package

成功すれば、~/temporary/aws-sdk-java/target/ にパッケージファイル(aws-java-sdk-1.8.3.jar)が作成されます。

AWS SDK for Java に必要なライブラリのダウンロード

AWS SDK for Java はサードパーティ製のライブラリを使用するため、 そのライブラリを準備する必要があります。 自前で必要なライブラリを準備しても構いませんが、 簡単のため、AWS SDK for Java に付随しているライブラリを使います。

まず、AWS SDK for Java のパッケージを Amazon Web Services の HP からダウンロードし、zip ファイルを展開します。

$ cd ~/temporary
$ wget http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip
$ unzip ./aws-java-sdk.zip –d ./aws-temp

必要なライブラリは ~/temporary/aws-temp/third-party のディレクトリ配下に存在するため、次の節でライブラリを移動します。

AWS SDK for Java の実行

以上の作業により、AWS SDK for Java を動かす準備が出来ました。 ここから実際にAWS SDK for Javaを実行します。

作業用ディレクトリの準備

まず、AWS SDK を動かすソースコードを配置する作業用のディレクトリを作ります。 場所はどこでも問題ありませんが、 このリファレンスではホームディレクトリ配下に my-aws-sdk-java という名のディレクトリを作り、 そのディレクトリ内で必要なライブラリなどを完結するようにします。 これから作るディレクトリ構造を簡単に示します。

~/
└── my-aws-sdk-java
     ├── lib                    <<== ライブラリ(xxx.jar)用を配置するディレクトリ
     ├── src                    <<== 自分で準備したソースコード群を配置するディレクトリ
     │   └── TrialOfApi        <<== 実際にソースコードを置くディレクトリ
     └── bin                    <<== コンパイルしたファイルを配置するディレクトリ(基本的には触らない)

上記のディレクトリに従いディレクトリをつくります。

$ cd
$ mkdir my-aws-sdk-java
$ cd my-aws-sdk-java
$ mkdir lib src bin src/TrialOfApi

前の節までで準備したライブラリ(xxx.jar)を作業用のディレクトリにコピーします。

$ cp ~/temporary/aws-temp/third-party/*/*.jar ./lib/
$ cp ~/temporary/aws-sdk-java/target/aws-java-sdk-1.8.3.jar ./lib
ソースコードの作成

続いて、API を実行するプログラムのソースコードを準備します。 以下のソースコードをディレクトリ TrialOfApi に配置します。

[~/my-aws-sdk-java/src/TrialOfApi/MySession.java]
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import com.amazonaws.ClientConfiguration;
import com.amazonaws.Protocol;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.ec2.AmazonEC2;
import com.amazonaws.services.ec2.AmazonEC2Client;

public class MySession {
    AmazonEC2      ec2;
    final static String CREDENTIAL_PATH = "credentials";
    final static String URL_PATH = "URL.properties";

    public MySession() {
        InputStream inStream = null;

        try{

            // Read Credensial File
            File crefile = new File(CREDENTIAL_PATH);
            PropertiesCredentials pc = new PropertiesCredentials(crefile);


            ClientConfiguration clientconf = new ClientConfiguration();
            clientconf.setProtocol(Protocol.HTTPS);

            // Create AmazonEC2Client
            ec2 = new AmazonEC2Client(pc, clientconf);

            // Set URL to API Server
            inStream = new FileInputStream(new File(URL_PATH));
            Properties prop = new Properties();
            prop.load(inStream);
            String apiEndPoint = prop.getProperty("COM_URL");
            System.out.println("URL =[" + apiEndPoint + "]");

            ec2.setEndpoint(apiEndPoint);

        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try{
                inStream.close();
            } catch (IOException ioe) {
                System.out.println("InputStream Close Error");
                ioe.printStackTrace();
            }
        }
    }
}
[~/my-aws-sdk-java/src/TrialOfApi/FirstTrial.java]
import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.ec2.AmazonEC2;
import com.amazonaws.services.ec2.model.DescribeImagesRequest;
import com.amazonaws.services.ec2.model.DescribeImagesResult;

public class FirstTrial {

    public static void main(String[] args) throws Exception {

        System.out.println("Start Trial of describeImages!");

        // make a object for session into cloudn
        AmazonEC2 ec2 = new MySession().ec2;

        try {

            DescribeImagesRequest imagesRequest = new DescribeImagesRequest();

            // Execute describeImage
            // The result is stored in imageResult
            DescribeImagesResult imageResult = ec2.describeImages(imagesRequest);

            // Output the result
            System.out.println("Result is as follows");
            System.out.println(imageResult.toString());

        } catch (AmazonServiceException ase) {
            // Write out any exceptions that may have occurred.
            System.out.println("Caught Exception!");
            System.out.println("Message: " + ase.getMessage());
            System.out.println("Status Code: " + ase.getStatusCode());
            System.out.println("Error Code: " + ase.getErrorCode());
            System.out.println("Request ID: " + ase.getRequestId());
        }
    }
}
[~/my-aws-sdk-java/src/TrialOfApi/URL.properties]
# East Japan DC
COM_URL = https://comp-apia.jp-e1.cloudn-service.com/awsapi
[~/my-aws-sdk-java/src/TrialOfApi/credentials]
accessKey = ppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
secretKey = sssssssssssssssssssssssssssssssssssssssssssssssssssssssss
ソースコードのコンパイル・実行

以上でソースコードの準備は完了です。 コンパイルと実行を行います。

ライブラリなどの設定を簡単に行うために、事前にインストールした ant を使います。 ant は(特に設定を入れなければ)build.xml ファイルに書きこまれた設定に従い、 ソースコードのコンパイルや Java プログラムの実行などを行います。

ですので、先ほど作成したソースコードに合わせてディレクトリ TrialOfApi に build.xml を作ります。

[~/my-aws-sdk-java/src/TrialOfApi/build.xml]
<project name="TrialOfApi" default="FirstTrial" basedir=".">
<!--    Setting of library files    -->
    <path id="aws.java.sdk.classpath">
        <fileset dir="../../lib" includes="*.jar"/>
            <pathelement location="."/>
    </path>
<!--    Compile source codes    -->
    <target name="build">
        <javac includeantruntime="false" srcdir="." destdir="." classpathref="aws.java.sdk.classpath"/>
    </target>
<!--    Execute a program    -->
    <target name="FirstTrial" depends="build">
        <java classname="FirstTrial" classpathref="aws.java.sdk.classpath" fork="true"/>
    </target>
</project>

そして、ant を使ってビルド・実行を行います。

$ ant build
(中略)
BUILD SUCCESSFUL
Total time: ** seconds

$ ant FirstTrial
(中略、実行結果が表示される)
BUILD SUCCESSFUL
Total time: ** seconds

上記で HyperVisor、Tags・・・などの文字列が表示されていれば、API リクエストの実行が成功しています。

注釈

~/temporary ディレクトリを消去して頂いても問題はありません。 また、maven がダウンロードしたパッケージ群がディレクトリ ~/.m2 配下にありますので、このフォルダを消去しても問題ありません。

注釈

引数付の API を実行したい場合、例えば以下のソースコードのように xxxxRequest オブジェクトに メソッド withXxxx または setXxxx を呼び出します。

DescribeImagesRequest imagesRequest = new DescribeImagesRequest()
    .withImageIds("xxxxxxxxxxxxxxxxxxxxxxxxxx") // String of an id
    .withOwners("admin");                       // String of user

3.2. AmazonWebService EC2互換API一覧

本サービスにて提供しているAPIは下記となります。

仮想サーバー操作

Instances
説明 API 必須パラメータ
仮想サーバーの一覧表示 describeInstances
仮想サーバーの情報表示 describeInstanceAttribute Attribute, InstanceId
仮想サーバーの作成 runInstances ImageId, MaxCount, MinCount
仮想サーバーの再起動 rebootInstances InstanceIds
仮想サーバーの起動 startInstances InstanceIds
仮想サーバーの停止 stopInstances InstanceIds
仮想サーバーの削除 terminateInstances

テンプレート (Image) 操作

Template(Image)
説明 API 必須パラメータ
テンプレートの一覧表示 describeImages
テンプレートの情報表示 describeImageAttribute
テンプレートの作成 createImage
テンプレートの登録 registerImage ImageLocation
テンプレートの削除 deregisterImage ImageId
テンプレートの公開範囲の変更 modifyImageAttribute
変更を行ったテンプレートをリセットする resetImageAttribute

スナップショット操作

Snapshots
説明 API 必須パラメータ
スナップショットの作成 createSnapshot VolumeId
スナップショットの削除 deleteSnapshot SnapshotId
スナップショットの一覧表示 describeSnapshots

ディスク操作

Volumes
説明 API 必須パラメータ
ディスクのアタッチ attachVolume Device, InstanceId (and, or) VolumeId
ディスクの削除 deleteVolume VolumeId
ディスクの一覧表示 describeVolumes
ディスクのデタッチ detachVolume InstanceId (or) VolumeId

Tag操作

Tags
説明 API 必須パラメータ
Tagの一覧 describeTags
Tagの追加 createTags Resoueces, Tags
Tagの削除 deleteTags

セキュリティグループ操作

SecurityGroup
説明 API 必須パラメータ
セキュリティグループ一覧の表示 describeSecurityGroup
セキュリティグループの追加 createSecurityGroup GroupName
セキュリティグループの削除 deleteSecurityGroup

キーペア操作

KeyPair
説明 API 必須パラメータ
登録されているキーペアの一覧を表示する describeKeyPairs
キーペアを作成する createKeyPair Keyname
キーペアをインポートする importKeyPair KeyName, PublicKeyMaterial
キーペアを削除する deleteKeyPair KeyName