This chapter describes the different REST APIs and covers the following:
To use the REST API tool, follow these steps:
Use REST tool (for example Chrome's Postman plugin) to visit the Oracle Compute web service. The Oracle Compute web service entry is https://hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure. Before you call the API, you must use a trusted Enterprise Manager certificate.
Set the authorization header, using Basic Auth, enter the Enterprise Manager username and password, and click Refresh Header.
Set the Accept or Content-Type header value to application/json to perform the request.
The following table describes the REST HTTP methods you can use for OPCM objects:
Table 11-1 Rest HTTP Methods
Method | Description |
---|---|
POST |
Creates an object by using the JSON-formatted data in the request body. |
GET |
Retrieves information about the object/s specified in the request URI. |
PUT |
Updates the attributes of an object by using the JSON-formatted data in the request body. |
DELETE |
Deletes the object specified in the request URI. |
This section provides an overview of the REST resources.
Table 11-2 REST Resources for Target Type
Target Type | URL |
---|---|
Oracle Compute Site |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites |
Cluster |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/clusters |
Virtual Platform |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/virtualplatforms |
Virtual Server |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/virtualservers |
Physical Server |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/physicalservers |
Orchestration |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services |
Table 11-3 Network Resources of Site
Network Resource | URL |
---|---|
ServiceNetwork |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/servicenetworks |
vEthernet |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vethernets |
Subnet |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vnets |
IP Reservation |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vnetreservations |
Subnet Access |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/vnetaccess |
Table 11-4 Storage Resources of Site
Storage Resource | URL |
---|---|
StoragePool |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/storagepools |
StorageVolume |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/storagevolumes |
Table 11-5 Tenancy and Image Management Resources of Site
Resource | URL | Supported Operations | Comments |
---|---|---|---|
Tenant |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/tenants |
GET, POST, PUT |
N/A |
User |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/users |
GET, POST, PUT, DELETE |
N/A |
Quota |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/quotas |
GET, POST, PUT, DELETE |
N/A |
Image Templates |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/templates |
GET, DELETE |
N/A |
Image Templates |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<SITE_ID>/templates/swlib |
POST |
API to add templates through the software library using the software library component URN. |
Software Library Components |
/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/swlibcomponents |
GET |
To get the component URN of uploaded software library components. |
The cloud framework resources used to create and view service requests, service offerings, service types, and service instances that are required in orchestration.
Table 11-6 Cloud Framework Resources
CFW Resource | URL | Supported Operations | Comments |
---|---|---|---|
Service Type |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicetypes/ |
GET |
Not required for Orchestration but required to get the Service types. Look forORACLE_NIMBULA_ORCHESTRATION_SERVICE. |
Services |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/ |
GET, POST |
POST is used to create services (in this case orchestration).GET is used to retrieve service information like GUID that is required for POST requests. |
Service Metadata |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceguid}/metadata |
GET |
Need to invoke this to get the Orchestration job parameters, and use them to build the request json to invoke Create Serivce.(POST of Services) |
Service Instances |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/ |
GET |
Gets all the instances for the logged in User, and is used to get the instance guid. |
Service Instances |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceguid} |
GET, PUT |
GET instance details.PUT is used to execute the action on the Service Instance (requires action id) |
Service Actions |
/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 returns all the actions with action ids on the Service Instance.GET returns the action inputs needed to invoke the Action on the Service Instance. |
Service Requests |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests |
GET |
Gets the service requests. |
Service Request |
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid} |
GET, PUT, DELETE |
GET gets the service request details.PUT reschedules the request.DELETE deletes the request. |
The orchestration use cases are:
To create an orchestration, you must make a set of calls using the CFW resources by following these steps:
Call the Services to GET the Service GUID.
URL: Refer the CFW table and prefix the https://Hostname:port to the url as follows:
https://<hostname:port>/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/
Input: None
Output:
{"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"}}
Use the meta link from the above output to get the metadata for the service to form the input.
URL: Specify the service metadata using the GUID from output in Step 1.
Input: None
Output:
{"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>"}
To build the orch_plan.xml, refer to the XSD in Section 5.4, "References".
Invoke the Create Orchestration Service Instance by building the input using the response parameters from Step 2.
URL: Use Services URL with POST
Input: Using the orchestration plan (orch_plan) as the input, build the XML using the values corresponding to the site like (Image List Name , Shape Name, Network, Storage, and so on). Repeat the same for all the ObjectPlans and specify the appropriate site_name value.
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"}]}
Output: Service Request Id if the request is successful. If unsuccessful, use the Service Request URL to check the service request status.
Performing an orchestration action involves the following steps:
Get the Instance ID.
URL: Use the GET on Service Instances URL and append ?expanded=true -
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?expanded=true
Input: None
Output:
{"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"}}]}
Get the ID of the action to be performed.
URL: Invoke Service Actions using GET
https:/hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/51087FBC61473C5477167DAAB6BD1871/actions
Input: None
Output:
{"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"}}
Get the inputs for the action
URL: Invoke GET on Service Actions URL using the Action Id from the output in Step 2.
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/E8E4395513C2B72F01D91E6DB46D1701/actions/2
Input: None
Output:
{"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"}}
Invoke the action. Prepare the Input for the action from the above output. As the above case requires four input parameters to perform this action, the request must contain the four elements {"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: Use PUT to invoke the action.
/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/E8E4395513C2B72F01D91E6DB46D1701
Input:
{"actionId":2,"configurations":[{"name":"requestId", "value":"7"},{"name":"site_name","value":"site1"},{"name":"instance_names","value":["/hr/public/simple1"]}]}
Output:
{"requests": [{"id": "4","actionName": "DELETE","canonicalLink":
{"href":"https://hostname:port/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/4"}}]}
Check the status of the service request using the Service Request GET URL.
The service network use cases are:
Description: Post IPoIB service network JSON data.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/servicenetworks
Input:
{ "name": "/cloud/public/svcnet", "type": "IPoIB", "description": "svcnet", "foreign_partition": false, "num_provider_nodes": 1 }
Output/Response:
{ "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" } ] }
Description: PUT the JSON data to the Service Network's URL. The name in the JSON data must be the same as the name in the PUT URL.
Method: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/servicenetworks/cloud/public/svcnet
Input:
{ "name": "/cloud/public/svcnet", "id": "/cloud/public/svcnet", "type": "eoib", "description": "svcnet - updated", "pkey": "0x1028" }
Output/Response:
{ "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" } ] }
Description: Send a DELETE request to the Service Network's URL.
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/servicenetworks/cloud/public/svcnet
Input: None
Output/Response: None
Status Returned: Status 204 No Content
The vEthernet use cases are:
Description: Post vEthernet JSON data.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/vethernets
Input:
{ "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" ] } }
Output/Response:
{ "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" } ] }
Description: PUT the the JSON data to the vEthernet' s URL. The 'description', 'svcnet', 'id', and 'switchports' are editable. The name in the JSON data must be the same as the name in the PUT URL.
Note:
You can see the difference from the json format of the POST request. In this case, the vlanId attribute is used instead of the id attribute in the POST request.Method: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/vethernets/cloud/public/eoibveth
Input:
{ "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\"]" ] }
Output/Response:
{ "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" } ] }
The subnet use cases are:
Description: Post EoIB Subnet JSON data.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets
Output/Response:
{ "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" } ]
Description: Post IPoIB Subnet JSON data.
Creating an IPoIB Subnet in Global IP mode.
URL:
https:/<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets
Input:
{ "name": "/cloud/public/ipoibsubnet_ip", "vethernet": "/cloud/public/ipoibveth", //choose an IPoIB vEthernet "description": "/cloud/public/ipoibsubnet global ip mode", "global_ip_num": 10 }
Output/Response:
{ "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" } ] }
Creating IPoIB Subnet in CIDR mode
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets
Input
{ "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" ] }
Output/Response:
{ "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" } ] }
Description: PUT the JSON data to the Subnet' s URL. The description, global_ip_num, cidr, gateway, ipranges, and vethernet fields are editable. The name in the JSON data must be the same as the name in the PUT URL..
Method: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnets/cloud/public/ipoibsubnet_ip
Input:
{ "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 }
Output/Response:
{ "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" } ] }
Create IP Reservation
Description: Post IP reservation JSON data.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetreservations
Input:
{ "name": "/<tenant>/public/192_168_220_2", "ip": "192.168.220.2", "vnet": "/cloud/public/ipoibsubnet_cidr" //choose a subnet }
Output/Response:
{ "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" } ] }
Delete IP Reservation
Description: Send a DELETE request to the IP Reservation URL.
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/vnetaccess/<tenant>/public/vnetaccess_cidr
Output/Response: Status 204 No Content
Create Subnet Access
Description: Post Subnet Access JSON data.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetaccess
Input:
{ "name": "/<tenant>/public/vnetaccess_cidr", "vnet": "/cloud/public/ipoibsubnet_cidr", //choose a subnet "provider": true }
Output/Response:
{ "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" } ] }
Delete Subnet Access
Description: Send a DELETE request to the Subnet Access URL.
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/vnetreservations/<tenant>/public/192_168_220_2
Output/Response: Status 204 No Content
Create Storage Volume
Description: Post Storage Volume JSON data.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/storagevolumes
Input:
{ "name": "/<tenant>/public/storage/volume1", "description" :"test volume", "size": "1G" }
Output/Response:
{ "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" } ]
Delete Storage Volume
Description: Send a DELETE request to the Storage Volume URL
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/<site_id>/storagevolumes/<tenant>/public/storage/volume1
Output/Response: Status 204 No Content
List Tenant
Description: This is a GET request that lists all the tenants for a particular site. The output is displayed in two formats:
application/json: This lists all the tenants with all their attributes in a JSON format.
application/discovery+json: This lists the names of all the tenants. This is to keep the EM REST services in line with Oracle Compute.
Method: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
Input: No input required for a REST GET request. Set the content type header of the request as application/json or application/discovery+json.
Output/Response: All the tenants for the Oracle Compute Site are returned in a json format.
{ "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" } ] } }
Get a Tenant
Description: This is a GET request that returns a specific tenant listed in the URL.
Method: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants/{tenantName}
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
tenantName: Name of the tenant to be returned
Input: No input required for a REST GET request. Set the content type header of the request as application/json.
Output/Response: Requested tenant will be returned in JSON format.
{ "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" } ] }
Create a Tenant
Description: This is a POST request to create a tenant with the given input in JSON format.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants/
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
tenantName: Name of the tenant to be returned
Input: JSON representation of the tenant object as EM REST service. Set the content type and accept header of the request as application/json.
{ "name": "TestTenant", "description": "Cloud administration tenant", "password": "EXAlogic_123", "email": "test@oracle.com" }
Output/Response: Created tenant will be returned in JSON format.
{ "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" } ] }
Update a Tenant
Description: This is a PUT request to update a tenant with the given input in the JSON format.
Method: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/tenants/tenantName
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
tenantName: Name of the tenant to be updated
Input: JSON representation of the tenant object as EM REST service. Set the content type and accept header of the request as application/json.
{ "name": "TestTenant", "description": "Cloud administration tenant", "password": "EXAlogic_123", }
Output: Updated tenant will be returned in JSON format.
{ "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" }] }
List User
Description: This is a GET request that lists all the users for a particular site. The output is displayed in two formats:
application/json: This lists all the users with all their attributes in a JSON format.
application/discovery+json: This lists the names of all the users. This is to keep the EM REST services in line with Oracle Compute.
Method: GET
URL:
https://<hostnameport>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
Input: No input required for a REST GET request. Set the content type header of the request as application/json or application/discovery+json.
Output/Response: All the users for the Oracle Compute Site are returned in a json format.
{ "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" } ] } }
Get a User
Description: This is a GET request that returns a specific user listed in the URL.
Method: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/{userName}
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualizaion/infrastructure/v1/sites/
userName: Name of the user to be returned
Input: No input required for a REST GET request. Set the content type header of the request as application/json.
Output/Response: Requested user will be returned in JSON format.
{ "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" } ] }
Create a User
Description: This is a POST request to create a user with the given input in JSON format.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
userName: Name of the user to be returned
Input: JSON representation of the user object as EM REST service. Set the content type and accept header of the request as application/json.
{ "username": "/user2/testuser", "customer": "user2", "blacklisted": false, "fullname": "Test User", "role":"/cloud/users", "password": "EXAlogic_123", "email": "tuser@oracle.com" }
Output/Response: Created user will be returned in JSON format.
{ "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" } ] }
Update a User
Description: This is a PUT request to update a user with the given input in the JSON format.
Method: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/userName
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
userName: Name of the user to be updated
Input: JSON representation of the tenant object as EM REST service. Set the content type and accept header of the request as application/json.
{ "username": "/user2/testuser", "customer": "user2", "blacklisted": false, "fullname": "Test User", "role":"/cloud/users", "password": "EXAlogic_123", "email": "tuser123@oracle.com" }
Output/Response: Updated tenant will be returned in JSON format.
{ "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" } ] }
Delete a User
Description: This is a DELETE request to delete a specific user requested in the URL.
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/users/userName
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
userName: Name of the user to be updated
Input: No input required for a REST DELETE request.
Output/Response: No Output for REST DELETE request. A response code of 206 (No Content) is returned.
List Quota
Description: This is a GET request that lists the quota allocated for a particular site. The output is displayed in two formats:
application/json: This lists all the quotas with all their attributes in a JSON format.
application/discovery+json: This lists the names of all the quotas. This is to keep the EM REST services in line with Oracle Compute.
Method: GET
URL:
https://<hostnameport>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
Input: No input required for a REST GET request. Set the content type header of the request as application/json or application/discovery+json.
Output/Response: All the quotas for the Oracle Compute Site are returned in a json format.
{ "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" } ] } }
Get a Quota
Description: This is a GET request that returns a specific quota listed in the URL.
Method: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas/{quotaName}
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
quotaName: Name of the quota to be returned
Input: No input required for a REST GET request. Set the content type header of the request as application/json.
Output/Response: Requested quota will be returned in JSON format.
{ "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" } ] }
Update Quota
Description: This is a PUT request to update the quota with the given input in the JSON format.
Method: PUT
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas/quotaName
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
quotaName: Name of the quota to be updated
Input: JSON representation of the tenant object as EM REST service. Set the content type and accept header of the request as 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 } } }
Output/Response: Updated quota will be returned in JSON format.
{ "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" } ] }
Delete Quota
Description: This is a DELETE request to delete a specific quota requested in the URL.
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/quotas/quotaName
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
quotaName: Name of the quota to be deleted.
Input: No input required for a REST DELETE request.
Output/Response: No Output for REST DELETE request. A response code of 206 (No Content) is returned.
List Templates
Description: This is a GET request that lists all the templates for a particular site. The output is displayed in two formats:
application/json: This lists all the templates with all their attributes in a JSON format.
application/discovery+json: This lists the names of all the templates. This is to keep the EM REST services in line with Oracle Compute.
Method: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
Input: No input required for a REST GET request. Set the content type header of the request as application/json or application/discovery+json.
Output/Response: All the quotas for the Oracle Compute Site are returned in a json format.
{ "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 } }, } }
Get a Template
Description: This is a GET request that returns a specific template listed in the URL.
Method: GET
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/{templateName}
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
templateName: Name of the template to be returned
Input: No input required for a REST GET request. Set the content type header of the request as application/json.
Output/Response: Requested quota will be returned in JSON format.
{ "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 } }
Delete a Template
Description: This is a DELETE request to delete a specific template requested in the URL.
Method: DELETE
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/templateName
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
templateName: Name of the template to be deleted.
Input: No input required for a REST DELETE request.
Output/Response: No Output for REST DELETE request. A response code of 206 (No Content) is returned.
Upload a Template
Description: This is a POST request to upload a template using software library with a given input in JSON format.
Method: POST
URL:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/{SITE_ID}/templates/swlib
hostname: OMS host name
port: OMS HTTPS port
SITE_ID: The Site ID is returned when site resource is accessed using
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/
templateName: Name of the template to be deleted.
Input: JSON representation of the tenant object as EM REST service. Set the content type and accept header of the request as 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" } }
Output/Response: A job is submitted and a job id is returned in JSON format."{ \"job_id\":\"1A57035ED0D819A1E053179AF40A4A85\"}"
To get the component urn (urn) field in the above json, make sure the software library components have been uploaded and run the REST API:
https://<hostname:port>/em/websvcs/restful/extws/virtualization/infrastructure/v1/sites/swlibcomponents
Register and Deregister a Site
The Oracle Compute site can be registered using POST method to "/sites/" namespace with a JSON represents the site information, then a job will be submitted to register the site.
For example:
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",\\\\ }
A job id will be returned such as "{ \"job_id\":\"139600CD1BC11B59E053481DF50A6F62\"}"
Add an image (Register Site)
The table below displays the JSON format used for registering the site.
Table 11-7 JSON format used for registering the site
Property | Description |
---|---|
site_target_name |
The target name for the site. |
endpoint_url |
Nimbula site's URL. |
agent_url |
The url for the agent monitoring the target. |
slave_agent_url |
The failover monitoring agent to be used as the standby agent. You can specify a list of agents in a JSON array format as follows: ["url1","url2"]. |
monitoring_cred_username |
The monitoring credentials user name for the Oracle Compute site. |
monitoring_cred_password |
The monitoring credentials password for the Oracle Compute site. |
graphite_url |
The graphite URL. |
graphite_username |
The graphite credentials user name. |
graphite_password |
The graphite credentials password. |
graphite_site_prefix |
The graphite prefix string. |
snmp_cred_type |
The SNMP credentials type. The available values are V1, V2, and V3. |
snmp_community_string |
The SNMP community string available when snmp_cred_type is V1 or V2. |
snmp_username |
The user name for the SNMP credentials available when the snmp_cred_type is V3. |
snmp_authpassword |
The SNMP authorization password available when the snmp_cred_type is V3. |
snmp_authprotocol |
The SNMP authorization protocol (MD5 or SHA) available when the snmp_cred_type is V3. |
snmp_privpassword |
The SNMP privacy password available when the snmp_cred_type is V3 |
The Oracle Compute Site can be de-registered using the Delete option. A job will be submitted to de-register the site. For example:"{ \"job_id\":\"10D4FDE1874E201BE053461DF50A5760\"}"A job id will be returned.
Use the XSD below to build the orchestration plan (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>