14 Oracle ComputeのREST API
この章では、様々なREST APIについて説明します。内容は次のとおりです。
REST APIツールの使用
REST APIツールを使用するには、次のステップに従います。
-
RESTツール(ChromeのPostmanプラグインなど)を使用して、Oracle Compute Webサービスにアクセスします。Oracle Compute Webサービスのエントリは https://hostname:port>/em/websvcs/restful/extws/virtualization/infrastructureです。APIを呼び出す前に、信頼できるEnterprise Manager証明書を使用する必要があります。
-
認可ヘッダーを設定し、 Basic認証を使用して、Enterprise Managerのユーザー名とパスワードを入力し、 ヘッダーのリフレッシュをクリックします。
-
リクエストを実行するには、 Accept または Content-Type ヘッダーの値を application/json に設定します。
次の表では、OPCMオブジェクトに使用できるREST HTTPメソッドについて説明します。
表14-1 Rest HTTPメソッド
メソッド | 説明 |
---|---|
POST |
リクエスト本文のJSON形式のデータを使用してオブジェクトを作成します。 |
GET |
リクエストURIで指定されたオブジェクトに関する情報を取得します。 |
PUT |
リクエスト本文のJSON形式のデータを使用して属性を更新します。 |
DELETE |
リクエストURIで指定されたオブジェクトを削除します。 |
RESTリソースの概要
この項では、RESTリソースの概要について説明します。
表14-2 ターゲット・タイプ別のRESTリソース
ターゲット・タイプ | URL |
---|---|
Oracle Computeサイト |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites |
クラスタ |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/clusters |
仮想化プラットフォーム |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/virtualplatforms |
仮想サーバー |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/virtualservers |
物理サーバー |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/physicalservers |
オーケストレーション |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services |
表14-3 サイトのネットワーク・リソース
ネットワーク・リソース | URL |
---|---|
サービス・ネットワーク |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/servicenetworks |
vEthernet |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vethernets |
サブネット |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vnets |
IP予約 |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vnetreservations |
サブネット・アクセス |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vnetaccess |
表14-4 サイトの記憶域リソース
記憶域リソース | URL |
---|---|
記憶域プール |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/storagepools |
記憶域ボリューム |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/storagevolumes |
表14-5 サイトのテナントおよびイメージ管理リソース
リソース | URL | サポートされる操作 | コメント |
---|---|---|---|
テナント |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/tenants |
GET、POST、PUT |
該当なし |
ユーザー |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/users |
GET、POST、PUT、DELETE |
該当なし |
Quota |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/quotas |
GET、POST、PUT、DELETE |
該当なし |
イメージ・テンプレート |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/templates |
GET、DELETE |
該当なし |
イメージ・テンプレート |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/templates/swlib |
POST |
ソフトウェア・ライブラリ・コンポーネントのURNを使用してソフトウェア・ライブラリ経由でテンプレートを追加するAPI。 |
ソフトウェア・ライブラリ・コンポーネント |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/swlibcomponents |
GET |
アップロードされたソフトウェア・ライブラリ・コンポーネントのコンポーネントURNを取得します。 |
オーケストレーションで必要なサービス・リクエスト、サービス提供およびサービス・インスタンスの作成および表示に使用するクラウド・フレームワーク・リソース。
表14-6 クラウド・フレームワーク・リソース
CFWリソース | URL | サポートされる操作 | コメント |
---|---|---|---|
サービス・タイプ |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicetypes/ |
GET |
オーケストレーションには不要ですが、サービス・タイプの取得には必要です。ORACLE_NIMBULA_ORCHESTRATION_SERVICEを探してください。 |
サービス |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/ |
GET、POST |
POSTはサービスの作成に使用します(この場合はオーケストレーション)。GETはGUIDのようなPOSTリクエストに要求されたサービス情報の取得に使用します。 |
サービス・メタデータ |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceguid}/metadata |
GET |
オーケストレーション・ジョブ・パラメータの取得にはこれを呼び出す必要があり、パラメータを「サービスの作成」を呼び出すリクエストJSON(サービスのPOST)の構築に使用します。 |
サービス・インスタンス |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/ |
GET |
ログイン・ユーザーのすべてのインスタンスを取得し、また、インスタンスGUIDの取得に使用されます。 |
サービス・インスタンス |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceguid} |
GET、PUT |
GETはインスタンスの詳細を取得します。PUTはサービス・インスタンスでアクションを実行するために使用されます(アクションIDが必要)。 |
サービス・アクション |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceguid}/actions/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceguid}/actions/{actionid} |
GET |
GETはサービス・インスタンスのアクションIDを持つすべてのアクションを返します。GETはサービス・インスタンスのアクションの呼出しに必要なアクションの入力を返します。 |
サービス・リクエスト |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests |
GET |
サービス・リクエストを取得します。 |
サービス・リクエスト |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid} |
GET、PUT、DELETE |
GETはサービス・リクエストの詳細を取得します。PUTはリクエストを再スケジュールします。DELETEはリクエストを削除します。 |
サポートされているユースケース
オーケストレーションのユースケース
オーケストレーションのユース・ケースは次のとおりです。
オーケストレーションの作成
オーケストレーションを作成するには、次のステップに従ってCFWリソースを使用して一連の呼出しを作成する必要があります。
- サービスGUIDをGETで取得するためのサービスを呼び出します。
URL: CFW表を参照し、 https://Hostname:port を接頭辞として付けます。
https://<hostname:port>/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/
入力: なし
出力:
{"name":"Services","type":"Service","totalResults":2,"cfwItems":[{"id":"1","nam e":"ORACLE_NIMBULA_ORCHESTRATION_ TEMPLATE","displayName":"Orchestration","guid":"0E1D6A8E12B70BB5E05303B7F00AE6C 0","serviceType":"ORACLE_NIMBULA_ORCHESTRATION _SERVICE","serviceFamily":"NIMBULA_INFRASTRUCTURE","description":"Create a set of Oracle VM instances with customized configuration for multi-tier applications","meta":"https://<hostname:port>/em/websvcs/restful/ extws/cloudservices/ssa/cfw/v2/services/0E1D6A8E12B70BB5E05303B7F00AE6C0/metada ta","canonicalLink":{"href":"https://<hostname:port>/em/websvcs/restful/extws/ cloudservices/ssa/cfw/v2/services/0E1D6A8E12B70BB5E05303B7F00AE6C0"}},{"id":"2 ","name":"ORACLE_NIMBULA_SIMPLE_ORCHESTRATION_TEMPLATE","displayName":"Simple Orchestration","guid":"0E1D6A8E12BA0BB5E05303B7F00AE6C0","serviceType":"ORACLE _NIMBULA_ORCHESTRATION_SERVICE","serviceFamily":"NIMBULA _INFRASTRUCTURE","description":"Create one or more Oracle VM instances with default configuration and minimum inputs","meta":"https://<hostname:port>/em/websvcs/restful/extws/cloudservices /ssa/cfw/v2/services/0E1D6A8E12BA0BB5E05303B7F00AE6C0/metadata","canonicalLink ":{"href":"https://<hostname:port>/em/websvcs/restful/extws/cloudservices/ssa/ cfw/v2/services/0E1D6A8E12BA0BB5E05303B7F00AE6C0"}}],"canonicalLink":{"href":" https://<hostname:port>/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serv ices"},"selfLink":{"href":"https://<hostname:port>/em/websvcs/restful/extws/cl oudservices/ssa/cfw/v2/services"}}
- 前述の出力されたメタ・リンクを使用し、サービスのメタデータを取得して入力を構成します。
URL: ステップ1で出力されたGUIDを使用して、サービス・メタデータを指定します。
入力: なし
出力:
{"configurations":[{"name":"requestId","type":"STRING","description":"Cloud Framework Request ID","required":false,"secret":false},{"name":"orch_plan _swlib_urn","type":"STRING","description":"Orchestration Plan Software Library Component URN","required":false,"secret":false},{"name":"orch _plan","type":"LARGEDATA","description":"Orchestration Plan","required":false,"secret":false},{"name":"site _name","type":"STRING","description":"Oracle Nimbula Site","required":true,"secret":true}],"canonicalLink":{"href":"<hostname:port> /em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/0E1D6A8E12B70BB5E0 5303B7F00AE6C0/metadata"},"selfLink":{"href":"https://<hostname:port>/em/websv cs/restful/extws/cloudservices/ssa/cfw/v2/services/0E1D6A8E12B70BB5E05303B7F00 AE6C0/metadata"},"instanceName":"<user-input>"}
- ステップ2のレスポンス・パラメータを使用して入力を構築することにより、オーケストレーション・サービス・インスタンスの作成を呼び出します。
URL: サービスのURLをPOSTで使用します。
入力: オーケストレーション・プラン(orch_plan)を入力として使用し、(イメージ・リスト名、形状名、ネットワーク、記憶域などの)サイトに対応する値を使用してXMLを構築します。すべてのObjectPlanに対して同じ手順を繰り返し、適切なsite_nameの値を指定します。
XML
{"offeringId": "0E1D6A8E12BA0BB5E05303B7F00AE6C0", "name": "/cloud/public/OrchtestUi","instanceName": "/cloud/public/OrchtestUi", "configurations":[{"name":"orch_plan","value":"<?xml version="1.0" encoding="windows-1252" standalone="yes"?><ns2:ConfigurationData xmlns:ns2="http://www.oracle.com/sysman/vi/VIDeploymentPlan" version="0.0.2"><Type>NimbulaImage</Type><PassThroughMode>false</PassThroughMode><OrchestrationDeployment namePrefix="/cloud/public/OrchtestUi"><InstallEMAgent>false</InstallEMAgent><ObjectPlanDependencyList/><ObjectPlanList><ObjectPlan label="Lp1"><Type>launchplan</Type><HAPolicy value="none"/><ObjectMemberList><ObjectMember xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:LaunchPlanMemberType"><NumberOfInstances>1</NumberOfInstances><ImageList>/oracle/public/linux5_12.2.1.0.0_64</ImageList><ImageListEntry>1</ImageListEntry><DeploymentTarget><Name>slce03</Name><Type>oracle_nimbula_site</Type></DeploymentTarget><DefaultConfiguration><Label>Lp1</Label><ImageList >/oracle/public/linux5_12.2.1.0.0_64</ImageList><Shape><Name>mini</Name><Id>small</Id></Shape><Account/><Quota><Name>quota</Name></Quota><Priority>priority</Priority><Tags></Tags><PlacementRequirements></PlacementRequirements><HaEnabled>false</HaEnabled><Virtio>false</Virtio><Nics><NetworkInterface name="net0" fromDefinition="false"><VethernetId>/elcontrol/public/vnet-IPoIB-private</VethernetId></NetworkInterface></Nics><Disks/><Attributes/></DefaultConfiguration><Instances><VirtualMachine name="vm1"customConfigured="false"><InstallEMAgent>true</InstallEMAgent><CustomConfiguration><Label>vm1</Label><ImageList>/oracle/public/linux5_12.2.1.0.0_64</ImageList><Shape><Name>mini</Name><Id>mini</Id></Shape><Account/><Quota><Name>quota</Name></Quota><Priority>priority</Priority><Tags></Tags><PlacementRequirements></PlacementRequirements><HaEnabled>false</HaEnabled><Virtio>false</Virtio><Nics><NetworkInterface name="net0" fromDefinition="false"><Vnet>/elcontrol/public/vnet-IPoIB-private</Vnet></NetworkInterface></Nics><Disks ><diskname="disk1"fromDefinition="false"></disk></Disks><Attributes/></CustomConfiguration></VirtualMachine></Instances><AffinityRelationshipList/></ObjectMember></ObjectMemberList></ObjectPlan></ObjectPlanList></OrchestrationDeployment></ns2:ConfigurationData>"},{"name":"site_name","value":"nimbsite1"}]}
出力: リクエストが成功した場合、サービスID。成功しなかった場合、サービス・リクエストURLを使用してサービス・リクエストのステータスを確認します。
オーケストレーション・アクションの実行
オーケストレーション・アクションを実行するステップは、次のとおりです。
-
インスタンスIDを取得します。
URL: サービス・インスタンスのURLでGETを使用し、?expanded=true -を追加します。
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?expanded=true
入力: なし
出力:
{"name" : "Service Instances","type" : "Service Instance","totalResults" : 1,"canonicalLink" : {"href" :"https:/hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servi ceinstances"},"cfwItems" : [{"name" : "del_2","guid" : "51087FBC61473C5477167DAAB6BD1871","serviceFamily" :"NIMBULA _INFRASTRUCTURE","serviceType" : "ORACLE_NIMBULA_ORCHESTRATION _SERVICE","status" : "STATUS_UP","canonicalLink" : {"href" :"https:/hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servi ceinstances/51087FBC61473C5477167DAAB6BD1871"}}]}
-
実行するアクションのIDを取得します。
URL: GETを使用してサービス・アクションを起動します。
https:/hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/51087FBC61473C5477167DAAB6BD1871/actions
入力: なし
出力:
{"name":"Actions","type":"Action","totalResults":8,"cfwItems":[{"id":"2","name ":"DELETE","displayName":"Delete Orchestration","description":"Delete Nimbula Orchestration"},{"id":"4","name":"START","displayName":"Start Orchestration","description":"Start Oracle Compute Orchestration"},{"id":"5","name":"STOP","displayName":"Stop Orchestration","description":"Stop Oracle Compute Orchestration"},{"id":"6","name":"SHUTDOWNORCHESTRATION","displayName":"Shutdo wn Orchestration","description":"Shutdown Oracle Nimbula Orchestration"},{"id":"7","name":"RESTARTORCHESTRATION","displayName":"Restart Orchestration","description":"Restart Oracle Nimbula Orchestration"},{"id":"8","name":"DESTROYORCHESTRATION","displayName":"Destroy Orchestration","description":"Destroy Oracle Nimbula Orchestration"},{"id":"9","name":"UPDATEORCHESTRATION","displayName":"Update Orchestration","description":"Update Oracle Nimbula Orchestration"},{"id":"10","name":"SNAPSHOT","displayName":"Snapshot VM Instance","description":"Snapshot VM Instance"}],"canonicalLink":{"href":"/em/websvcs/restful/extws/cloudservices/s sa/cfw/v2/serviceinstances/51087FBC61473C5477167DAAB6BD1871/actions"},"selfLin k":{"href":"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstance s/51087FBC61473C5477167DAAB6BD1871/actions"}}
-
アクションの入力を取得します。
URL: ステップ2で出力されたアクションIDを使用して、サービス・アクションURLにGETを呼び出します。
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/E8E4395513C2B72F01D91E6DB46D1701/actions/2
入力: なし
出力:
{"id":"2","name":"DELETE","displayName":"Delete Orchestration","description":"Delete Oracle Compute Orchestration","actionInputs":[{"name":"requestId","type":"STRING","description":"Cloud Framework Request ID","displayName":"requestId","required":false,"secret":false},{"name":"instance_guids","type":"VECTOR","description":"Orchestration Target GUIDs","displayName":"instance_guids","required":false,"secret":false},{"name":"instance_names","type":"VECTOR","description":"Orchestration Target Names","displayName":"instance_names","required":true,"secret":false}],"canonicalLink":{"href":"http://hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/E8E4395513C2B72F01D91E6DB46D1701/actions/2"},"selfLink":{"href":"http://hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/E8E4395513C2B72F01D91E6DB46D1701/actions/2"}}
-
アクションを起動します。前述の出力によるアクションに対する入力を用意します。前述の例では、このアクションを実行するには4つの入力パラメータが必要なため、リクエストに次の4つの要素が含まれる必要があります。{"actionId":2,"configurations":
[{"name":"requestId", "value":"7"},{"name":"site_name","value":"site1"},{"name":"instance_names","value":["/hr/public/simple1"]},{"name":"instance_guids","value":["AC7F041E430A8B913D13B1F47E652580"]}]
URL: PUTを使用してアクションを起動します。
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/E8E4395513C2B72F01D91E6DB46D1701
入力:
{"actionId":2,"configurations":[{"name":"requestId", "value":"7"},{"name":"site_name","value":"site1"},{"name":"instance_names","value":["/hr/public/simple1"]}]}
出力:
{"requests": [{"id": "4","actionName": "DELETE","canonicalLink":
{"href":"https://hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/4"}}]}
サービス・リクエストのGET URLを使用して、サービス・リクエストのステータスを確認します。
サービス・ネットワークのユース・ケース
サービス・ネットワークのユース・ケースは次のとおりです。
サービス・ネットワークの作成
説明: IPoIBサービス・ネットワークのJSONデータをPOSTします。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/servicenetworks
入力:
{
"name": "/cloud/public/svcnet",
"type": "IPoIB",
"description": "svcnet",
"foreign_partition": false,
"num_provider_nodes": 1
}
出力/レスポンス:
{
"name": "/cloud/public/svcnet",
"id": "/cloud/public/svcnet",
"type": "ipoib",
"description": "svcnet",
"pkey": "0x1027",
"pkeyFromPool": false,
"infranet": false,
"numProviderNodes": 1,
"foreignPartition": false,
"externalReferece": "http://10.128.25.146/svcnet/cloud/public/svcnet",
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/83E2FB6A3B5688FFA9E76AB78CF7762C/servicenetworks/cloud/public/svcnet",
"rel": "canonical"
}
]
}
サービス・ネットワークの更新
説明: サービス・ネットワークのURLにJSONデータをPUTします。JSONデータでの名前は、PUT URLでの名前と一致している必要があります。
メソッド: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/servicenetworks/cloud/public/svcnet
入力:
{
"name": "/cloud/public/svcnet",
"id": "/cloud/public/svcnet",
"type": "eoib",
"description": "svcnet - updated",
"pkey": "0x1028"
}
出力/レスポンス:
{
"name": "/cloud/public/svcnet",
"id": "/cloud/public/svcnet",
"type": "eoib",
"pkey": "0x1028",
"pkeyFromPool": false,
"infranet": false,
"foreignPartition": false,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/83E2FB6A3B5688FFA9E76AB78CF7762C/servicenetworks/cloud/public/svcnet/cloud/public/svcnet",
"rel": "canonical"
}
]
}
vEthernetのユースケース
vEthernetのユース・ケースは次のとおりです。
EoIB vEthernetの作成
説明: vEthernetのJSONデータをPOSTします。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/vethernets
入力:
{
"name": "/cloud/public/eoibveth",
"description": "test",
"svcnet": "/cloud/public/svcnet",
"type": "eoib",
"id": 101,
"switchports": {
"denp07sw-ib03": [
"0A-ETH-1"
],
"denp07sw-ib02": [
"0A-ETH-1"
]
}
}
出力/レスポンス:
{
"name": "/cloud/public/eoibveth",
"id": "/cloud/public/eoibveth",
"type": "eoib",
"description": "test",
"account": "/cloud/default",
"svcnet": "/cloud/public/svcnet",
"switchports": [
"\"denp07sw-ib03\" : [\"0A-ETH-1\"]",
"\"denp07sw-ib02\" : [\"0A-ETH-1\"]"
],
"infranet": false,
"externalReferece": "db://bnet/vethernet/cloud/public/eoibveth",
"vlanId": 101,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vethernets/cloud/public/eoibveth",
"rel": "canonical"
}
]
}
EoIB vEthernetの更新
説明: vEthernetのURLにJSONデータをPUTします。description、svcnet、idおよびswitchportsは編集可能です。JSONデータでの名前は、PUT URLでの名前と一致している必要があります。
ノート:
POSTリクエストのJSON形式との違いがわかります。この例では、POSTリクエストのid属性ではなく、vlanId属性が使用されています。メソッド: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/vethernets/cloud/public/eoibveth
入力:
{
"name": "/cloud/public/eoibveth",
"description": "test3",
"svcnet": "/cloud/public/svcnet",
"type": "eoib",
"vlanId": 103,
"switchports": [
"\"denp07sw-ib02\" : [\"0A-ETH-1\"]",
"\"denp07sw-ib03\" : [\"0A-ETH-1\"]"
]
}
出力/レスポンス:
{
"name": "/cloud/public/eoibveth",
"id": "/cloud/public/eoibveth",
"type": "eoib",
"description": "test3",
"account": "/cloud/default",
"svcnet": "/cloud/public/svcnet",
"switchports": [
"\"denp07sw-ib03\" : [\"0A-ETH-1\"]",
"\"denp07sw-ib02\" : [\"0A-ETH-1\"]"
],
"infranet": false,
"externalReferece": "db://bnet/vethernet/cloud/public/eoibveth",
"vlanId": 103,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vethernets/cloud/public/eoibveth/cloud/public/eoibveth",
"rel": "canonical"
}
]
}
サブネットのユースケース
サブネットのユース・ケースは次のとおりです。
EoIBサブネットの作成
説明: EoIBサブネットのJSONデータをPOSTします。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets
出力/レスポンス:
{
"name": "/cloud/public/eoibsubnet",
"id": "/cloud/public/eoibsubnet",
"description": "/cloud/public/eoibsubnet",
"gateway": "10.242.80.1",
"account": "/cloud/default",
"infranet": false,
"vethernet": "/cloud/public/eoibveth",
"cidr": "10.242.80.0/21",
"ipranges": [
"10.242.84.132",
"10.242.84.133"
],
"ethIndex": -1,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets/cloud/public/eoibsubnet",
"rel": "canonical"
}
]
IPoIBサブネットの作成
説明: IPoIBサブネットのJSONデータをPOSTします。
グローバルIPモードでのIPoIBサブネットの作成
URL:
https:/<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets
入力:
{
"name": "/cloud/public/ipoibsubnet_ip",
"vethernet": "/cloud/public/ipoibveth", //choose an IPoIB vEthernet
"description": "/cloud/public/ipoibsubnet global ip mode",
"global_ip_num": 10
}
出力/レスポンス:
{
"name": "/cloud/public/ipoibsubnet_ip",
"id": "/cloud/public/ipoibsubnet_ip",
"description": "/cloud/public/ipoibsubnet global ip mode",
"account": "/cloud/default",
"infranet": false,
"vethernet": "/cloud/public/ipoibveth",
"cidr": "192.168.96.112/28",
"ipranges": [
"192.168.96.113-192.168.96.126"
],
"global_ip_num": 14,
"ethIndex": -1,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets/cloud/public/ipoibsubnet_ip",
"rel": "canonical"
}
]
}
CIDRモードでのIPoIBサブネットの作成
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets
入力:
{
"name": "/cloud/public/ipoibsubnet_cidr",
"vethernet": "/cloud/public/ipoibveth", //choose an IPoIB vEthernet
"description": "/cloud/public/ipoibsubnet CIDR mode",
"cidr": "192.168.220.1/24",
"ipranges": [
"192.168.220.2",
"192.168.220.20"
]
}
出力/レスポンス:
{
"name": "/cloud/public/ipoibsubnet_cidr",
"id": "/cloud/public/ipoibsubnet_cidr",
"description": "/cloud/public/ipoibsubnet CIDR mode",
"account": "/cloud/default",
"infranet": false,
"vethernet": "/cloud/public/ipoibveth",
"cidr": "192.168.220.1/24",
"ipranges": [
"192.168.220.2",
"192.168.220.20"
],
"ethIndex": -1,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets/cloud/public/ipoibsubnet_cidr",
"rel": "canonical"
}
]
}
サブネットの更新
説明: サブネットのURLにJSONデータをPUTします。description、global_ip_num、cidr、gateway、iprangesおよびvethernetフィールドは編集可能です。JSONデータでの名前は、PUT URLでの名前と一致している必要があります。
メソッド: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets/cloud/public/ipoibsubnet_ip
入力:
{
"name": "/cloud/public/ipoibsubnet_ip",
"vethernet": "/cloud/public/ipoibveth", //choose an IPoIB vEthernet
"description": "/cloud/public/ipoibsubnet global ip mode - Updated",
"global_ip_num": 15
}
出力/レスポンス:
{
"name": "/cloud/public/ipoibsubnet_ip",
"id": "/cloud/public/ipoibsubnet_ip",
"description": "/cloud/public/ipoibsubnet global ip mode - Updated",
"account": "/cloud/default",
"infranet": false,
"vethernet": "/cloud/public/ipoibveth",
"cidr": "192.168.96.128/27",
"ipranges": [
"192.168.96.129-192.168.96.158"
],
"global_ip_num": 30,
"ethIndex": -1,
"links": [
{
"href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets/cloud/public/ipoibsubnet_ip/cloud/public/ipoibsubnet_ip",
"rel": "canonical"
}
]
}
IP予約のユース・ケース
-
IP予約の作成
説明: IP予約のJSONデータをPOSTします。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetreservations
入力:
{ "name": "/<tenant>/public/192_168_220_2", "ip": "192.168.220.2", "vnet": "/cloud/public/ipoibsubnet_cidr" //choose a subnet }
出力/レスポンス:
{ "name": "/satheesh/public/192_168_220_2", "id": "/satheesh/public/192_168_220_2", "used": false, "quota": "/satheesh", "ip": "192.168.220.2", "vnet": "/cloud/public/ipoibsubnet_cidr", "externalReferece": "http://10.88.235.144/vnetreservation/satheesh/public/192_168_220_2", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetreservations/satheesh/public/192_168_220_2", "rel": "canonical" } ] }
-
IP予約の削除
説明: IP予約のURLにDELETEリクエストを送信します。
メソッド: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/vnetaccess/<tenant>/public/vnetaccess_cidr
出力/レスポンス: ステータス 204 No Content
サブネット・アクセスのユース・ケース
-
サブネット・アクセスの作成
説明: サブネット・アクセスのJSONデータをPOSTします。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetaccess
入力:
{ "name": "/<tenant>/public/vnetaccess_cidr", "vnet": "/cloud/public/ipoibsubnet_cidr", //choose a subnet "provider": true }
出力/レスポンス:
{ "name": "<tenant>", "id": "<tenant>", "provider": true, "vnet": "/cloud/public/ipoibsubnet_cidr", "externalReferece": "http://10.88.235.144/vnetaccess/satheesh/public/vnetaccess_cidr", "links": [ { "href": "<tenant>", "rel": "canonical" } ] }
-
サブネット・アクセスの削除
説明: サブネット・アクセスのURLにDELETEリクエストを送信します。
メソッド: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetreservations/<tenant>/public/192_168_220_2
出力/レスポンス: ステータス 204 No Content
記憶域ボリュームのユース・ケース
-
記憶域ボリュームの作成
説明: 記憶域ボリュームのJSONデータをPOSTします。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/storagevolumes
入力:
{ "name": "/<tenant>/public/storage/volume1", "description" :"test volume", "size": "1G" }
出力/レスポンス:
{ "name": "/<tenant>/public/storage/volume1", "properties": [ "/oracle/public/storage/default" ], "id": "/<tenant>/public/storage/volume1", "size": 1073741824, "description": "test volume", "status": "Initializing", "imageListEntryVersion": -1, "externalReferece": "http://10.88.235.144/storage/volume/<tenant>/public/storage/volume1", "bootable": false, "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/storagevolumes/<tenant>/public/storage/volume1", "rel": "canonical" } ]
-
記憶域ボリュームの削除
説明: 記憶域ボリュームのURLにDELETEリクエストを送信します。
メソッド: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/storagevolumes/<tenant>/public/storage/volume1
出力/レスポンス: ステータス 204 No Content
テナントのユースケース
-
テナントのリスト表示
説明: 特定のサイトのすべてのテナントをリストするGETリクエストです。出力は2通りの形式で表示されます。
-
application/json: すべてのテナントとその属性をJSON形式でリストします。
-
application/discovery+json: すべてのテナントの名前をリストします。これは、EM RESTサービスをOracle Computeと同一の状態に保つためのものです。
メソッド: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonまたはapplication/discovery+jsonに設定します。
出力/レスポンス: Oracle ComputeサイトのすべてのテナントがJSON形式で返されます。
{ "items": [ { "name": "cloud", "id": "cloud", "description": "Cloud administration tenant", "externalReferece": "https://10.242.84.131/tenant/cloud", "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/tenants/cloud", "rel": "canonical" } ] }, { "name": "lrgemcloud_nimbula_14275824", "id": "lrgemcloud_nimbula_14275824", "description": "Edit a tenant", "email": "user_management@example.com", "externalReferece": "https://10.242.84.131/tenant/lrgemcloud_ nimbula_14275824", "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/tenants/lrgemcloud_nimbula_14275824", "rel": "canonical" } ] }, { "name": "lrgemcloud_nimbula_14277240", "id": "lrgemcloud_nimbula_14277240", "description": "Edit a tenant", "email": "user_management@example.com", "externalReferece": "https://10.242.84.131/tenant/lrgemcloud _nimbula_14277240", "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/tenants/lrgemcloud_nimbula_14277240", "rel": "canonical" } ] } }
-
-
テナントの取得
説明: URLにリストされた特定のテナントを返すGETリクエストです。
メソッド: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants/{tenantName}
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
tenantName: 返すテナントの名前
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonに設定します。
出力/レスポンス: リクエストされたテナントはJSON形式で返されます。
{ "name": "cloud", "id": "cloud", "description": "Cloud administration tenant", "externalReferece": "https://10.242.84.131/tenant/cloud", "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/tenants/cloud/", "rel": "canonical" } ] }
-
-
テナントの作成
説明: JSON形式で指定された入力でテナントを作成するPOSTリクエストです。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants/
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
tenantName: 返すテナントの名前
入力: EM RESTサービスとしてのテナント・オブジェクトのJSON表現。リクエストのコンテンツ・タイプおよび受入れヘッダーをapplication/jsonに設定します。
{ "name": "TestTenant", "description": "Cloud administration tenant", "password": "EXAlogic_123", "email": "test@oracle.com" }
出力/レスポンス: 作成されたテナントはJSON形式で返されます。
{ "name": "TestTenant", "id": "TestTenant", "description": "Cloud administration tenant", "externalReferece": "https://10.242.84.131/tenant/cloud", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/tenants/TestTenant/", "rel": "canonical" } ] }
-
-
テナントの更新
説明: JSON形式で指定された入力でテナントを更新するPUTリクエストです。
メソッド: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants/tenantName
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
tenantName: 更新するテナントの名前
入力: EM RESTサービスとしてのテナント・オブジェクトのJSON表現。リクエストのコンテンツ・タイプおよび受入れヘッダーをapplication/jsonに設定します。
{ "name": "TestTenant", "description": "Cloud administration tenant", "password": "EXAlogic_123", }
出力: 更新されたテナントはJSON形式で返されます。
{ "name": "TestTenant", "id": "TestTenant", "description": "Cloud administration tenant updated", "externalReferece": "https://10.242.84.131/tenant/cloud",\\\\ "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/tenants/TestTenant/", "rel": "canonical" }] }
-
ユーザーのユースケース
-
ユーザーのリスト表示
説明: 特定のサイトのすべてのユーザーをリストするGETリクエストです。出力は2通りの形式で表示されます。
-
application/json: すべてのユーザーとその属性をJSON形式でリストします。
-
application/discovery+json: すべてのユーザーの名前をリストします。これは、EM RESTサービスをOracle Computeと同一の状態に保つためのものです。
メソッド: GET
URL:
https://<hostnameport>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonまたはapplication/discovery+jsonに設定します。
出力/レスポンス: Oracle ComputeサイトのすべてのユーザーがJSON形式で返されます。
{ "items": [ { "id": "/user1/administrator", "username": "/user1/administrator", "groups": [ "/user1/admin" ], "role": "/user1/admin", "email": "user1@oracle.com", "customer": "user1", "blackListed": false, "externalReferece": "https://10.242.84.131/user/user1/administrator", "fullname": "Administrator", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/usersnull", "rel": "canonical" } ] }, { "id": "/lrgemcloud_nimbula_14276642/administrator", "username": "/lrgemcloud_nimbula_14276642/administrator", "groups": [ "/lrgemcloud_nimbula_14276642/admin" ], "role": "/lrgemcloud_nimbula_14276642/admin", "email": "user2@oracle.com", "customer": "lrgemcloud_nimbula_14276642", "blackListed": false, "externalReferece": "https://10.242.84.131/user/lrgemcloud_nimbula_14276642/administrator", "fullname": "Administrator", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/usersnull", "rel": "canonical" } ] } }
-
-
ユーザーの取得
説明: URLにリストされた特定のユーザーを返すGETリクエストです。
メソッド: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/{userName}
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualizaion/infrastructure/v1/sites/
-
userName: 返すユーザーの名前
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonに設定します。
出力/レスポンス: リクエストされたユーザーはJSON形式で返されます。
{ "id": "/user2/administrator", "username": "/user2/administrator", "groups": [ "/user2/admin" ], "role": "/user2/admin", "email": "userabc@oracle.com", "customer": "user2", "blackListed": false, "externalReferece": "https://10.242.84.131/user/alokak/administrator",\\ "fullname": "Administrator core", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/users/alokak/administrator", "rel": "canonical" } ] }
-
-
ユーザーの作成
説明: JSON形式で指定された入力でユーザーを作成するPOSTリクエストです。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
userName: 返すユーザーの名前
入力: EM RESTサービスとしてのユーザー・オブジェクトのJSON表現。リクエストのコンテンツ・タイプおよび受入れヘッダーをapplication/jsonに設定します。
{ "username": "/user2/testuser", "customer": "user2", "blacklisted": false, "fullname": "Test User", "role":"/cloud/users", "password": "EXAlogic_123", "email": "tuser@oracle.com" }
出力/レスポンス: 作成されたユーザーはJSON形式で返されます。
{ "id": "/user2/testuser", "username": "/user2/testuser", "groups": [ "/user2/users" ], "role": "/user2/users", "email": "tuser@oracle.com", "customer": "user2", "blackListed": false, "externalReferece": "https://10.242.84.131/user/user2/testuser",\\ "fullname": "Test User", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/users/user2/testuser", "rel": "canonical" } ] }
-
-
ユーザーの更新
説明: JSON形式で指定した入力でユーザーを更新するPUTリクエストです。
メソッド: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/userName
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
userName: 更新するユーザーの名前
入力: EM RESTサービスとしてのテナント・オブジェクトのJSON表現。リクエストのコンテンツ・タイプおよび受入れヘッダーをapplication/jsonに設定します。
{ "username": "/user2/testuser", "customer": "user2", "blacklisted": false, "fullname": "Test User", "role":"/cloud/users", "password": "EXAlogic_123", "email": "tuser123@oracle.com" }
出力/レスポンス: 更新されたテナントはJSON形式で返されます。
{ "id": "/user2/testuser", "username": "/user2/testuser", "groups": [ "/user2/users" ], "role": "/user2/users", "email": "tuser123@oracle.com", "customer": "user2", "blackListed": false, "externalReferece": "https://10.242.84.131/user/user2/testuser",\\ "fullname": "Test User", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/users/user2/testuser", "rel": "canonical" } ] }
-
-
ユーザーの削除
説明: URLでリクエストされた特定のユーザーを削除するDELETEリクエストです。
メソッド: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/userName
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
userName: 更新するユーザーの名前
入力: REST DELETEリクエストには入力は必要ありません。
出力/レスポンス: REST DELETEリクエストには出力はありません。レスポンス・コード206 (No Content)が返されます。
-
割当て制限のユースケース
-
割当て制限のリスト表示
説明: 特定のサイトに割り当てられた割当て制限をリストするGETリクエストです。出力は2通りの形式で表示されます。
-
application/json: すべての割当て制限とその属性をJSON形式でリストします。
-
application/discovery+json: すべての割当て制限の名前をリストします。これは、EM RESTサービスをOracle Computeと同一の状態に保つためのものです。
メソッド: GET
URL:
https://<hostnameport>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonまたはapplication/discovery+jsonに設定します。
出力/レスポンス: Oracle Computeサイトのすべての割当て制限がJSON形式で返されます。
{ "items": [ { "name": "/user3", "id": "/user3", "usage": { "vnet": { "vnetreservations": 0 }, "nat": { "ipreservations": 0 }, "compute": { "instances": 1, "instance_restrictions": [ "{}" ], "ram": 2048, "cpus": 1 }, "machineimage": { "number": 0, "megabytes": 0 }, "nds": { "megabytes": 0 } }, "description": "Edit a quota named quota1", "allowance": { "vnet": { "vnetreservations": 10 }, "nat": { "ipreservations": 10 }, "compute": { "instances": 20, "instance_restrictions": [ "{\"os_license\":\"200\"}" ], "ram": 20000, "cpus": 10 }, "machineimage": { "number": 12000, "megabytes": 8048 }, "nds": { "megabytes": 1160000 } }, "externalReferece": "https://10.242.84.131/quota/user3",\\ "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/quotas/user3", "rel": "canonical" } ] }, { "name": "/lrgemcloud_nimbula_14279598", "id": "/lrgemcloud_nimbula_14279598", "usage": { "vnet": { "vnetreservations": 0 }, "nat": { "ipreservations": 0 }, "compute": { "instances": 0, "instance_restrictions": [ "{}" ], "ram": 0, "cpus": 0 }, "machineimage": { "number": 0, "megabytes": 0 }, "nds": { "megabytes": 0 } }, "description": "Default quota for \"lrgemcloud_nimbula _14279598\"", "allowance": { "vnet": { "vnetreservations": null }, "nat": { "ipreservations": null }, "compute": { "instances": null, "instance_restrictions": [ "{}" ], "ram": null, "cpus": null }, "machineimage": { "number": null, "megabytes": null }, "nds": { "megabytes": null } }, "externalReferece": "https://10.242.84.131/quota/lrgemcloud_nimbula_14279598",\\ "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/quotas/lrgemcloud_nimbula_14279598", "rel": "canonical" } ] } }
-
-
割当て制限の取得
説明: URLにリストされた特定の割当て制限を返すGETリクエストです。
メソッド: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas/{quotaName}
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
quotaName: 返す割当て制限の名前
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonに設定します。
出力/レスポンス: リクエストされた割当て制限はJSON形式で返されます。
{ "name": "/user3", "id": "/user3", "usage": { "vnet": { "vnetreservations": 0 }, "nat": { "ipreservations": 0 }, "compute": { "instances": 1, "instance_restrictions": [ "{}" ], "ram": 2048, "cpus": 1 }, "machineimage": { "number": 0, "megabytes": 0 }, "nds": { "megabytes": 0 } }, "description": "Edit a quota named quota1", "allowance": { "vnet": { "vnetreservations": 10 }, "nat": { "ipreservations": 10 }, "compute": { "instances": 20, "instance_restrictions": [ "{\"os_license\":\"200\"}" ], "ram": 20000, "cpus": 10 }, "machineimage": { "number": 12000, "megabytes": 8048 }, "nds": { "megabytes": 1160000 } }, "externalReferece": "https://10.242.84.131/quota/user3",\\ "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/quotas/user3", "rel": "canonical" } ] }
-
-
割当て制限の更新
説明: JSON形式で指定した入力で割当て制限を更新するPUTリクエストです。
メソッド: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas/quotaName
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
quotaName: 更新する割当て制限の名前
入力: EM RESTサービスとしてのテナント・オブジェクトのJSON表現。リクエストのコンテンツ・タイプおよび受入れヘッダーをapplication/jsonに設定します。
{ "name": "/test", "description": "Test Quota updated", "allowance": { "vnet": { "vnetreservations": 10 }, "nat": { "ipreservations": 10 }, "compute": { "instances": 20, "instance_restrictions": [ "{"os_license":"200"}" ], "ram": 20000, "cpus": 10 }, "machineimage": { "number": 12000, "megabytes": 8048 }, "nds": { "megabytes": 1160000 } } }
出力/レスポンス: 更新された割当て制限はJSON形式で返されます。
{ "name": "/test", "id": "/test", "usage": { "vnet": { "vnetreservations": 0 }, "nat": { "ipreservations": 0 }, "compute": { "instances": 1, "instance_restrictions": [ "{}" ], "ram": 2048, "cpus": 1 }, "machineimage": { "number": 0, "megabytes": 0 }, "nds": { "megabytes": 0 } }, "description": "Test Quota Updated", "allowance": { "vnet": { "vnetreservations": 10 }, "nat": { "ipreservations": 10 }, "compute": { "instances": 20, "instance_restrictions": [ "{\"os_license\":\"200\"}" ], "ram": 20000, "cpus": 10 }, "machineimage": { "number": 12000, "megabytes": 8048 }, "nds": { "megabytes": 1160000 } }, "externalReferece": "https://10.242.84.131/quota/test",\\ "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/2C9C90E1A5A5084C2BBA23BE5DC04D43/quotas/test", "rel": "canonical" } ] }
-
-
割当て制限の削除
説明: URLでリクエストされた特定の割当て制限を削除するDELETEリクエストです。
メソッド: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas/quotaName
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
quotaName: 削除する割当て制限の名前
入力: REST DELETEリクエストには入力は必要ありません。
出力/レスポンス: REST DELETEリクエストには出力はありません。レスポンス・コード206 (No Content)が返されます。
-
テンプレートのユースケース
-
テンプレートのリスト表示
Description: 特定のサイトのすべてのテンプレートをリストするGETリクエストです。出力は2通りの形式で表示されます。
-
application/json: すべてのテンプレートとその属性をJSON形式でリストします。
application/discovery+json: すべてのテンプレートの名前をリストします。これは、EM RESTサービスをOracle Computeと同一の状態に保つためのものです。
メソッド: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonまたはapplication/discovery+jsonに設定します。
出力/レスポンス: Oracle Computeサイトのすべての割当て制限がJSON形式で返されます。
{ "totalResults": 5, "count": 5, "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/93B97C5E7E352676A3284D80F23714BF/templates", "rel": "canonical" } ], "items": [ { "id": "/oracle/public/oel_public", "name": "/oracle/public/oel_public", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/93B97C5E7E352676A3284D80F23714BF/templates/oracle/public/oel_public", "rel": "canonical" } ], "fileLocation": "https://10.242.84.131:444/machineimage/oracle/public/oel_public", "state": "available", "attributes": { "OS": "Linux_x86" }, "sizes": { "uploadedSizeinBytes": 376848450, "totalSizeInBytes": 376848450, "decompressedSizeInBytes": 5905612288 } }, { "id": "/satheesh/public/oel_tenant", "name": "/satheesh/public/oel_tenant", "links": [ { "href": "/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/93B97C5E7E352676A3284D80F23714BF/templates/satheesh/public/oel_tenant", "rel": "canonical" } ], "fileLocation": "https://10.242.84.131:444/machineimage/satheesh/public/oel_tenant", "state": "available", "attributes": { "OS": "Linux_x86" }, "quota": "/satheesh/21053780-d23c-489b-9fd7-9b9779e642f1", "sizes": { "uploadedSizeinBytes": 376848450, "totalSizeInBytes": 376848450, "decompressedSizeInBytes": 5905612288 } }, } }
-
-
テンプレートの取得
説明: URLにリストされた特定のテンプレートを返すGETリクエストです。
メソッド: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/{templateName}
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
templateName: 返すテンプレートの名前
入力: REST GETリクエストには入力は必要ありません。リクエストのコンテンツ・タイプ・ヘッダーをapplication/jsonに設定します。
出力/レスポンス: リクエストされた割当て制限はJSON形式で返されます。
{ "id": "/oracle/public/oel_public", "name": "/oracle/public/oel_public", "links": [ { "href":"/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/93B97C5E7E352676A3284D80F23714BF/templates/oracle/public/oel_public", "rel": "canonical" } ], "fileLocation": "https://10.242.84.131:444/machineimage/oracle/public/oel_public",</span></span> "state": "available", "attributes": { "OS": "Linux_x86" }, "sizes": { "uploadedSizeinBytes": 376848450, "totalSizeInBytes": 376848450, "decompressedSizeInBytes": 5905612288 } }
-
-
テンプレートの削除
説明: URLでリクエストされた特定のテンプレートを削除するDELETEリクエストです。
メソッド: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/templateName
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
templateName: 削除するテンプレートの名前
入力: REST DELETEリクエストには入力は必要ありません。
出力/レスポンス: REST DELETEリクエストには出力はありません。レスポンス・コード206 (No Content)が返されます。
-
-
テンプレートのアップロード
説明: JSON形式で指定された入力でソフトウェア・ライブラリを使用してテンプレートを更新するPOSTリクエストです。
メソッド: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/swlib
-
hostname: OMSホスト名
-
port: OMS HTTPSポート
-
SITE_ID: 次のURLでサイト・リソースにアクセスすると、サイトIDが返されます。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
-
templateName: 削除するテンプレートの名前
入力: EM RESTサービスとしてのテナント・オブジェクトのJSON表現。リクエストのコンテンツ・タイプと受入れヘッダーをapplication/jsonに設定します。
{ "name": "/oracle/public/test2", "urn": "oracle:defaultService:em:provisioning:1:cmp:Cloud:Nimbula Template:1A4754B40A0E061CE053179AF40A2898:0.1", "sizes": { "total": 376848450 }, "attributes": { "OS": "Linux_x86" } }
出力/レスポンス: ジョブが送信され、ジョブIDがJSON形式で返されます。"{ \"job_id\":\"1A57035ED0D819A1E053179AF40A4A85\"}"
前述のJSON形式でコンポーネントのURN(urn)フィールドを取得するには、ソフトウェア・ライブラリ・コンポーネントがアップロードされ、REST APIが動作していることを確認します。
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/swlibcomponents
-
-
サイトの登録および登録解除
Oracle Computeサイトは、/sites/ネームスペースに対してサイト情報を示すJSONとともにPOSTメソッドを使用して登録できます。次にジョブが送信され、サイトが登録されます。
たとえば:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
{ "site_target_name":"Demo", "endpoint_url":"https://10.242.84.131",\\\\ "agent_url":"https://<hostname:port>/emd/main/",\\\\ "monitoring_cred_username":"/cloud/administrator", "monitoring_cred_password":"EXAlogic_123", "graphite_url":"https://10.242.84.131/graphite",\\\\ }
ジョブIDは、
"{ \"job_id\":\"139600CD1BC11B59E053481DF50A6F62\"}"
のような形式で返されます。イメージ追加(サイトの登録)
次の表は、サイトの登録に使用されるJSON形式を示しています。
表14-7 サイトの登録に使用されるJSON形式
プロパティ | 説明 |
---|---|
site_target_name |
サイトのターゲット名。 |
endpoint_url |
NimbulaサイトのURL。 |
agent_url |
ターゲットをモニタリングしているエージェントのURL。 |
slave_agent_url |
スタンバイ・エージェントとして使用されるフェイルオーバー・モニタリング・エージェント。エージェントのリストをJSON配列形式で次のように指定できます。 ["url1","url2"]. |
monitoring_cred_username |
Oracle Computeサイトのモニタリング資格証明のユーザー名。 |
monitoring_cred_password |
Oracle Computeサイトのモニタリング資格証明のパスワード。 |
graphite_url |
Graphite URL。 |
graphite_username |
Graphite資格証明のユーザー名。 |
graphite_password |
Graphite資格証明のパスワード。 |
graphite_site_prefix |
Graphite接頭辞の文字列。 |
snmp_cred_type |
SNMP資格証明のタイプ。指定できる値は、V1、V2およびV3です。 |
snmp_community_string |
snmp_cred_typeがV1またはV2の場合に利用可能なSNMPコミュニティ文字列。 |
snmp_username |
snmp_cred_typeがV3の場合に利用可能なSNMP資格証明のユーザー名。 |
snmp_authpassword |
snmp_cred_typeがV3の場合に利用可能なSNMP認可パスワード。 |
snmp_authprotocol |
snmp_cred_typeがV3の場合に利用可能なSNMP認可プロトコル(MD5またはSHA)。 |
snmp_privpassword |
snmp_cred_typeがV3の場合に利用可能なSNMPプライバシ・パスワード。 |
The Oracle Computeサイトは、「削除」オプションを使用して登録を解除できます。ジョブが送信され、サイトの登録を解除します。たとえば:"{ \"job_id\":\"10D4FDE1874E201BE053461DF50A5760\"}"ジョブIDが返されます。
参考資料
次のXSDを使用してオーケストレーション・プラン(orch_plan.xml)を構築します。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.oracle.com/sysman/vi/VIDeploymentPlan"
xmlns="http://www.oracle.com/sysman/vi/VIDeploymentPlan"
elementFormDefault="unqualified"
xmlns:Q1="http://www.oracle.com/vi/RequestSchema"
xmlns:xml="http://www.w3.org/XML/1998/namespace">
<xsd:simpleType name="CPUSchedulingPriorityType">
<xsd:annotation>
<xsd:documentation>CPU Scheduling priority for the Guest VM.</xsd:documentation>
</xsd:annotation>
<xsd:union>
<xsd:simpleType id="CPUSchedulingPriorityPreDefinedType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Low"/>
<xsd:enumeration value="Intermediate"/>
<xsd:enumeration value="High"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType id="CPUSchedulingPriorityCustomType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[1]?[0,1,2,3,4,5,6,7,8,9]?[0,1,2,3,4,5,6,7,8,9]"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
<xsd:simpleType name="CPUCapType">
<xsd:annotation>
<xsd:documentation>CPU Scheduling Cap for the Guest VM.</xsd:documentation>
</xsd:annotation>
<xsd:union>
<xsd:simpleType id="CPUCapTypePreDefinedType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Low"/>
<xsd:enumeration value="Intermediate"/>
<xsd:enumeration value="High"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType id="CPUCapCustomType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[1]?[0,1,2,3,4,5,6,7,8,9]?[0,1,2,3,4,5,6,7,8,9]"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
<xsd:complexType name="StaticNetworkConfigurationType">
<xsd:annotation>
<xsd:documentation>Static network configuration for the network
interface.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ipAddress" type="xsd:string" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>IP Address.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="hostName" type="xsd:string" maxOccurs="1"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>Fully Qualified Host
Name.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subnetMask" type="xsd:string" maxOccurs="1"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>Subnet Mask.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="defaultGateway" type="xsd:string" maxOccurs="1"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>Default Gateway.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="nameServer"
type="xsd:string">
<xsd:annotation>
<xsd:documentation>Name Server.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VirtualMachineListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="VirtualMachine" type="VirtualMachineType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseVirtualMachineType">
<xsd:attribute name="name" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="LocalDiskType">
<xsd:sequence>
<xsd:element name="storageVolumeId" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Id of the storage volume attached to the
instance.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="index" type="xsd:int">
<xsd:annotation>
<xsd:documentation>Index of the storage
attachment.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>Name of the Disk. Will be ignored if
Deployment is of type
ImageListDeploymentType.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="fromDefinition" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>Denotes if the disk is specified in some
metadata file associated with the binary
being used to deploy. Will be ignored if
Deployment is of type
ImageListDeploymentType.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="NewDiskType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string">
</xsd:element>
<xsd:element name="SizeInGB" type="xsd:long">
</xsd:element>
<xsd:element name="Properties" type="xsd:string" maxOccurs="unbounded" minOccurs="0">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DiskListType">
<xsd:complexContent>
<xsd:choice>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="disk"
type="LocalDiskType"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="newDisk" type="NewDiskType" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:choice>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="VirtualizationTType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="HVM"/>
<xsd:enumeration value="PVM"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="HardwareConfigurationType">
<xsd:annotation>
<xsd:documentation>Hardware configuration for the guest
vm.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Label" type="xsd:string"></xsd:element>
<xsd:element name="ImageList" type="xsd:string"></xsd:element>
<xsd:element name="ImageListEntry" type="xsd:string"></xsd:element>
<xsd:element name="Shape" type="ShapeType" maxOccurs="1"
minOccurs="1"></xsd:element>
<xsd:element name="Account" type="AccountType"></xsd:element>
<xsd:element name="Quota" type="QuotaType"></xsd:element>
<xsd:element name="Priority" type="xsd:string"></xsd:element>
<xsd:element name="Tags" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Comma separated list of Strings that
will be used as Tags.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PlacementRequirements" type="xsd:string"
maxOccurs="1" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Comma separated list of Strings that
will be used as Placement Requirement
tags.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="HaEnabled" type="xsd:boolean"></xsd:element>
<xsd:element name="Virtio" type="xsd:boolean"></xsd:element>
<xsd:element name="sshKeys" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Comma separated strings of SSH
Keys</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="RootSSHCredential" type="SSHCredentialType"></xsd:element>
<xsd:element name="OracleSSHCredential" type="SSHCredentialType"></xsd:element>
<xsd:element name="Nics" type="NICListType" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Container for configuration of network
interface cards for the Guest VM.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Nis" type="NISType" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Container for configuration of network
NIS for the Guest VM.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Disks"
type="DiskListType">
<xsd:annotation>
<xsd:documentation>Container for configuration of local
disks for the Guest VM.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Attributes" type="AttributeListType"
maxOccurs="1" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Keymap configuration for the Guest
VM</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ConfigurationDataType">
<xsd:sequence>
<xsd:element name="Type" type="PlanType">
<xsd:annotation>
<xsd:documentation>Specify the Plan type i.e if this is
meant for Image deployment or Assembly
deployment.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PassThroughMode" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>This value should be set to true when
Pass-Through behaviour is desired i.e
when the native Oracle Compute Launch
Plan or OVAB Plan is passed for
deployment.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="CreatingUser" type="xsd:string"></xsd:element>
<xsd:element name="CreatingApplication" type="xsd:string"></xsd:element>
<xsd:choice>
<xsd:element name="AssemblyDeployment"
type="AssemblyDeploymentConfigDataType"/>
<xsd:element name="ImageDeployment"
type="ImageDeploymentConfigDataType"/>
<xsd:element name="OrchestrationDeployment"
type="OrchestrationDeploymentConfigDataType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="version" type="PlanVersionType" use="required">
<xsd:annotation>
<xsd:documentation>Deployment Plan Version attribute is
introduced in PS2 release. Older plans will
not have this attribute or if user adds it
then the version must be 0.0.1 for plans
from releases older then
PS2.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ProvisioningRequestType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="AssemblyDeployment"
type="AssemblyDeploymentConfigDataType"/>
<xsd:element name="ImageDeployment"
type="ImageDeploymentConfigDataType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="PlanVersion" type="PlanVersionType" use="optional">
<xsd:annotation>
<xsd:documentation>Deployment Plan Version attribute is
introduced in PS2 release. Older plans will
not have this attribute or if user adds it
then the version must be 0.0.1 for plans
from releases older then
PS2.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="EditRequestType"/>
<xsd:complexType name="CloningRequestType"/>
<xsd:complexType name="SnapshotRequestType"/>
<!-- xsd:complexType name="ScalingRequestType"></xsd:complexType -->
<xsd:complexType name="AssemblyDeploymentConfigDataType">
<xsd:annotation>
<xsd:documentation>Represents the configuration data associated
with the deployment of an assembly.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="SourceBinary" type="SourceBinaryDataType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="DeploymentTarget" type="DeploymentTargetData"/>
<xsd:element name="AcceptedAllEULAs" type="xsd:boolean"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Flag to specify if all the EULAs are
accepted by the user for
deployment.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="InstallEMAgent" type="xsd:boolean" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Flag to specify if EM Agent has to be
installed by the user for
deployment.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="DisableCleanup" type="xsd:boolean" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Flag to specify if Cleanup of virtual
machines to be disabled in case of
failure.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sshKeys" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Comma separated strings of SSH
Keys</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="EMAgentConfig" type="EMAgentConfigType"/>
<xsd:element name="AssemblyNetworkConfig"
type="AssemblyNetworkConfigListType" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>List of mappings for the assembly
networks (defined in assembly meta-data)
and corresponding network on the
target.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- xsd:choice -->
<!-- xsd:element name="VirtualSystemCollectionConfig" type="VirtualSystemCollectionConfigType">
<xsd:annotation> <xsd:documentation> Configuration of a virtual system collection
(root node in the assembly), and its child nodes (if any). </xsd:documentation>
</xsd:annotation> </xsd:element -->
<xsd:choice>
<xsd:element name="VirtualSystemCollectionConfig"
type="VirtualSystemCollectionConfigType"
maxOccurs="1" minOccurs="1">
<xsd:annotation>
<xsd:documentation>Configuration of a virtual system
collection (root node in the
assembly), and its child nodes (if
any).</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="VirtualSystemConfig"
type="VirtualSystemConfigType" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Configuration of a virtual
system(root node in the
assembly).</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PassThroughData" type="PassThroughDataType"></xsd:element>
</xsd:choice>
<xsd:element name="IsExalogicDeployment" type="xsd:boolean"
minOccurs="0" default="false">
<xsd:annotation>
<xsd:documentation>Flag to specify if deployemnt is an
Exalogic Assembly Deployment.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="OvabDeployerUserEmCredGuid" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="assemblyInstanceName" type="xsd:string"
use="required">
<xsd:annotation>
<xsd:documentation>Name with which the assembly instance will
be created. Should be unique throughout the system for the
target type oracle_assembly_instance.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ImageDeploymentConfigDataType">
<xsd:sequence>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>Imagelist deployment can be done in two
ways. Either specify the Default
Configuration and all the other elements
or only specify the PassThroughData. The
PassThroughData is used to specify the
native Oracle Compute Launch
Plan.</xsd:documentation>
</xsd:annotation>
<xsd:element name="DefaultConfiguration"
type="HardwareConfigurationType"/>
<xsd:element name="PassThroughData" type="PassThroughDataType">
<xsd:annotation>
<xsd:documentation>
Use CDATA to specify the native Oracle Compute
Launch Plan.
<![CDATA[ Launch Plan goes here ]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:element name="SourceBinary" type="SourceBinaryDataType"
minOccurs="0"></xsd:element>
<xsd:element name="DeploymentTarget" type="DeploymentTargetData"
minOccurs="0"></xsd:element>
<xsd:element name="Instances" type="VirtualMachineListType"
minOccurs="0"/>
<xsd:element name="InstallEMAgent" type="xsd:boolean" minOccurs="0"></xsd:element>
<xsd:element name="EMAgentConfig" type="EMAgentConfigType"
minOccurs="0"></xsd:element>
<xsd:element name="RelationshipList" type="RelationshipListType"
minOccurs="0"></xsd:element>
</xsd:sequence>
<xsd:attribute name="namePrefix" type="xsd:string"/>
<xsd:attribute name="numberOfInstances" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="NISType">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="Domain" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Servers" type="NISServersListType" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="NISServersListType">
<xsd:sequence>
<xsd:element name="NISServers" type="NISServerType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NISServerType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Ip" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NICListType">
<xsd:complexContent>
<xsd:sequence maxOccurs="8">
<xsd:element name="NetworkInterface" type="NICConfigurationType"
maxOccurs="8" minOccurs="1"/>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="NICConfigurationType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="Vnet" type="xsd:string"/>
<xsd:element name="VnetReservation" type="xsd:string"/>
</xsd:choice>
<xsd:choice>
<xsd:element name="Vethernet" type="xsd:string"/>
<xsd:element name="VethernetId" type="xsd:string"/>
</xsd:choice>
<xsd:element name="Options" type="NICOptionsType" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>Network Interface name.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="fromDefinition" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>Denotes if the Network Interface is already
defined in some metadata file associated
with the binary.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="NICOptionsType">
<xsd:sequence>
<xsd:element name="Hostname" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Primary" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false"/>
<xsd:element name="Dns" type="NICDnsType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Default_Gateway" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false"/>
<xsd:element name="Provider" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false"/>
<xsd:element name="Network_Route" type="NetworkRouteType" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NICDnsType">
<xsd:sequence>
<xsd:element name="Servers" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Search_Domains" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NetworkRouteType">
<xsd:sequence>
<xsd:element name="RoutingRulesList" type="RoutingRulesListType" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RoutingRulesListType">
<xsd:sequence>
<xsd:element name="RoutingRules" type="RoutingRuleType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RoutingRuleType">
<xsd:sequence>
<xsd:element name="Type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VirtualMachineType">
<xsd:sequence>
<xsd:element name="InstallEMAgent" type="xsd:boolean"></xsd:element>
<xsd:element name="EMAgentConfig" type="EMAgentConfigType"></xsd:element>
<xsd:element name="CustomConfiguration"
type="HardwareConfigurationType" maxOccurs="1"
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="customConfigured" type="xsd:boolean"
use="required">
<xsd:annotation>
<xsd:documentation>Set this flag to True when the VM's Hardware
configuration is overridden. By default the
flag is not set which implies that the
configuration is based on the default
HardwareConfiguration.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ProductConfigurationSectionType">
<xsd:sequence>
<xsd:element name="Properties" type="ProductPropertyListType"
maxOccurs="1" minOccurs="0"/>
<xsd:element name="Version" type="xsd:string"></xsd:element>
<xsd:element name="FullVersion" type="xsd:string"></xsd:element>
<xsd:element name="ProductURL" type="xsd:string"></xsd:element>
<xsd:element name="Vendor" type="xsd:string"></xsd:element>
<xsd:element name="VendorURL" type="xsd:string"></xsd:element>
<xsd:element name="EMAgent" type="xsd:boolean"></xsd:element>
</xsd:sequence>
<xsd:attribute name="productName" type="xsd:string" use="required"/>
<xsd:attribute name="description" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="ProductPropertyListType">
<xsd:sequence>
<xsd:element name="Property" type="ProductPropertyType"
maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ProductsListType">
<xsd:annotation>
<xsd:documentation>Configuration for various products in the node.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Product" type="ProductConfigurationSectionType"
maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ScalabilityConfigurationType">
<xsd:annotation>
<xsd:documentation>Scalability configuration for the virtual
system. If none is specified, default will be applied
using the assembly
meta-data.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="minNum" type="xsd:int" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Minimum number of instances to be
deployed.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="maxNum" type="xsd:int" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Maximum number of instances to be
deployed.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="deploy" type="xsd:boolean" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Whether instance to be
deployed.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="HaEnabled" type="xsd:boolean" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Whether HA enabled.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="initial" type="xsd:int" maxOccurs="1"
minOccurs="1">
<xsd:annotation>
<xsd:documentation>Initial number of instances to be
deployed.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="autoScalable" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>Flag to specify if the node will have
auto-scaling enabled. If the node is
auto-scaling, it is required to specify
configuration for all the child nodes
(limited by the max number
instances).</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vmNamePrefix" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Name prefix to be used for child
instances.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ConfigurationData" type="ConfigurationDataType">
<xsd:annotation>
<xsd:documentation>Place holder element for various types of
request config data.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="StoragerequestType"/>
<xsd:complexType name="VirtualSystemCollectionConfigType">
<xsd:annotation>
<xsd:documentation>Configuration of a virtual system collection
(root node in the assembly), and its child nodes
(if any).</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseNodeConfigType">
<xsd:sequence>
<xsd:element name="VirtualSystemConfig"
type="VirtualSystemConfigType"
maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="VirtualSystemConfigType">
<xsd:annotation>
<xsd:documentation>Configuration of a virtual system, and its child
instances (if multiple instances are
deployed).</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseNodeConfigType">
<xsd:sequence>
<xsd:element name="ScalabilityConfiguration"
type="ScalabilityConfigurationType"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Scalability configuration for
the virtual system. If none is specified, default
will be applied using the assembly
meta-data.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="HardwareConfiguration"
type="HardwareConfigurationType" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Common hardware configuration
for the guest vm (and its instances,
if any).</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Instances"
type="ChildVirtualSystemConfigType"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Instances for the deployment.
Only required if multiple
instances are being deployed for
the virtual system, and its not
marked to be auto-scalable.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="targetName" type="xsd:string"
use="required">
<xsd:annotation>
<xsd:documentation>Name to be assigned for the target
in deployment. If the node has multiple instances of
deployments, this will be the tier instance name,
otherwise,the guest vm name.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="vmInstance" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="followsMaster" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="agentInstallationType"
type="EMAgentInstallationType"></xsd:attribute>
<xsd:attribute name="agentPushInstallationEnabled"
type="xsd:boolean"></xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ChildVirtualSystemCollectionConfigType">
<xsd:annotation>
<xsd:documentation>Configuration for a child instance of virtual
system deployment.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="VirtualSystemCollectionConfigType">
<xsd:attribute name="targetName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Target name for the tier instance
target that will be created.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="BaseNodeConfigType">
<xsd:annotation>
<xsd:documentation>Common configuration applicable to virtual
system and virtual system collection.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="deploymentOption" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Deployment option to be used for
configuring the assembly. The default
values from the default option will be
picked, unless the user over-rides
them.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ProductConfiguration" type="ProductsListType"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Configuration for various products in
the node.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>Unique identifier for the node in assembly
meta-data.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:simpleType name="QosPriorityType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="0"/>
<xsd:enumeration value="1"/>
<xsd:enumeration value="2"/>
<xsd:enumeration value="3"/>
<xsd:enumeration value="4"/>
<xsd:enumeration value="5"/>
<xsd:enumeration value="6"/>
<xsd:enumeration value="7"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ChildVirtualSystemConfigType">
<xsd:annotation>
<xsd:documentation>Configuration of a virtual system (child node of
a virtual system having multiple
deployments).</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BaseNodeConfigType">
<xsd:sequence>
<xsd:element name="HardwareConfiguration"
type="HardwareConfigurationType">
<xsd:annotation>
<xsd:documentation>Hardware configuration for the
guest vm.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="targetName" type="xsd:string"
use="required">
<xsd:annotation>
<xsd:documentation>Name with which the guest vm target
will be created for this
instance.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="followsMaster" type="xsd:boolean"/>
<xsd:attribute name="agentInstallationType"
type="EMAgentInstallationType"></xsd:attribute>
<xsd:attribute name="agentPushInstallationEnabled"
type="xsd:boolean"></xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AssemblyNetworkConfigListType">
<xsd:annotation>
<xsd:documentation>List of mappings for the assembly networks
(defined in assembly meta-data) and
corresponding network on the target.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="AssemblyNetwork" type="AssemblyNetworkType"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Mapping for the assembly network
defined in assembly meta-data) and
corresponding network on the
target.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AssemblyNetworkType">
<xsd:attribute name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Name of the assembly network.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="backendNetwork" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Backend network on the target.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="DeploymentTargetData">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>EM Target Name</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Id" type="xsd:string">
<xsd:annotation>
<xsd:documentation>EM Target GUID</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Uri" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Oracle Compute Target
URI</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Type" type="DeploymentTargetType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="DeploymentTargetType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="oracle_nimbula_site"/>
<xsd:enumeration value="oracle_nimbula_cluster"/>
<xsd:enumeration value="oracle_nimbula_node"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="EMAgentConfigType">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="PlatformCode" type="xsd:int"></xsd:element>
<xsd:element name="InstallBaseDirectory" type="xsd:string"></xsd:element>
<xsd:element name="InstanceDirectory" type="xsd:string"></xsd:element>
<xsd:element name="Port" type="xsd:int"></xsd:element>
<xsd:element name="InstallUserName" type="xsd:string"></xsd:element>
<xsd:element name="InstallUserPassword" type="xsd:string"></xsd:element>
<xsd:element name="InstallUserPasswordGuid" type="xsd:string"></xsd:element>
<xsd:element name="RootHostCredential" type="HostCredentialType"></xsd:element>
<xsd:element name="OracleHostCredential" type="HostCredentialType"></xsd:element>
<xsd:element name="AdditionalParams" type="xsd:string"></xsd:element>
<xsd:element name="SshTimeoutInMinutes" type="xsd:int"></xsd:element>
<xsd:element name="PrivilegeDelegationSettings" type="xsd:string"></xsd:element>
<xsd:element name="SshKey" type="xsd:string"></xsd:element>
<xsd:element name="SshKeyGuid" type="xsd:string"></xsd:element>
<xsd:element name="RootSSHCredential" type="SSHCredentialType"></xsd:element>
<xsd:element name="OracleSSHCredential" type="SSHCredentialType"></xsd:element>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StorageTarget">
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="type" type="StorageTargetType"/>
</xsd:complexType>
<xsd:simpleType name="StorageTargetType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEFAULT"/>
<xsd:enumeration value="STORAGE_REPOSITORY"/>
<xsd:enumeration value="STORAGE_ARRAY"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ModeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Read-Write"/>
<xsd:enumeration value="Read-Only"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="IPAssignmentModeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Dhcp"/>
<xsd:enumeration value="Static"/>
<xsd:enumeration value="Network Profile"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="EMAgentInstallationType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Push Agent Installation"/>
<xsd:enumeration value="RPM Installation"/>
<xsd:enumeration value="No Agent Installation"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="StorageQoSType">
<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ProductPropertyType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Description" type="xsd:string"></xsd:element>
<xsd:element name="Required" type="xsd:boolean"></xsd:element>
<xsd:element name="Value" type="xsd:string"></xsd:element>
<xsd:element name="ValueGuid" type="xsd:string"></xsd:element>
<xsd:element name="Secret" type="xsd:boolean"></xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"></xsd:attribute>
</xsd:complexType>
<xsd:simpleType name="PlanVersionType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}">
<xsd:annotation>
<xsd:documentation>i.e. x.y.z where x, y, and z are "small"
integers</xsd:documentation>
</xsd:annotation>
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="RelationshipDataType">
<xsd:sequence>
<xsd:element name="Type" type="RelationshipType">
<xsd:annotation>
<xsd:documentation></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="FirstServerName" type="xsd:string"></xsd:element>
<xsd:element name="SecondServerName" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RelationshipListType">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="Relationship" type="RelationshipDataType"
maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeListType">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="Attribute" type="AttributeType"
maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Value" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ImageListType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Id" type="xsd:string"></xsd:element>
<xsd:element name="Entry" type="xsd:string"></xsd:element>
<xsd:element name="UseDefaultEntry" type="xsd:boolean"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ShapeType">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Id" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="QuotaType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Type" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AccountType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Id" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BackendNetworkType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Id" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="PlanType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NimbulaImage"></xsd:enumeration>
<xsd:enumeration value="NimbulaAssembly"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="PassThroughDataType">
<xsd:annotation>
<xsd:documentation>Element to specify the pass-through data.
Example: Oracle Compute Launch Plan , OVAB Deployment Plan</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="planData" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Use CDATA to add the pass-through
data.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="RelationshipType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="same_node"></xsd:enumeration>
<xsd:enumeration value="different_node"></xsd:enumeration>
<xsd:enumeration value="same_cluster"></xsd:enumeration>
<xsd:enumeration value="different_cluster"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="SourceBinaryDataType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Type" type="SourceBinaryType"></xsd:element>
<xsd:element name="Version" type="xsd:string"></xsd:element>
<xsd:choice>
<xsd:element name="AssemblyBinary"
type="AssemblyBinaryDataType"></xsd:element>
<xsd:element name="ImageListBinary"
type="ImageListBinaryDataType"></xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AssemblyBinaryDataType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Id" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ImageListBinaryDataType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
<xsd:element name="Id" type="xsd:string"></xsd:element>
<xsd:element name="Entry" type="xsd:string"></xsd:element>
<xsd:element name="DefaultEntry" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="SourceBinaryType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="IMAGELIST"></xsd:enumeration>
<xsd:enumeration value="ASSEMBLY"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="OrchestrationDeploymentConfigDataType">
<xsd:sequence>
<xsd:element name="Account" type="xsd:string"></xsd:element>
<xsd:element name="InstallEMAgent" type="xsd:boolean"></xsd:element>
<xsd:element name="EMAgentConfig" type="EMAgentConfigType"></xsd:element>
<xsd:element name="ObjectPlanDependencyList"
type="ObjectPlanDependencyListType"></xsd:element>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>Orchestration deployment can be done in
two ways. Either specify the Default
Configuration and all the other elements
or only specify the PassThroughData. The
PassThroughData is used to specify the
native Nimula Orchestration
Plan.</xsd:documentation>
</xsd:annotation>
<xsd:element name="ObjectPlanList" type="ObjectPlanListType"></xsd:element>
<xsd:element name="PassThroughData" type="PassThroughDataType">
<xsd:annotation>
<xsd:documentation>
Ue CDATA to specify the native Orchestration Plan.
<![CDATA[ Orchestration Plan goes here ]]>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="namePrefix" type="xsd:string"></xsd:attribute>
<xsd:attribute name="description" type="xsd:string"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ObjectPlanDependencyListType">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="ObjectPlanDependency"
type="ObjectPlanDependencyDataType"
maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ObjectPlanDependencyDataType">
<xsd:sequence>
<xsd:element name="Type" type="ObjectPlanDependencyType">
<xsd:annotation>
<xsd:documentation></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ObjectPlanName" type="xsd:string"></xsd:element>
<xsd:element name="ToObjectPlanName" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="ObjectPlanDependencyType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="depends"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ObjectPlanType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="account"></xsd:enumeration>
<xsd:enumeration value="dns/key"></xsd:enumeration>
<xsd:enumeration value="dns/record"></xsd:enumeration>
<xsd:enumeration value="dns/reservation"></xsd:enumeration>
<xsd:enumeration value="dns/zone"></xsd:enumeration>
<xsd:enumeration value="ip/reservation"></xsd:enumeration>
<xsd:enumeration value="launchplan"></xsd:enumeration>
<xsd:enumeration value="permission/object"></xsd:enumeration>
<xsd:enumeration value="permission/user"></xsd:enumeration>
<xsd:enumeration value="orchestration"></xsd:enumeration>
<xsd:enumeration value="storage/volume"></xsd:enumeration>
<xsd:enumeration value="storageattachment"></xsd:enumeration>
<xsd:enumeration value="secapplication"></xsd:enumeration>
<xsd:enumeration value="seciplist"></xsd:enumeration>
<xsd:enumeration value="seclist"></xsd:enumeration>
<xsd:enumeration value="secrule"></xsd:enumeration>
<xsd:enumeration value="vethernet"></xsd:enumeration>
<xsd:enumeration value="vservice/*"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="HAPolicyType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="active"></xsd:enumeration>
<xsd:enumeration value="monitor"></xsd:enumeration>
<xsd:enumeration value="none"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="HA">
<xsd:attribute name="value" type="HAPolicyType"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ObjectPlanListType">
<xsd:sequence>
<xsd:element name="ObjectPlan" type="ObjectPlanDataType"
maxOccurs="10"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ObjectPlanDataType">
<xsd:sequence>
<xsd:element name="Type" type="ObjectPlanType"></xsd:element>
<xsd:element name="HAPolicy" type="HA"></xsd:element>
<xsd:element name="ObjectMemberList" type="ObjectMemberListType"></xsd:element>
<xsd:element name="GlobalObjectMember"
type="AbstractObjectMemberType"></xsd:element>
</xsd:sequence>
<xsd:attribute name="label" type="xsd:string"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ObjectMemberListType">
<xsd:sequence>
<xsd:element name="ObjectMember" type="AbstractObjectMemberType"
maxOccurs="unbounded" minOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AbstractObjectMemberType" abstract="true">
<xsd:annotation>
<xsd:documentation>This is an abstract type that has to be extended
by implementing member types for different kinds
of objects eg. launchplan, storage
etc.</xsd:documentation>
</xsd:annotation>
</xsd:complexType>
<xsd:complexType name="LaunchPlanMemberType">
<xsd:annotation>
<xsd:documentation>This is the implementation of
AbstractObjectMemberType corresponding to object
of type launchplan. Similar implementations for
other objects should be used for other
cases.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="AbstractObjectMemberType">
<xsd:sequence>
<xsd:element name="InstallEMAgent" type="xsd:boolean"></xsd:element>
<xsd:element name="EMAgentConfig" type="EMAgentConfigType"></xsd:element>
<xsd:element name="NumberOfInstances" type="xsd:string" ></xsd:element>
<xsd:element name="ImageList" type="xsd:string"></xsd:element>
<xsd:element name="ImageListEntry" type="xsd:string"></xsd:element>
<xsd:element name="DeploymentTarget" type="DeploymentTargetData"></xsd:element>
<xsd:element name="DefaultConfiguration" type="HardwareConfigurationType"></xsd:element>
<xsd:element name="Instances" type="VirtualMachineListType"></xsd:element>
<xsd:element name="AffinityRelationshipList"
type="RelationshipListType"></xsd:element>
</xsd:sequence>
<xsd:attribute name="namePrefix" type="xsd:string"></xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SSHCredentialType">
<xsd:annotation>
<xsd:documentation>SSH Credentials specifying username, public and
private keys or credential reference GUID
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:sequence>
<xsd:element name="Username" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="PublicSSHKey" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="PrivateSSHKey" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="EMCredentialReferenceGUID" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="HostCredentialType">
<xsd:annotation>
<xsd:documentation>Host Credentials specifying the username and
password or credential reference GUID
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:sequence>
<xsd:element name="Username" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="Password" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="EMCredentialReferenceGUID" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:schema>