IBM Cloud Manager with OpenStack
REST API Reference, version 4.1
IBM Cloud Manager with OpenStack
REST API Reference, version 4.1
Note
Before using this information and the product it supports, read the information in “Notices” on
page 203.
Contents
Chapter 1. IBM Cloud Manager with
OpenStack REST API reference
. . . . 1
What's new in IBM Cloud Manager with OpenStack
Software Development Kit (SDK) Reference – Version
4.1 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 1
Overview of IBM Cloud Manager with OpenStack
REST web services .
.
.
.
.
.
.
.
.
.
.
. 2
Web services provided by IBM Cloud Manager
with OpenStack .
.
.
.
.
.
.
.
.
.
.
. 2
Connecting to an IBM Cloud Manager with
OpenStack server .
.
.
.
.
.
.
.
.
.
.
. 3
IBM Cloud Manager with OpenStack REST API
response codes.
.
.
.
.
.
.
.
.
.
.
.
. 3
Appliance library services .
.
.
.
.
.
.
.
.
. 4
GET /appliances .
.
.
.
.
.
.
.
.
.
.
. 4
GET /appliances/{id} .
.
.
.
.
.
.
.
.
. 6
PUT/appliances/{id}
.
.
.
.
.
.
.
.
.
. 6
DELETE/appliances/{id} .
.
.
.
.
.
.
.
. 7
GET /appliances/{id}/copies .
.
.
.
.
.
.
. 7
GET /appliances/{id}/targets.
.
.
.
.
.
.
. 8
GET /appliances/{id}/customization .
.
.
.
. 9
PUT /appliances/{id}/properties .
.
.
.
.
. 13
DELETE /appliances/{id}/customization
.
.
. 14
GET /appliances/{id}/log
.
.
.
.
.
.
.
. 14
POST /appliances .
.
.
.
.
.
.
.
.
.
. 15
Authentication services
.
.
.
.
.
.
.
.
.
. 16
POST /auth .
.
.
.
.
.
.
.
.
.
.
.
. 16
GET /auth/reminder .
.
.
.
.
.
.
.
.
. 17
POST /auth/registration .
.
.
.
.
.
.
.
. 17
GET /auth/reminder/isEnabled .
.
.
.
.
. 18
Billing services .
.
.
.
.
.
.
.
.
.
.
.
. 18
GET /accounts .
.
.
.
.
.
.
.
.
.
.
. 18
POST /accounts .
.
.
.
.
.
.
.
.
.
.
. 19
GET /accounts/{id}
.
.
.
.
.
.
.
.
.
. 20
PUT /accounts/{id}
.
.
.
.
.
.
.
.
.
. 21
DELETE /accounts/{id} .
.
.
.
.
.
.
.
. 21
GET /accounts/users .
.
.
.
.
.
.
.
.
. 21
GET /accounts/{id}/users
.
.
.
.
.
.
.
. 22
GET /accounts/{id}/users/{id} .
.
.
.
.
.
. 23
POST /accounts/{id}/users .
.
.
.
.
.
.
. 23
DELETE /accounts/{id}/users/{id} .
.
.
.
. 25
GET /accounts/{id}/bills .
.
.
.
.
.
.
.
. 25
GET /accounts/{id}/bills/{id} .
.
.
.
.
.
. 26
GET /accounts/{id}/charges
.
.
.
.
.
.
. 27
GET /accounts/{id}/credits .
.
.
.
.
.
.
. 27
POST /accounts/{id}/credits
.
.
.
.
.
.
. 28
Billing cloud product services .
.
.
.
.
.
.
. 29
GET /billing/cloudProducts .
.
.
.
.
.
.
. 29
GET /billing/cloudProducts/{prodId}
.
.
.
. 30
Billing payment authorizer services .
.
.
.
.
. 30
GET /billing/paymentAuthorizers
.
.
.
.
. 30
GET /billing/paymentAuthorizers/{id} .
.
.
. 31
Configuration services .
.
.
.
.
.
.
.
.
.
. 31
GET /configuration/properties .
.
.
.
.
.
. 31
GET /configuration/ipAddressPools .
.
.
.
. 32
GET /configuration/ldap.xml .
.
.
.
.
.
. 33
PUT /configuration/ldap.xml .
.
.
.
.
.
. 34
GET /configuration/ldapCert .
.
.
.
.
.
. 34
PUT /configuration/ldapCert .
.
.
.
.
.
. 35
Cloud management services .
.
.
.
.
.
.
.
. 36
GET /clouds/certificate .
.
.
.
.
.
.
.
. 36
POST /clouds
.
.
.
.
.
.
.
.
.
.
.
. 36
DELETE /clouds/{id} .
.
.
.
.
.
.
.
.
. 38
GET /clouds .
.
.
.
.
.
.
.
.
.
.
.
. 38
GET /clouds/{id} .
.
.
.
.
.
.
.
.
.
. 39
GET /clouds?types .
.
.
.
.
.
.
.
.
.
. 40
GET /clouds/{id}/certificate
.
.
.
.
.
.
. 40
PUT /clouds/{id} .
.
.
.
.
.
.
.
.
.
. 41
Delinquency policies services
.
.
.
.
.
.
.
. 42
GET /billing/delinquencyPolicies .
.
.
.
.
. 42
GET /billing/delinquencyPolicies/{id} .
.
.
. 42
Event services
.
.
.
.
.
.
.
.
.
.
.
.
. 43
DELETE /events
.
.
.
.
.
.
.
.
.
.
. 43
GET /events .
.
.
.
.
.
.
.
.
.
.
.
. 44
GET /events/eventcsv.
.
.
.
.
.
.
.
.
. 46
GET /events/{id} .
.
.
.
.
.
.
.
.
.
. 47
Expiration policy services.
.
.
.
.
.
.
.
.
. 47
GET /expirationPolicies .
.
.
.
.
.
.
.
. 47
PUT /expirationPolicy.
.
.
.
.
.
.
.
.
. 48
GET /expirationPolicy/{id} .
.
.
.
.
.
.
. 49
PUT /expirationPolicy/{id} .
.
.
.
.
.
.
. 49
GET /projects/{id}/expirationPolicy .
.
.
.
. 50
IaaS gateway services .
.
.
.
.
.
.
.
.
.
. 51
GET /iaasgateways .
.
.
.
.
.
.
.
.
.
. 51
POST /iaasgateways .
.
.
.
.
.
.
.
.
. 52
PUT /iaasgateways/{id} .
.
.
.
.
.
.
.
. 52
GET /iaasgateways/{id} .
.
.
.
.
.
.
.
. 53
DELETE /iaasgateways/{id}.
.
.
.
.
.
.
. 53
Key pair services
.
.
.
.
.
.
.
.
.
.
.
. 54
GET /keypairs .
.
.
.
.
.
.
.
.
.
.
. 54
GET /keypairs/{id}.
.
.
.
.
.
.
.
.
.
. 55
POST /keypairs .
.
.
.
.
.
.
.
.
.
.
. 55
License key services
.
.
.
.
.
.
.
.
.
.
. 57
GET /licensing .
.
.
.
.
.
.
.
.
.
.
. 57
PUT /licensing .
.
.
.
.
.
.
.
.
.
.
. 58
Metering data services.
.
.
.
.
.
.
.
.
.
. 58
GET /udrfiles
.
.
.
.
.
.
.
.
.
.
.
. 58
GET /udrfiles/{directoryName}
.
.
.
.
.
. 59
GET /udrfiles/{directoryName}/{fileName}
.
. 59
GET /udrs
.
.
.
.
.
.
.
.
.
.
.
.
. 59
GET /udrs/{id} .
.
.
.
.
.
.
.
.
.
.
. 62
Network configuration services .
.
.
.
.
.
.
. 62
GET /networkConfigurations .
.
.
.
.
.
. 62
POST /networkConfigurations .
.
.
.
.
.
. 66
GET /networkConfigurations/{id}.
.
.
.
.
. 69
PUT /networkConfigurations/{id}.
.
.
.
.
. 71
DELETE /networkConfigurations/{id} .
.
.
. 71
GET /networkConfigurations/{id}/ipAddresses
72
POST /networkConfigurations/{id}/ipAddresses 73
GET /networkConfigurations/{id}/ipAddresses/
{ip} .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 75
PUT /networkConfigurations/{id}/ipAddresses/
{ip} .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 75
DELETE /networkConfigurations/{id}/
ipAddresses/{ip}
.
.
.
.
.
.
.
.
.
.
. 76
Product information services
.
.
.
.
.
.
.
. 77
GET /productInfo/version .
.
.
.
.
.
.
. 77
GET /productInfo/shortName .
.
.
.
.
.
. 77
GET /productInfo/name .
.
.
.
.
.
.
.
. 77
GET /productInfo/fullName
.
.
.
.
.
.
. 78
GET /productInfo/vendorName .
.
.
.
.
. 78
GET /productInfo/vendorIcon .
.
.
.
.
.
. 78
GET /productInfo/splash
.
.
.
.
.
.
.
. 79
GET /productInfo/icon{type} .
.
.
.
.
.
. 79
Project management services
.
.
.
.
.
.
.
. 80
GET /projects
.
.
.
.
.
.
.
.
.
.
.
. 80
POST /projects .
.
.
.
.
.
.
.
.
.
.
. 81
DELETE /projects/{id}
.
.
.
.
.
.
.
.
. 81
PUT /projects/{id} .
.
.
.
.
.
.
.
.
.
. 82
GET /projects/{id} .
.
.
.
.
.
.
.
.
.
. 82
GET /projects/{id}/workloads .
.
.
.
.
.
. 83
GET /projects/{id}/appliances .
.
.
.
.
.
. 84
GET /projects/{id}/users .
.
.
.
.
.
.
.
. 85
GET /projects/{id}/expirationPolicy .
.
.
.
. 86
POST /projects/{id}/users .
.
.
.
.
.
.
. 87
PUT /projects/{id}/users/{username}
.
.
.
. 88
DELETE /projects/{id}/users/{username} .
.
. 88
Request lifecycle services .
.
.
.
.
.
.
.
.
. 88
GET /requests .
.
.
.
.
.
.
.
.
.
.
. 89
PUT /requests .
.
.
.
.
.
.
.
.
.
.
. 90
GET /requests/{id} .
.
.
.
.
.
.
.
.
.
. 91
PUT /requests/{id} .
.
.
.
.
.
.
.
.
.
. 91
GET /requests/{id}/parameters
.
.
.
.
.
. 92
PUT /requests/{id}/parameters
.
.
.
.
.
. 93
GET /requests/{id}/comments .
.
.
.
.
.
. 93
POST /requests/{id}/comments
.
.
.
.
.
. 94
GET /requests/handlers .
.
.
.
.
.
.
.
. 94
PUT /requests/handlers .
.
.
.
.
.
.
.
. 97
GET /requests/requestcsv
.
.
.
.
.
.
.
. 97
DELETE /requests/requstcsv .
.
.
.
.
.
. 98
Statistics resource services
.
.
.
.
.
.
.
.
. 99
GET /stats/free .
.
.
.
.
.
.
.
.
.
.
. 99
GET /stats/totals .
.
.
.
.
.
.
.
.
.
. 101
GET /stats/usage .
.
.
.
.
.
.
.
.
.
. 102
User services
.
.
.
.
.
.
.
.
.
.
.
.
. 104
GET /users .
.
.
.
.
.
.
.
.
.
.
.
. 104
GET /users/{username} .
.
.
.
.
.
.
.
. 105
POST /users
.
.
.
.
.
.
.
.
.
.
.
. 106
PUT /users/{username} .
.
.
.
.
.
.
.
. 107
DELETE /users/{username}
.
.
.
.
.
.
. 108
Virtual server services
.
.
.
.
.
.
.
.
.
. 108
GET /workloads/{id}/virtualServers
.
.
.
. 108
GET /workloads/{id}/virtualServers/{id} .
.
. 110
GET /workloads/{id}/virtualServers/{id}/
credentials .
.
.
.
.
.
.
.
.
.
.
.
. 112
PUT /workloads/{id}/virtualServers/{id}/
credentials .
.
.
.
.
.
.
.
.
.
.
.
. 112
GET /virtualServers .
.
.
.
.
.
.
.
.
. 113
GET /virtualServers/{id}
.
.
.
.
.
.
.
. 114
PUT /virtualServers/{id}
.
.
.
.
.
.
.
. 117
GET /virtualServers/{id}/log .
.
.
.
.
.
. 118
GET /virtualServers/{id}/storages .
.
.
.
. 119
GET /virtualServers/{id}/storages/{id}.
.
.
. 119
POST /virtualServers/{id}/storages .
.
.
.
. 120
DELETE /virtualServers/{id}/storages/{id} .
. 121
GET /virtualServers/{id}/networks .
.
.
.
. 122
GET /virtualServers/{id}/networks/{id} .
.
. 124
GET /virtualServers/{id}/backups .
.
.
.
. 126
GET /virtualServers/{id}/backups/{id}
.
.
. 126
POST /virtualServers/{id}/backups .
.
.
.
. 127
PUT /virtualServers/{id}/backups/{id}
.
.
. 127
DELETE /virtualServers/{id}/backups/{id} .
. 128
GET /virtualServers/{id}/repositories .
.
.
. 128
GET /virtualServers/{id}/repositories/{id}/
customization .
.
.
.
.
.
.
.
.
.
.
. 129
Workload services .
.
.
.
.
.
.
.
.
.
.
. 129
GET /workloads .
.
.
.
.
.
.
.
.
.
. 129
POST /workloads .
.
.
.
.
.
.
.
.
.
. 131
GET /workloads/{id}
.
.
.
.
.
.
.
.
. 136
GET /workloads/{id}/customization
.
.
.
. 137
GET /workloads/{id}/target .
.
.
.
.
.
. 150
GET /workloads/{id}/log .
.
.
.
.
.
.
. 151
GET /workloads/{id}/virtualServers
.
.
.
. 151
GET /workloads/{id}/virtualServers/{id} .
.
. 153
GET /workloads/{id}/virtualServers/{id}/
credentials .
.
.
.
.
.
.
.
.
.
.
.
. 155
PUT /workloads/{id}/virtualServers/{id}/
credentials .
.
.
.
.
.
.
.
.
.
.
.
. 155
GET /workloads/{id}/timestamps .
.
.
.
. 156
PUT /workloads/{id}
.
.
.
.
.
.
.
.
. 157
DELETE /workloads/{id} .
.
.
.
.
.
.
. 161
GET /workloads/stats .
.
.
.
.
.
.
.
. 161
GET /workloads/owners .
.
.
.
.
.
.
. 162
Chapter 2. IBM OpenStack REST API
reference . . . 165
Overview of IBM OpenStack REST API reference
165
Access OpenStack APIs .
.
.
.
.
.
.
.
.
. 165
OpenStack REST APIs
.
.
.
.
.
.
.
.
.
. 166
IaaS gateway
.
.
.
.
.
.
.
.
.
.
.
. 167
Keystone .
.
.
.
.
.
.
.
.
.
.
.
.
. 168
Glance.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 172
Neutron .
.
.
.
.
.
.
.
.
.
.
.
.
. 173
Cinder.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 179
Nova .
.
.
.
.
.
.
.
.
.
.
.
.
.
. 181
Related information. . . 199
Accessibility . . . 201
Notices . . . 203
Trademarks .
.
.
.
.
.
.
.
.
.
.
.
.
. 204
Privacy policy considerations .
.
.
.
.
.
.
. 205
Chapter 1. IBM Cloud Manager with OpenStack REST API
reference
IBM
®Cloud Manager with OpenStack version 4.1 provides a self-service portal for the cloud user that
complements VMware vSphere, and Hyper-V through OpenStack. IBM Cloud Manager with OpenStack
also supports Linux Kernel-based Virtual Machine (KVM) and PowerVC through OpenStack. IBM Cloud
Manager with OpenStack is implemented as a lightweight web-based application that runs as an Open
Services Gateway initiative (OSGi) application. IBM Cloud Manager with OpenStack provides an
environment that enables cloud users serve themselves while they maintain control over the allocation of
resources.
The self-service capabilities of IBM Cloud Manager with OpenStack simplify the process to carry out
many common public or private cloud operations such as the following operations:
v
Provisioning (deploying) and de-provisioning servers
v
Drafting and cloning workloads
v
Taking workloads captures
v
Starting and shutting down servers
v
Resizing existing servers
v
Creating projects to give team-specific access to workloads
v
Providing network configurations that set unique network properties to different workloads
v
Billing, accounting, and metering support
v
Providing request and approval workflow support
v
Identifying the current capacity of the resources in a virtualization environment
These and many other features are included in this version of the IBM Cloud Manager with OpenStack.
For more detailed documentation about the IBM Cloud Manager with OpenStack capabilities, see the
IBM Cloud Manager with OpenStack User Guide and the IBM Cloud Manager with OpenStack
Administrator Guide.
Related information
:
“Code license and disclaimer information” on page 205
What's new in IBM Cloud Manager with OpenStack Software
Development Kit (SDK) Reference – Version 4.1
The IBM Cloud Manager with OpenStack Software Development Kit (SDK) Reference, Version 4.1
introduces new and updated services.
Note:
IBM Cloud Manager with OpenStack Version 4.1 aligns more closely with OpenStack terminology.
For example, in the user interface, the terms “workload ” and “appliance” are replaced with “instance”
and “image”. However, to maintain API compatibility, the REST resources still use the former terms.
Chapter 2 describes the IBM OpenStack REST APIs that IBM Cloud Manager with OpenStack provides.
Iaas Gateway services
v
“IaaS gateway services” on page 51
License key services
Delete /workloads/{id}
v
“DELETE /workloads/{id}” on page 161
POST /auth/registration
v
“POST /auth/registration” on page 17
Delete /users/{username}
v
“DELETE /users/{username}” on page 108
GET /accounts/{id}/bills
v
“GET /accounts/{id}/bills” on page 25
v
“GET /accounts/{id}/bills/{id}” on page 26
Overview of IBM Cloud Manager with OpenStack REST web services
IBM Cloud Manager with OpenStack provides a set of APIs that can be used to access IBM Cloud
Manager with OpenStack data and services from applications that are running outside of the IBM Cloud
Manager with OpenStack framework. These APIs are based on the Representational State Transfer (REST)
architecture and are accessed by using the HTTP or HTTPS protocol.
REST refers to an architecture used to create stateless web services that are typically accessed by using
the HTTP or HTTPS protocol.
The REST APIs are implemented with complete compatibility from release to release. This means is that
newer versions of IBM Cloud Manager with OpenStack do not have an impact on the code that uses the
existing REST APIs.
Web services provided by IBM Cloud Manager with OpenStack
IBM Cloud Manager with OpenStack provides the web services that are listed here.
v
Appliance library services
v
Authentication services
v
Billing services
v
Billing cloud product services
v
Billing payment authorizer services
v
Cloud management services
v
Configuration services
v
Delinquency policies services
v
Event services
v
Expiration policy services
v
Key pair services
v
Metering data services
v
Network configuration services
v
Product information services
v
Project management services
v
Request lifecycle services
v
Statistics resource services
v
User services
v
Virtual server services
v
Workload services
Connecting to an IBM Cloud Manager with OpenStack server
IBM Cloud Manager with OpenStack is implemented as a lightweight web-based application that runs as
an OSGi application.
For production environments, IBM recommends that you use secure sockets layer (SSL) HTTPS
communication between the IBM Cloud Manager with OpenStack server and the client that is using the
IBM Cloud Manager with OpenStack REST APIs. Using SSL provides a greater level of security for the
data on the network. For more information about configuring the server to use SSL communications, see
the IBM Cloud Manager with OpenStack Administrator Guide.
All APIs, except for the authentication APIs, require authentication. The preferred method to provide
credential information is to use the /auth API. Use the /auth API to authenticate your user name and
password and then use an authentication token for other APIs. For more information, see “POST /auth”
on page 16 API.
To establish a connection to the IBM Cloud Manager with OpenStack server, the format of the URL must
be:
<communication_scheme>://<SCE_server_host>:<port>/cloud/api/<service>
Where
<communication_scheme>
is the scheme that is used for the communication protocol, such as HTTP or HTTPS.
<SCE_server_host>
is the host (where the IBM Cloud Manager with OpenStack server is running) which is contacted as the
data provider.
<port>
is the remote port that is used for the scheme. The IBM Cloud Manager with OpenStack server currently
uses 18080 for HTTP requests and 18443 for HTTPS requests.
IBM Cloud Manager with OpenStack REST API response codes
Find detailed information about the REST API response codes.
200 OK
The request was fulfilled successfully.
201 Created
Following a POST command, this response indicates that the specified resource was successfully
created. This response includes the URI of the newly created resource in the HTTP Location
header.
202 Accepted
The request is accepted for processing, but the processing is not complete. The request might
eventually be acted upon, or it might be disallowed when processing takes place.
This response code is also used to indicate that a request is accepted, but that the request must be
approved by an administrator. The URI of the request that must be approved is included in the
HTTP Location header of the response. Thus, users can track the status of their request by using
that URI.
400 Bad request
The request has incorrect syntax. For example, the JSON object is not recognized or is not valid
JSON.
401 Unauthorized
The parameter to this message gives a specification of authorization schemes that are acceptable.
Submit the request with a suitable Authorization header.
404 Not found
The server cannot find the resource that is requested in the URI.
500 Internal Error
The server encountered an unexpected condition that prevented it from fulfilling the request.
For more information, see the Response.Status Javadoc.
Related information
:
Response.Status Javadoc
Appliance library services
IBM Cloud Manager with OpenStack provides the following services for appliance libraries.
Related information
:
“Code license and disclaimer information” on page 205
GET /appliances
This service retrieves the appliances available in the appliance libraries of the cloud.
Sample Request
GET http://localhost:18080/cloud/api/appliances?architecture=*&cloudGroupId=251&user=admin
No HTTP body required.
Query Parameters
Name
Description
Default
Required
user
Gets the list of appliances
that this user name can see.
N/A
No
cloudGroupId
Filters the list of appliances
by the specified
cloudGroupId.
*
No
architecture
Filters the list of appliances
by the specified platform
architecture.
*
No
start
The index of the first
records to return.
0
No
count
The number of records to
return.
0
No
owner
Filters the list of appliances
by the specified owner.
*
No
Sample Response
HTTP Status: 200
HTTP Response Body:
{
"total": "2",
"appliances": [
{
"cloudName": "mpcapture",
"changedDate": 1340720783000,
"cloudGroupId": "251",
"name": "mpcapture",
"uri": "http://localhost:18080/cloud/api/appliances/347",
"cloudId": "cloud://251/49826",
"state": {
"label": "OK",
"id": "OK"
},
"architecture": "Power",
"projectUri": "http://localhost:18080/cloud/api/projects/151",
"cloudGroupName": "9.123.100.141",
"specificationVersion": "1.1",
"hypervisor": "PowerVM",
"version": "1.1",
"id": "347",
"revision": "1.1",
"description": "true"
},
{
"cloudName": "mpcapture",
"changedDate": 1340199429000,
"cloudGroupId": "251",
"name": "mpcapture",
"uri": "http://localhost:18080/cloud/api/appliances/303",
"cloudId": "cloud://251/49567",
"state": {
"label": "Unknown",
"id": "UNKNOWN"
},
"architecture": "Power",
"projectUri": "http://localhost:18080/cloud/api/projects/151",
"cloudGroupName": "9.123.100.141",
"specificationVersion": "1.1",
"hypervisor": "PowerVM",
"version": "1.1",
"id": "303",
"revision": "1.1",
"description": "true"
}
]
2.
If the appliance is a copy of another appliance, the HTTP Response Body shows the creator as
follows:
{
cloudId: "cloud://301/46047",
cloudGroupId: "301",
projectUri: "http://localhost:18080/cloud/api/projects/1",
cloudGroupName: "9.123.100.120",
state: {
id: "OK",
label: "OK"
},
architecture: "Power",
logsUri: "http://localhost:18080/cloud/api/appliances/357/log",
uri: "http://localhost:18080/cloud/api/appliances/357",
specificationVersion: "1.1",
creator: {
id: "admin",
name: "SmartCloud Entry Administrator"
},
cloudName: "RHEL63-Master",
id: "357",
changedDate: 1358392009084,
revision: "1.1",
customizationUri: "http://localhost:18080/cloud/api/appliances/357/customization",
description: "root / passw0rd - RSCT 1.3.2.1 + fixes, AE 2.4.2.1",
hypervisor: "PowerVM",
name: "RHEL63-Master 2013-01-17 11:06:44",
isMaster: false,
targetsUri: "http://localhost:18080/cloud/api/appliances/357/targets"
}
GET /appliances/{id}
This service retrieves the properties of a specific appliance by id.
Sample Request
GET http://localhost:18080/cloud/api/appliances/347
No HTTP body required.
Sample Response
HTTP Status: 200
Localized values: "state"
HTTP Response Body:
{
"cloudName": "mpcapture",
"changedDate": 1340720783000,
"priority": 2,
"cloudGroupId": "251",
"targetsUri": "http://localhost:18080/cloud/api/appliances/347/targets",
"name": "mpcapture",
"uri": "http://localhost:18080/cloud/api/appliances/347",
"cloudId": "cloud://251/49826",
"state": {
"label": "OK",
"id": "OK"
},
"architecture": "Power",
"projectUri": "http://localhost:18080/cloud/api/projects/151",
"cloudGroupName": "9.123.100.141",
"specificationVersion": "1.1",
"hypervisor": "PowerVM",
"customizationUri": "http://localhost:18080/cloud/api/appliances/347/customization",
"id": "347",
"revision": "1.1",
"description": "true",
"logsUri": "http://localhost:18080/cloud/api/appliances/347/log"
}
PUT/appliances/{id}
This service updates the specific appliance by id.
{
"name": "MyApp on AIX Image (dual-NIC) New Name",
"description": "Some Better Descripton)"
}
Sample Response
HTTP Status: 200
DELETE/appliances/{id}
This service deletes an appliance that was captured by IBM Cloud Manager with OpenStack but failed
during capture or was deleted from the cloud.
This service deletes an appliance. If the appliance is in “Failed” state, “Unknown” state, or is a copy of
another appliance, the appliance is only deleted from IBM Cloud Manager with OpenStack. If the
appliance is in an OpenStack cloud, then it is deleted from the cloud as well. Deleting a master appliance
that is in an OpenStack cloud will delete all copies of the appliance as well.
Sample Request
DELETE http://host/cloud/api/appliances/5415
No HTTP body required.
Sample Response
HTTP Status: 200
GET /appliances/{id}/copies
This service retrieves copies of the target appliance that is available in the cloud.
The master appliance is the first appliance link to the VMWare or OpenStack cloud appliance. When the
ID is the master image, this function returns a list of all its copies. When the ID is a copied image, this
function returns its master and all its copies
Query Parameters
N/A
Sample Request
Get http://host/cloud/api/appliances/1122/copies
Sample Response
{
total: "1",
appliances: [
{
cloudId: "cloud://301/46047",
cloudGroupId: "301",
projectUri: "http://localhost:18080/cloud/api/projects/1",
cloudGroupName: "9.123.100.120",
state: {
id: "UNKNOWN",
label: "Unknown"
},
architecture: "Power",
uri: "http://localhost:18080/cloud/api/appliances/357",
specificationVersion: "1.1",
cloudName: "RHEL63-Master",
version: "1.1",
id: "357",
changedDate: 1358392009084,
revision: "1.1",
description: "root / passw0rd - RSCT 1.3.2.1 + fixes, AE 2.4.2.1",
hypervisor: "PowerVM",
name: "RHEL63-Master 2013-01-17 11:06:44",
isMaster: false,
projectName: "Public"
}
]
}
GET /appliances/{id}/targets
This service retrieves the targets that are available in the cloud and that can handle a workload of this
appliance.
This list of targets can be used to select a target by ID and update the default target in the appliance
default customization. This is an admin web service.
Query Parameters
Name
Description
Default
Required
cpu
The desired CPU size
0
No
memory
The desired memory size
0
No
Sample Request
To retrieve the workload targets for appliance with ID 1
GET http://host/cloud/api/appliances/1/targets
Sample Response
{
"total": "5",
"identifier": "id",
"targets": [
{
"id": "cloud://551/123993",
"name": "DRSCluster (CLUSTER)",
"type": {
"label": "Cluster",
"id": "CLUSTER"
},
"timeStamp": "Wed May 22 23:42:05 CST 2013",
"parent": "cloud://551/1239",
"hypervisor": "VMware",
"cloudGroupId": "31801",
"architecture": "x86",
"hypervisorVersion": "5.0",
"totalMem": 131046,
"totalCpu": 32,
"usedCpu": 20,
"usedMem": 105421,
"totalDisk": 7809,
"usedDisk": 7051,
"children": [
"cloud://31801/44"
],
"virtualServers": [],
"state": {
"label": "OK",
"id": "ACTIVE"
},
"isDeployable": true
}
]
}
GET /appliances/{id}/customization
This service retrieves a default customization for an appliance.
When a user deploys an appliance, IBM Cloud Manager with OpenStack uses the default customization
as the workload configuration for the appliance. Customizations are configured by administrators.
This is an admin web service.
Query Parameters
N/A
Sample Request
To retrieve the default customization for appliance with ID 347:
GET http://host/cloud/api/appliances/1/customization
Sample Response
{ "target": "cloud://352/352", "properties": [ {"category": "Network adapters", "valueOrigin": [ "36ea3a9b-d4e6-4b4f-b13b-ddafa55a91e9" ], "values": [ "36ea3a9b-d4e6-4b4f-b13b-ddafa55a91e9" ], "basic": false,
"description": "Networks settings of the image or virtual machine", "classification": {
"id": "NETWORK", "label": "Network" },
"name": "networkdevice.Network adapters.networks", "required": true, "type": "MULTIPLE_SELECTION", "rules": [ { "id": "max", "value": "1" }, { "id": "min", "value": "1" } ], "options": [ { "id": "36ea3a9b-d4e6-4b4f-b13b-ddafa55a91e9", "value": "flat (11.1.1.2 - 11.1.1.254)" } ] }, {
"category": "OpenStack Flavor", "values": [
"1" ],
"basic": true,
"description": "Flavors describe the different options for sizing the deployed instances", "classification": { "id": "HARDWARE", "label": "Hardware" }, "name": "openstack.flavors", "required": true, "type": "SINGLE_SELECTION", "options": [ { "id": "1", "value": "{\"ram\":512,\"disk\":1,\"name\":\"m1.tiny\",\"OS-FLV-EXT-DATA:ephemeral\":0,\"vcpus\":1}" }, { "id": "2", "value": "{\"ram\":2048,\"disk\":20,\"name\":\"m1.small\",\"OS-FLV-EXT-DATA:ephemeral\":0,\"vcpus\":1}" }, { "id": "3", "value": "{\"ram\":4096,\"disk\":40,\"name\":\"m1.medium\",\"OS-FLV-EXT-DATA:ephemeral\":0,\"vcpus\":2}" }, { "id": "4", "value": "{\"ram\":8192,\"disk\":80,\"name\":\"m1.large\",\"OS-FLV-EXT-DATA:ephemeral\":0,\"vcpus\":4}" }, { "id": "5", "value": "{\"ram\":16384,\"disk\":160,\"name\":\"m1.xlarge\",\"OS-FLV-EXT-DATA:ephemeral\":0,\"vcpus\":8}" } ] }, {
"category": "Virtual Machine Configuration", "values": [
true ],
"basic": false,
"description": "Enable config drive (used to pass additional configuration data)", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.config.drive", "required": false, "type": "BOOLEAN" }, {
"category": "Access and Security", "values": [
"" ],
"basic": true,
"description": "Keypair to use for SSH access to the virtual machine", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.keypairs", "required": false, "type": "SINGLE_SELECTION", "options": [ { "id": "", "value": "" } ] }, {
"category": "Virtual Machine Customization", "values": [
"" ],
"classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.customizations", "required": false, "type": "STRING", "rules": [ { "id": "maxlen", "value": "65535" } ] }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the contents of personality file 1", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.source.1", "required": false, "type": "STRING", "rules": [ { "id": "maxlen", "value": "65536" } ] }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the target path and file name for personality file 1", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.target.1", "required": false, "type": "STRING" }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the contents of personality file 2", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.source.2", "required": false, "type": "STRING", "rules": [ { "id": "maxlen", "value": "65536" } ] }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the target path and file name for personality file 2", "classification": {
"id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.target.2", "required": false, "type": "STRING" }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the contents of personality file 3", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.source.3", "required": false, "type": "STRING", "rules": [ { "id": "maxlen", "value": "65536" } ] }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the target path and file name for personality file 3", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.target.3", "required": false, "type": "STRING" }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the contents of personality file 4", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.source.4", "required": false, "type": "STRING", "rules": [ { "id": "maxlen", "value": "65536" } ] }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the target path and file name for personality file 4", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.target.4", "required": false, "type": "STRING"
{
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the contents of personality file 5", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.source.5", "required": false, "type": "STRING", "rules": [ { "id": "maxlen", "value": "65536" } ] }, {
"category": "Virtual Machine Personality Files", "values": [
"" ],
"basic": false,
"description": "Enter the target path and file name for personality file 5", "classification": { "id": "SOFTWARE", "label": "Software" }, "name": "openstack.server.personality.target.5", "required": false, "type": "STRING" } ], "instances": 1, "appliance": { "name": "mini-hyper-v", "uri": "http://10.1.0.81:18080/cloud/api/appliances/1151" } }