IBM Hyper-Scale Manager 5.5.2 REST API
IBM Hyper-Scale Manager 5.5.2 REST API
Version 5.5.2
IBM
SC27-6440-07
Note
Before using this information and the product it supports, read the information in “Notices” on page
99.
Edition Notice
Publication number: SC27-6440-07. This edition applies to IBM® Hyper-Scale Manager version 5.5.2 and to all
subsequent releases and modifications, until otherwise indicated in a newer publication.
© Copyright International Business Machines Corporation 2014, 2019.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
Tables................................................................................................................. vii
Chapter 1. Introduction......................................................................................... 1
Protocol version........................................................................................................................................... 1
HTTP methods............................................................................................................................................. 1
URL scope specifiers and resource names..................................................................................................1
iii
Pool deletion requests......................................................................................................................... 21
Volume update requests............................................................................................................................22
Volume creation requests.................................................................................................................... 22
Volume resize requests........................................................................................................................ 23
Volume lock requests...........................................................................................................................23
Volume unlock requests.......................................................................................................................24
Volume rename requests..................................................................................................................... 24
Volume copy requests..........................................................................................................................25
Volume move requests.........................................................................................................................25
Volume deletion requests.................................................................................................................... 26
Volume restore from snapshot requests............................................................................................. 27
Volume snapshot update requests........................................................................................................... 27
Volume snapshot creation requests.................................................................................................... 27
Volume snapshot overwrite requests.................................................................................................. 28
Volume snapshot lock requests...........................................................................................................28
Volume snapshot unlock requests.......................................................................................................29
Volume snapshot duplication requests............................................................................................... 29
Volume snapshot deletion requests.................................................................................................... 30
Volume snapshot format requests.......................................................................................................30
Volume snapshot restore volume requests.........................................................................................30
Volume snapshot restore snapshot requests......................................................................................31
Consistency group update requests..........................................................................................................31
Consistency group creation requests.................................................................................................. 31
Consistency group add volume requests.............................................................................................32
Consistency group remove volume requests...................................................................................... 32
Consistency group deletion requests.................................................................................................. 33
Consistency group rename requests................................................................................................... 33
Consistency group restore from snapshot group requests.................................................................34
Snapshot group update requests.............................................................................................................. 34
Snapshot group creation requests.......................................................................................................34
Snapshot group overwrite requests.....................................................................................................35
Snapshot group lock requests............................................................................................................. 35
Snapshot group unlock requests......................................................................................................... 36
Snapshot group deletion requests.......................................................................................................36
Snapshot group rename requests........................................................................................................37
Snapshot group format requests......................................................................................................... 37
Snapshot group restore requests........................................................................................................ 38
Snapshot group disband requests....................................................................................................... 38
Snapshot group duplicate requests.....................................................................................................38
Volume mapping update requests............................................................................................................ 39
Volume mapping creation requests..................................................................................................... 39
Volume mapping deletion requests..................................................................................................... 40
Mirror update requests.............................................................................................................................. 40
Asynchronous mirror creation requests.............................................................................................. 41
Synchronous mirror creation requests................................................................................................ 41
Mirror activation requests.................................................................................................................... 42
Mirror deactivation requests................................................................................................................ 43
Mirror deletion requests.......................................................................................................................43
Change RPO requests...........................................................................................................................44
Mirrored snapshot creation requests.................................................................................................. 45
Mirrored snapshot cancellation requests............................................................................................ 45
Mirrored snapshot group creation requests........................................................................................ 46
Mirrored snapshot group cancellation requests................................................................................. 46
Host update requests................................................................................................................................ 47
Host creation requests......................................................................................................................... 47
Host rename requests..........................................................................................................................47
Host deletion requests......................................................................................................................... 48
Host type update requests...................................................................................................................49
iv
Host CHAP update requests................................................................................................................ 49
Host port update requests.........................................................................................................................49
Host port creation requests................................................................................................................. 50
Host port deletion requests................................................................................................................. 50
Cluster update requests............................................................................................................................ 51
Cluster creation requests.....................................................................................................................51
Cluster add host requests.................................................................................................................... 51
Cluster remove host requests.............................................................................................................. 52
Cluster rename requests......................................................................................................................53
Cluster deletion requests.....................................................................................................................53
Cluster change type requests.............................................................................................................. 54
Performance class update requests..........................................................................................................54
Performance class creation requests.................................................................................................. 54
Performance class update iops limit requests.................................................................................... 55
Performance class update bandwidth limit requests......................................................................... 56
Performance class rename requests................................................................................................... 56
Performance class add domain requests............................................................................................ 57
Performance class remove domain requests...................................................................................... 57
Performance class add pool requests................................................................................................. 58
Performance class remove pool requests........................................................................................... 58
Performance class add volume requests............................................................................................ 59
Performance class remove volume requests...................................................................................... 59
Performance class add host requests................................................................................................. 60
Performance class remove host requests........................................................................................... 60
Performance class deletion requests.................................................................................................. 61
Data migration update requests................................................................................................................61
Data migration creation requests........................................................................................................ 62
Data migration activation requests......................................................................................................62
Data migration deactivation requests..................................................................................................62
Data migration test requests................................................................................................................63
Data migration deletion requests........................................................................................................ 63
Domain update requests........................................................................................................................... 64
Domain creation requests.................................................................................................................... 64
Domain editing requests...................................................................................................................... 65
Domain rename requests.....................................................................................................................66
Domain deletion requests.................................................................................................................... 66
Domain add pool requests................................................................................................................... 67
Domain move pool requests................................................................................................................ 67
Domain remove pool requests............................................................................................................. 68
Domain associate host requests..........................................................................................................68
Domain unassociate host requests......................................................................................................68
Domain associate host cluster requests..............................................................................................69
Domain unassociate host cluster requests......................................................................................... 69
Domain associate user requests..........................................................................................................69
Domain unassociate user requests......................................................................................................70
Domain associate user group requests............................................................................................... 70
Domain unassociate user group requests........................................................................................... 71
Domain associate target requests....................................................................................................... 71
Domain unassociate target requests................................................................................................... 71
Ethernet port update requests.................................................................................................................. 72
Ethernet port MTU change requests....................................................................................................72
IP interface update requests.....................................................................................................................72
IP interface creation requests............................................................................................................. 72
IP interface editing requests................................................................................................................73
IP interface deletion requests............................................................................................................. 74
IP interface traceroute requests..........................................................................................................74
IP interface traceroute for IPv6 requests............................................................................................75
IP interface VLAN update requests..................................................................................................... 75
v
User update requests................................................................................................................................ 75
User creation requests......................................................................................................................... 76
User password change requests..........................................................................................................76
User rename requests.......................................................................................................................... 77
User deletion requests......................................................................................................................... 77
Chapter 8. Security.............................................................................................. 97
Notices................................................................................................................99
Trademarks.............................................................................................................................................. 100
vi
Tables
vii
viii
About this guide
The purpose of this guide is to provide the specifications of the IBM Hyper-Scale Manager REST
application programming interface (API).
Important: These notices provide information or advice that might help you avoid inconvenient or
difficult situations.
Attention: These notices indicate possible damage to programs, systems, or data. An attention
notice appears before the instruction or situation in which damage can occur.
Procedure
To submit any comments about this guide:
• Go to IBM Knowledge Center ([Link]/support/knowledgecenter), drill down to the relevant page,
and then click the Feedback link that is located at the bottom of the page.
Note: When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the
information in any way it believes appropriate without incurring any obligation to you.
Protocol version
The current protocol version is v5. This is indicated in the URL by adding the /v5 path to all of the URLs
and all references to xiv have been updated to hsm (for example, /hsm/v5/volumes).
The current protocol version (v5) supports IBM FlashSystem A9000 and A9000R, IBM XIV Gen3, and IBM
Spectrum Accelerate storage systems.
An example response format is displayed for both IBM XIV Gen3 and IBM FlashSystem A9000 and
A9000R storage systems.
IBM REST API protocol versions v1 and v2 support IBM XIV Gen3 storage systems.
Important: The v3 protocol version has been deprecated and should no longer be used.
HTTP methods
The protocol relies on HTTP methods to support CRUD operations (Create/Read/Update/Delete):
• HTTP POST: Mapped to create/update/delete operations.
• HTTP GET: Mapped to query (read) operations.
• HTTP DELETE: Mapped to delete operations. The HTTP URL specifies the resource to which the request
applies.
GET /hsm/v5/systems/capacityReport
GET /hsm/v5/systems/:<system-name>/capacityReport
A download bar appears at the bottom of your screen with a link to the containing folder of the zip file.
Open the zip folder and click on the PDF to display the report.
Examples:
• /hsm/v5/volumes: Returns all of the volumes from all of the XIV systems (up to max_limit).
• /hsm/v5/volumes?limit=400: Returns the first 400 volumes from all of the XIV systems.
• /hsm/v5/volumes?offset=10&limit=40: Returns 40 volumes, starting from volume 11.
• /hsm/v5/volumes?offset=101: Returns all volumes (up to max_limit), starting from volume 102.
GET /hsm/v5/systems
Query requests 7
List specific system properties (system1 – system IP/DNS):
GET /hsm/v5/systems/:system1
GET /hsm/v5/:system1/fc_ports
GET /hsm/v5/:system1/fc_ports/:p1
GET /hsm/v5/:system1/iscsi_ports
GET /hsm/v5/:system1/iscsi_ports/:p1
GET /hsm/v5/pools
GET /hsm/v5/:system1/pools
GET /hsm/v5/:system1/pools/:p1
List all of the pools from a specific machine that belong to a specific domain (where d1 is the domain
name):
GET /hsm/v5/:system1/pools?domain=d1
List all of the pools from a specific machine that belong to a performance class (where q1 is the
performance class name):
GET /hsm/v5/:system1/pools?perf_class=q1
GET /hsm/v5/volumes
GET /hsm/v5/:system1/volumes
List all of the volumes from specific machine and pool (where p1 is the pool name):
GET /hsm/v5/:system1/volumes?pool=p1
List all of the volumes from specific machine and domain (where d1 is the domain name):
GET /hsm/v5/:system1/volumes?domain=d1
List all of the volumes from specific machine and performance class on FlashSystems A9000 and A9000R
systems only (where q1 is the performance class name):
GET /hsm/v5/:system1/volumes?perf_class=q1
GET /hsm/v5/:system1/volumes/:vol1
GET /hsm/v5/snapshots
GET /hsm/v5/:system1/snapshots
List all of the snapshots of the specified volume (where vol1 is the volume name):
GET /hsm/v5/:system1/snapshots?volume=vol1
List all of the snapshots associated with the specified domain (where dom1 is the domain name):
GET /hsm/v5/:system1/snapshots?domain=dom1
GET /hsm/v5/:system1/snapshots/:sn1
Query requests 9
Consistency group query requests
The following consistency group query requests are supported:
List all of the consistency groups from all of the systems on which the user is authorized:
GET /hsm/v4/cgs
GET /hsm/v4/:system1/cgs
List all of the consistency groups associated with the specified domain (where dom1 is the domain name):
GET /hsm/v4/:system1/cgs?domain=dom1
List specific consistency group properties (where cg1 is the consistency group name):
GET /hsm/v4/:system1/cgs/:cg1
GET /hsm/v4/snap_groups
GET /hsm/v4/:system1/snap_groups
List all of the snapshot groups associated with the specified domain (where dom1 is the domain name):
GET /hsm/v4/:system1/snap_groups?domain=dom1
List all of the snapshot groups of the specified consistency group (where cg1 is the consistency group
name):
GET /hsm/v4/:system1/snap_groups?cg=c1
List specific snapshot group properties (where sg1 is the snapshot group name):
GET /hsm/v4/:system1/snap_groups/:sg1
GET /hsm/v5/:system1/vol_maps?host=h1
List all of the mappings of the cluster (where c1 is the cluster name):
List all of the mappings of the volume (where vol1 is the volume name):
GET /hsm/v5/:system1/vol_maps?volume=vol1
List specific host mapping properties (where h1 is the host name, and vol1 is the volume name):
GET /hsm/v5/:system1/vol_maps/:host:h1:vol1
List specific cluster mapping properties (where c1 is the host name, and vol1 is the volume name):
GET /hsm/v5/:system1/vol_maps/:cluster:c1:vol1
GET /hsm/v4/mirrors
GET /hsm/v4/:system1/mirrors
List all of the mirrors of volumes and consistency groups associated with the specified domain (where
dom1 is the domain name):
GET /hsm/v4/:system1/mirrors?domain=dom1
List the mirror properties of a specific volume mirror (where vol1 is the volume name):
GET /hsm/v4/:system1/mirrors/:volume:vol1
List the mirror properties of a specific consistency group mirror (where cg1 is the source consistency
group name):
GET /hsm/v4/:system1/mirrors/:cg:cg1
GET /hsm/v5/hosts
GET /hsm/v5/:system1/hosts
List all of the hosts from a specific machine that are associated with a specific domain (where dom1 is the
domain name):
Query requests 11
GET /hsm/v5/:system1/hosts?domain=dom1
List all of the hosts from a specific machine that belong to a specific cluster (where cl1 is the cluster
name):
GET /hsm/v5/:system1/hosts?cluster=cl1
List all of the hosts from a specific machine that belong to a specific performance class (where q1 is the
performance class name):
GET /hsm/v5/:system1/hosts?perf_class=q1
GET /hsm/v5/:system1/hosts/:h1
GET /hsm/v5/:system1/host_ports?host=h1
List the host to which the specific port is assigned (where p1 is the port name):
GET /hsm/v5/:system1/host_ports?port=p1
List the specific FC port on a host (where h1 is the host name, and p1 is the port name):
GET /hsm/v5/:system1/host_ports/:fc:h1:p1
List the specific iSCSI port on a host (where h1 is the host name, and p1 is the port name):
GET /hsm/v5/:system1/host_ports/:iscsi:h1:p1
GET /hsm/v5/clusters
GET /hsm/v5/:system1/clusters
GET /hsm/v5/:system1/clusters/:c1
List all of the clusters from a specific machine that are associated to a specific domain (where dom1 is the
domain name):
GET /hsm/v5/perf_classes
GET /hsm/v5/:system1/perf_classes
List the properties of a specific performance class (where silver is the performance class name):
GET /hsm/v5/perf_classes/:silver
GET /hsm/v5/:system1/volumes?perf_class=silver
GET /hsm/v5/:system1/hosts?perf_class=silver
GET /hsm/v5/:system1/pools?perf_class=silver
GET /hsm/v5/data_migrations
GET /hsm/v5/:system1/data_migrations
List data migration for a specific volume on a specific machine (where v1 is the volume name):
GET /hsm/v5/:system1/data_migrations/:v1
List data migration for all of the machines that belong to a specific domain (where d1 is the domain
name):
GET /hsm/v5/:system1/data_migrations?domain=d1
Query requests 13
Domain query requests
The following domain query requests are supported:
List all of the domains from all of the systems on which the user is authorized:
GET /hsm/v5/domains
GET /hsm/v5/:system1/domains
GET /hsm/v5/:system1/domains/:dom1
List all of the domains from a specific machine that belong to a performance class (where q1 is the
performance class name):
GET /hsm/v5/:system1/domains?perf_class=q1
GET /hsm/v5/ethernet_ports
GET /hsm/v5/:system1/ethernet_ports
List specific Ethernet port properties (where eth1 is the port name):
GET /hsm/v5/:system1/ethernet_ports/:eth1
GET /hsm/v5/host_connectivity
GET /hsm/v5/:system1/host_connectivity
List connectivity properties for a host (where host1 is the host name):
GET /hsm/v5/:system1/host_connectivity?host=host1
GET /hsm/v5/ip_interfaces
GET /hsm/v5/:system1/ip_interfaces
GET /hsm/v5/:system1/ip_interfaces/:1.1
GET /hsm/v5/users
GET /hsm/v5/:system1/users
GET /hsm/v5/:system1/users/:user1
List all users for all of the machines that belong to a specific domain (where d1 is the domain name):
GET /hsm/v5/:system1/users?domain=d1
GET /hsm/v5/:system1/events/:100
Since events are not managed by the Hyper-Scale Manager, paging is not supported for this query. The
following query parameters can be used to filter the events:
• min_severity: Defines the minimum event severity. Possible values include Informational, Minor,
Major, Warning, or Critical. If omitted, the minimum severity defaults to Informational.
• after: Only returns events that occur after the specified timestamp.
• before: Only returns events that occur before the specified timestamp.
Query requests 15
The syntax for the before and after fields is as follows: Y-M-D[.[h[:m[:s]]]], where the ranges are as
follows:
• Y: year (four digits)
• M: month (01-12)
• D: day (01-31)
• h: hour (00-23, with 00 as the default)
• m: minute (00-59 with 00 as the default)
• s: second (00-59 with 00 as the default)
If filtering parameters are omitted, the last 300 events are returned.
Example event query:
GET /hsm/v5/:system1/events?min_severity=Warning&after=2013-03-07
Example event query response:
HTTP/1.1 200 OK
… {
"status": {
"server": {"status": "0", "message": "OK" }
"failed_systems": []
}
"response": {
"counts": { "data_count": "300", "total_count": "300"}
"data": {
….
}
}
Note: Since events are not managed by the server and paging is not supported, the data count returned
in response is always equal to the total count.
Note: This release does not support multiple requests in the body. Only a single update request in the
body is supported.
Request - DELETE/hsm/v5/:system1/volumes/:vol1
…
Response - HTTP/1.1 500 Internal Server Error
…
{
"status": {
"server": {"status": "5", "message": "Update request
failed with reason: Volume ‘vol1’ does not exist" }
"failed_systems": []
}
}
The output for IBM FlashSystem A9000 and A9000R storage systems is similar to the following:
POST /hsm/v5/:system1/pools
{
"request" : [
{
"action" : "create",
"params" :
{
"name" : "itay_demo_pool_03",
"size" : "222",
"snap_size" : "1"
}
}
]
}
POST /hsm/v5/:system1/pools
{
"request" : [
{
"action": "resize_pool_size",
"params": {
"name": "EZPool",
"hard_size": "1500",
"soft_size" : "2000"
}
}
]
}
The output for IBM FlashSystems A9000 and A9000R storage systems is similar to the following:
Update requests 19
POST /hsm/v5/:system1/pools
{
"request" : [
{
"action": "resize_pool_size",
"params": {
"name": "alex_test",
"size": "1000"
}
}
]
}
POST /hsm/v5/:system1/pools/:p1
{
"request": {
"action": "resize_pool_size",
"params": {
"size": "1700"
}
}
}
POST /hsm/v5/:system1/pools
{
"request": [
{
"action": "resize_snapshot_size",
"params": {
"name": "p1",
"snap_size": "170"
}
}
]
}
Alternatively, the snapshot size can be resized using the following request:
POST /hsm/v5/:system1/pools/:p1
{
"request": {
"action": "resize_snapshot_size",
"params": {
"snap_size": "170"
}
}
}
POST /hsm/v5/:system1/pools
{
"request": [
{
"action": "rename",
"params": {
"name": "pool1",
"new_name": "pool2"
}
}
]
}
POST /hsm/v5/:system1/pools/:pool1
{
"request": {
"action": "rename",
"params": {
"new_name": "pool2"
}
}
}
POST /hsm/v5/:system1/pools
{
"request": [
{
"action": "delete",
"params": {
"name": "pool1"
}
}
]
}
Alternatively, a pool can be deleted using either of the the following requests, where p1 is the pool name:
POST /hsm/v5/:system1/pools/:p1
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v5/:system1/pools/:p1
Update requests 21
Volume update requests
The following types of volume update requests are supported.
• Volume creation requests
• Volume resize requests
• Volume lock requests
• Volume unlock requests
• Volume rename requests
• Volume copy requests
• Volume move to a pool
• Volume delete requests
• “Volume restore from snapshot requests” on page 27
POST /hsm/v5/:system1/volumes
{
"request" : [
{
"action" : "create",
"params" :
{ "name" : "demo_volume_03",
"pool" : "pool_1",
"size": "17",
"size_units" : "GB" ,
"compressed" : "false"
}
}
]
}
The output for IBM FlashSystems A9000 and A9000R storage systems is similar to the following:
}
]
}
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "resize",
"params": {
"name": "vol1",
"size": "170",
"size_units": "GB"
}
}
]
}
POST /hsm/v5/:system1/volumes/:vol1
{
"request": [
{
"action": "resize",
"params": {
"size": "170",
"size_units": "GB"
}
}
]
}
Update requests 23
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "lock",
"params": {
"name": "vol1"
}
}
]
}
POST /hsm/v5/:system1/volumes/:vol1
{
"request": {
"action": "lock"
}
}
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "unlock",
"params": {
"name": "vol1"
}
}
]
}
POST /hsm/v5/:system1/volumes/:vol1
{
"request": {
"action": "unlock"
}
}
POST /hsm/v5/:system1/volumes/:vol1
{
"request": {
"action": "rename",
"params":{
"new_name":"vol2"
}
}
}
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "copy",
"params": {
"name": "vol1",
"target":"vol2"
}
}
]
}
POST /hsm/v5/:system1/volumes/:vol1
{
"request": {
"action": "copy",
"params":{
"target":"vol2"
}
}
}
Update requests 25
– pool: The name of the target pool.
Example:
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "move",
"params": {
"name": "vol1",
"pool":"pool1"
}
}
]
}
Alternatively, a volume can be moved to a new pool with the following request:
POST /hsm/v5/:system1/volumes/:vol1
{
"request": {
"action": "move",
"params":{
"pool":"pool1"
}
}
}
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "delete",
"params": {
"name": "vol1"
}
}
]
}
Alternatively, a volume can be deleted using either of the following requests, where vol1 is the volume
name:
POST /hsm/v5/:system1/volumes/:vol1
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v4/:system1/volumes/:vol1
POST /hsm/v5/:system1/volumes
{
"request": [
{
"action": "restore_from_snapshot",
"params": {
"snapshot": "snap1"
}
}
]
}
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "create",
"params": {
"source": "vol1",
"target": "snapshot1",
"delete_priority": "2"
}
}
]
}
Update requests 27
Volume snapshot overwrite requests
Volume snapshot overwrite requests include the following components:
• An action parameter with a value of overwrite.
• A params parameter, containing the following parameters:
– source: The name of the volume.
– target: The snapshot name.
Example:
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "overwrite",
"params": {
"source": "vol1",
"target": "snapshot1"
}
}
]
}
Alternatively, the volume snapshot may be overwritten using the following update request, where the
snapshot name is used as a part of the URL:
POST /hsm/v5/:system1/snapshots/snapshot1
{
"request": [
{
"action": "overwrite",
"params": {
"source": "vol1"
}
}
]
}
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "lock",
"params": {
"name": "snapshot1"
}
}
]
}
Alternatively, a snapshot may be locked using the following update request, where snapshot1 is the
volume snapshot name:
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "unlock",
"params": {
"name": "snapshot1"
}
}
]
}
Alternatively, a snapshot may be un locked using the following update request, where snapshot1 is the
volume snapshot name:
POST /hsm/v5/:system1/snapshots/snapshot1
{
"request": {
"action": "unlock" }
}
}
POST /hsm/v4/:system1/snapshots
{
"request": [
{
"action": "duplicate",
"params": {
"source": "src",
"target": "target",
}
}
]
}
Update requests 29
Volume snapshot deletion requests
Volume snapshot deletion requests include the following components:
• An action parameter with a value of delete.
• A params parameter, containing the following parameter:
– name: The snapshot name.
Example:
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "delete",
"params": {
"name": "snapshot1"
}
}
]
}
Alternatively, a snapshot can also be deleted using either of the following update requests, where
snapshot1 is the volume snapshot name:
POST /hsm/v5/:system1/snapshots/snapshot1
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v5/:system1/snapshots/:snapshot1
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "format",
"params": {
"name": "snapshot1"
}
}
]
}
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "restore_volume",
"params": {
"name": "snapshot1"
}
}
]
}
POST /hsm/v5/:system1/snapshots
{
"request": [
{
"action": "restore_snapshot",
"params": {
"source": "snapshot1"
"target": "snapshot2"
}
}
]
}
Update requests 31
POST /hsm/v5/:system1/cgs
{
"request": [
{
"action": "create",
"params": {
"name": "cg1",
"pool": "pool1"
}
}
]
}
POST /hsm/v5/:system1/cgs
{
"request": [
{
"action": "add_volume",
"params": {
"name": "cg1",
"volume": "vol1"
}
}
]
}
Alternatively, adding a volume to a consistency group may be done using the following request:
POST /hsm/v5/:system1/cgs/:cg1
{
"request": [
{
"action": "add_volume",
"params": {
"volume": "vol1"
}
}
]
}
POST /hsm/v5/:system1/cgs
{
"request": [
{
"action": "delete",
"params": {
"name": "cg1"
}
}
]
}
Alternatively, a consistency group may be deleted using either of the following requests, where cg1 is the
name of the consistency group:
POST /hsm/v5/:system1/cgs/:cg1
{
"request": [
{
"action": "delete",
}
]
}
DELETE /hsm/v5/:system1/cgs/:cg1
Update requests 33
POST /hsm/v5/:system1/cgs
{
"request": [
{
"action": "rename",
"params": {
"name": "cg1",
"new_name": "cg2"
}
}
]
}
POST /hsm/v5/:system1/cgs
{
"request": [
{
"action": "restore_from_snapshot_group",
"params": {
"snapshot_group": "sg1",
}
}
]
}
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "create",
"params": {
"source": "cg1",
"target": "sg1"
"delete_priority": "2"
}
}
]
}
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "overwrite",
"params": {
"source": "cg1",
"target": "sg1"
}
}
]
}
Alternatively, the snapshot group may be overwritten using the following update request, with the
snapshot group name (sg1 in this example) being used as a part of the URL:
POST /hsm/v5/:system1/snap_groups/:sg1
{
"request": [
{
"action": "overwrite",
"params": {
"source": "cg1",
}
}
]
}
Update requests 35
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "lock",
"params": {
"name": "sg1"
}
}
]
}
Alternatively, a snapshot group can be locked using the following update request, with sg1 as the
snapshot group name in this example:
POST /hsm/v5/:system1/snap_groups/:sg1
{
"request": {
"action": "lock",
}
}
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "unlock",
"params": {
"name": "sg1"
}
}
]
}
Alternatively, a snapshot group can be locked using the following update request, with sg1 as the
snapshot group name in this example:
POST /hsm/v5/:system1/snap_groups/:sg1
{
"request": {
"action": "lock",
}
}
Alternatively, a snapshot group can be deleted using either of the following update requests, where sg1 is
the snapshot group name:
POST /hsm/v5/:system1/snap_groups/:sg1
{
"request": [
{
"action": "deletion",
}
]
}
DELETE /hsm/v5/:system1/snap_groups/:sg1
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "rename",
"params": {
"name": "sg1",
"new_name": "new_sg1"
}
}
]
}
Update requests 37
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "format",
"params": {
"name": "sg1",
}
}
]
}
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "restore_snapshot_group",
"params": {
"source": "source_snap_groups",
"target": "target_snap_groups"
}
}
]
}
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "disband",
"params": {
"name": "sg1",
}
}
]
}
POST /hsm/v5/:system1/snap_groups
{
"request": [
{
"action": "duplicate",
"params": {
"source": "source_snap_groups",
"target": "target_snap_groups"
}
}
]
}
POST /hsm/v5/:system1/vol_maps
{
"request": [
{
"action": "create",
"params": {
"volume": "vol1",
"host_cluster_name": "h1",
"map_type": "host",
"lun": "3"
}
}
]
}
Update requests 39
POST /hsm/v5/:system1/vol_maps
{
"request": [
{
"action": "create",
"params": {
"volume": "vol1",
"host_cluster_name": "c1",
"map_type": "cluster",
"lun": "3"
}
}
]
}
POST /hsm/v5/:system1/vol_maps
{
"request": [
{
"action": "delete",
"params": {
"volume": "vol1",
"host_cluster_name": "h1",
"map_type": "host"
}
}
]
}
POST /hsm/v5/:system1/vol_maps
{
"request": [
{
"action": "delete",
"params": {
"volume": "vol1",
"host_cluster_name": "c1",
"map_type": "cluster"
}
}
]
}
Example:
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "create_async_mirror",
"params": {
"name": "mirror1",
"mirror_type": "volume",
"target": "system1",
"remote_name": "remote_vol",
"schedule_type":"internal",
"rpo":"23:00:01",
"activation_type":"online"
}
}
]
}
Update requests 41
– remote_name: Name of the remote peer (volume or CG) on the remote storage system.
Example:
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "create_sync_mirror",
"params": {
"name": "mirror1",
"mirror_type": "volume",
"target": "system1",
"remote_name": "remote_vol"
}
}
]
}
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "activate_mirror",
"params": {
"name": "vol1",
"mirror_type": "volume",
}
}
]
}
Alternatively, the mirror may be activated using the following requests, where vol1 is the name of the
source volume (in the first example), and cg1 is the name of the source consistency group (in the second
example):
POST /hsm/v5/:system1/mirrors/:volume:vol1
{
"request": [
{
"action": "activate_mirror",
}
]
}
POST /hsm/v5/:system1/mirrors/:cg:cg1
{
"request": [
{
"action": "activate_mirror",
}
]
}
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "deactivate_mirror",
"params": {
"name": "vol1",
"mirror_type": "volume",
"target":"system1"
}
}
]
}
Alternatively, the mirror may be deactivated using the following requests, where vol1 is the name of the
source volume (in the first example), and cg1 is the name of the source consistency group (in the second
example):
POST /hsm/v5/:system1/mirrors/:volume:vol1
{
"request": [
{
"action": "deactivate_mirror",
"params": {
"target":"system1"
}
}
]
}
POST /hsm/v5/:system1/mirrors/:cg:cg1
{
"request": [
{
"action": "deactivate_mirror",
"params": {
"target":"system1"
}
}
]
}
Update requests 43
– target (optional): Name of the target (remote) system. Used if the source has more than one
destination.
Example:
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "delete",
"params": {
"name": "vol1",
"mirror_type": "volume",
"force_on_slave":"true"
}
}
]
}
Alternatively, the mirror may be deleted using the following requests, where vol1 is the name of the
source volume (in the first example), and cg1 is the name of the source consistency group (in the second
example):
POST /hsm/v5/:system1/mirrors/:volume:vol1
{
"request": [
{
"action": "deactivate_mirror",
"params": {
"force_on_slave":"true"
}
}
]
}
POST /hsm/v5/:system1/mirrors/:cg:cg1
{
"request": [
{
"action": "delete_mirror",
"params": {
"target":"system1"
}
}
]
}
In addition, the mirror may be deleted using the following requests, where vol1 is the name of the source
volume (in the first example), and cg1 is the name of the source consistency group (in the second
example):
Both of the delete requests above assume that the value for the force_on_slave parameter is false.
Note: The two requests listed above will only work with sources that have only one associated mirror.
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "change_rpo",
"params": {
"name": "vol1",
"mirror_type": "volume",
"rpo": "222",
}
}
]
}
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "create_mirrored_snapshot",
"params": {
"name": "mirror1",
"primary_snapshot": "local_snap",
"secondary_snapshot": "remote_snap",
"target": "system1"
}
}
]
}
Update requests 45
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "cancel_mirrored_snapshot",
"params": {
"name": "mirror1",
"target": "system1"
}
}
]
}
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "create_mirrored_snapshot_group",
"params": {
"name": "mirror1",
"primary_snapshot_group": "local_snap_gr",
"secondary_snapshot_group": "remote_snap_gr",
"target": "system1"
}
}
]
}
POST /hsm/v5/:system1/mirrors
{
"request": [
{
"action": "cancel_mirrored_snapshot_group",
"params": {
"name": "mirror1",
"target": "system1"
}
}
]
}
Note:
– The type and cluster parameters are exclusive; that is, only one of them can be provided in the
request. The type parameter can only be specified for stand-alone hosts. If the cluster
parameter is provided, the host type is derived from the cluster.
– If the parameter cluster is defined, and the target system supports domains, then the parameter
domains should be defined.
Example:
POST /hsm/v5/:system1/hosts
{
"request": [
{
"action": "create",
"params": {
"name" : "host1",
"iscsi_chap_name" : "chap",
"iscsi_chap_secret" : "1111111111111111"
"type" : "hpux",
"domains" : "domain1"
}
}
]
}
Update requests 47
– name: The host name.
– new_name: The new name of the host.
Example:
POST /hsm/v5/:system1/hosts
{
"request": [
{
"action": "rename",
"params": {
"name": "host1",
"new_name": "host2"
}
}
]
}
POST /hsm/v5/:system1/hosts/:host1
{
"request": {
"action": "rename",
"params": {
"new_name": "host2"
}
}
}
POST /hsm/v5/:system1/hosts
{
"request": [
{
"action": "delete",
"params": {
"name": "host1"
}
}
]
}
POST /hsm/v5/:system1/hosts/:h1
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v5/:system1/hosts/:h1
POST /hsm/v5/:system1/hosts
{
"request": [
{
"action": "change_type",
"params": {
"name" : "host1",
"type" : "hpux"
}
}
]
}
POST /hsm/v5/:system1/hosts
{
"request": [
{
"action": "update_chap",
"params": {
"name" : "host1",
"iscsi_chap_name" : "chap",
"iscsi_chap_secret" : "1111111111111111"
}
}
]
}
Update requests 49
Host port creation requests
Host port creation requests include the following components:
• An action parameter with a value of create.
• A params parameter, containing the following parameters:
– port: The port name.
– host: The host name.
– type: The port type. Possible values include iscsi and fc.
Example:
POST /hsm/v4/:system1/host_ports
{
"request": [
{
"action": "create",
"params": {
"port": "10000000C9926DCA",
"host": "h1",
"type": "fc"
}
}
]
}
POST /hsm/v4/:system1/host_ports
{
"request": [
{
"action": "delete",
"params": {
"port": "10000000C9926DCA",
"host": "h1",
"type": "fc"
}
}
]
}
Alternatively, deleting FC port mappings can be done using either of the following requests (where h1 is
the host name and p1 is the port name):
POST /hsm/v4/:system1/host_ports/:fc:h1:p1
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v2/:system1/host_ports/:fc:h1:p1
POST /hsm/v4/:system1/host_ports/:iscsi:h1:p1
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v4/:system1/host_ports/:iscsi:h1:p1
POST /hsm/v5/:system1/clusters
{
"request": [
{
"action": "create",
"params": {
"name": "c1",
"type": "zvm",
"domains": "domain1"
}
}
]
}
Update requests 51
– host: The name of the host.
– map: Indicates the type of mapping. Possible values include host and cluster.
Example:
POST /hsm/v5/:system1/clusters
{
"request": [
{
"action": "add_host",
"params": {
"name": "cluster1",
"host": "host1",
"map": "cluster"
}
}
]
}
POST /hsm/v5/:system1/clusters/:cluster1
{
"request": {
"action": "add_host",
"params": {
"host":"host1",
"map":"cluster"
}
}
}
POST /hsm/v5/:system1/clusters
{
"request": [
{
"action": "remove_host",
"params": {
"name": "cluster1",
"host": "host1"
}
}
]
}
Alternatively, a host can be removed from a cluster with the following request:
POST /hsm/v5/:system1/clusters/:cluster1
{
"request": {
"action": "remove_host",
"params": {
"host":"host1"
}
}
}
POST /hsm/v5/:system1/clusters
{
"request": [
{
"action": "rename",
"params": {
"name": "cluster1",
"new_name": "cluster2"
}
}
]
}
POST /hsm/v5/:system1/clusters/:cluster1
{
"request": {
"action": "rename",
"params": {
"new_name":"cluster2"
}
}
}
POST /hsm/v5/:system1/clusters
{
"request": [
{
"action": "delete",
"params": {
"name": "c1"
}
}
]
}
POST /hsm/v5/:system1/clusters/:cluster1
{
"request": [
{
"action": "delete"
}
]
}
Update requests 53
DELETE /hsm/v5/:system1/clusters/:c1
POST /hsm/v5/:system1/clusters
{
"request": [
{
"action": "change_type",
"params": {
"name": "c1",
"type": "allothers"
}
}
]
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "create",
"params": {
"name": "gold",
"interface_iops_limit”: "1500",
"interface_bw_limit”: "5000",
“type”: “SHARED”
}
}
]
}
Alternatively, the performance class can be created by using the following request (where gold is the
name of the performance class). For example:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": [
{
"action": "create",
"params": {
"interface_iops_limit”: "1500",
"interface_bw_limit”: "5000",
“type”: “SHARED”
}
}
]
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "update_iops_limit",
"params": {
"name": "gold",
"interface_iops_limit": "1700"
}
}
]
}
Update requests 55
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "update_iops_limit",
"params": {
"interface_iops_limit": "1700"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "update_bw_limit",
"params": {
"name": "gold",
"interface_bw_limit": "5000"
}
}
]
}
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "update_bw_limit",
"params": {
"interface_bw_limit": "1700"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "rename",
"params": {
"name": "gold",
"new_name": "silver"
}
}
]
}
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "rename",
"params": {
"new_name": "silver"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "add_domain”,
"params": {
"name": "gold",
"domain": "domain1"
}
}
]
}
Alternatively, adding a domain to a performance class can be done by using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "add_domain”,
"params": {
"domain": "domain1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "remove_domain",
"params": {
"domain": "domain1"
}
}
]
}
Update requests 57
Alternatively, removing a domain from a performance class can be done using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "remove_domain",
"params": {
"domain": "domain1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "add_pool",
"params": {
"name": "gold",
"pool": "pool1"
}
}
]
}
Alternatively, adding a pool to a performance class can be done by using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "add_pool",
"params": {
"pool": "pool1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "remove_pool",
"params": {
"pool": "pool1"
}
}
]
}
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "remove_pool",
"params": {
"pool": "pool1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "add_volume",
"params": {
"name": "gold",
"volume": "vol1"
}
}
]
}
Alternatively, adding a volume to a performance class can be done by using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "add_volume",
"params": {
"volume": "vol1"
}
}
}
Update requests 59
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "remove_volume",
"params": {
"volume": "vol1"
}
}
]
}
Alternatively, removing a volume to a performance class can be done by using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "remove_volume",
"params": {
"volume": "vol1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "add_host",
"params": {
"name": "gold",
"host": "host1"
}
}
]
}
Alternatively, adding a host to a performance class can be done using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "add_host",
"params": {
"host": "host1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "remove_host",
"params": {
"host": "host1"
}
}
]
}
Alternatively, removing a host from a performance class can be done using the following request:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": {
"action": "remove_host",
"params": {
"host": "host1"
}
}
}
POST /hsm/v5/:system1/perf_classes
{
"request": [
{
"action": "delete",
"params": {
"name": "gold"
}
}
]
}
Alternatively, the performance class may be deleted using the following request (where gold is the name
of the performance class). For example:
POST /hsm/v5/:system1/perf_classes/:gold
{
"request": [
{
"action": "delete"
}
]
}
DELETE /hsm/v5/:system1/perf_classes/:gold
Update requests 61
• “Data migration activation requests” on page 62
• “Data migration deactivation requests” on page 62
• “Data migration test requests” on page 63
• “Data migration deletion requests” on page 63
POST /hsm/v5/:system1/data_migrations
{
"request" : [
{
"action" : "create",
"params" :
{
"volume": "test_1",
"pool" : "test_1",
"target" : "gen4c-83-upperc-mf",
"lun" : "2",
"update_source" : "false"
}
}
]
}
POST /hsm/v5/:system1/data_migrations
{
"request" : [
{
"action" : "activate",
"params" :
{
"name": "dm_1",
}
}
]
}
POST /hsm/v5/:system1/data_migrations
{
"request" : [
{
"action" : "deactivate",
"params" :
{
"name": "dm_1",
}
}
]
}
POST /hsm/v5/:system1/data_migrations
{
"request" : [
{
"action" : "test",
"params" :
{
"name": "dm_1",
}
}
]
}
POST /hsm/v5/:system1/data_migrations
{
"request" : [
{
"action" : "delete",
"params" :
{
"name": "dm_1",
}
}
]
}
Update requests 63
Domain update requests
The following types of domain update requests are supported.
• “Domain creation requests” on page 64
• “Domain editing requests” on page 65
• “Domain rename requests” on page 66
• “Domain deletion requests” on page 66
• “Domain add pool requests” on page 67
• “Domain move pool requests” on page 67
• “Domain remove pool requests” on page 68
• “Domain associate host requests” on page 68
• “Domain unassociate host requests” on page 68
• “Domain associate host cluster requests” on page 69
• “Domain unassociate host cluster requests” on page 69
• “Domain associate user requests” on page 69
• “Domain unassociate user requests” on page 70
• “Domain associate user group requests” on page 70
• “Domain unassociate user group requests” on page 71
• “Domain associate target requests” on page 71
• “Domain unassociate target requests” on page 71
The output for IBM FlashSystem A9000 and A9000R storage systems is similar to the following:
POST /hsm/v5/:system1/domains
{
"request" : [
{
"action" : "create",
"params" :
{
"name" : "test_rest",
"size" : "22222",
"ldap_id" : "ldap_id",
"max_pools_count" : "11",
"max_volumes_snapshots_count" : "12",
"max_cgs_count" : "13",
"max_replications_count" : "14" ,
"max_data_migrations_count" : "15"
}
}
]
}
Update requests 65
POST /hsm/v5/:system1/domains
{
"request" : [
{
"action" : "update",
"params" :
{
"name" : "test_rest",
"hard_size" : "22222",
"soft_size" : "33333",
"ldap_id" : "ldap_id",
"max_pools_count" : "11",
"max_volumes_snapshots_count" : "12",
"max_cgs_count" : "13",
"max_replications_count" : "14" ,
"max_data_migrations_count" : "15"
}
}
]
}
The output for IBM FlashSystem A9000 and A9000R storage systems is similar to the following:
POST /hsm/v5/:system1/domains
{
"request" : [
{
"action" : "update",
"params" :
{
"name" : "test_rest",
"size" : "22222",
"ldap_id" : "ldap_id",
"max_pools_count" : "11",
"max_volumes_snapshots_count" : "12",
"max_cgs_count" : "13",
"max_replications_count" : "14" ,
"max_data_migrations_count" : "15"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "rename",
"params" : {
"name" : "dom1",
"new_name" : "dom2"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "delete",
"params" : {
"name" : "dom1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "add_pool",
"params" : {
"name" : "dom1"
"pool" : "pool1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "move_pool_to_domain",
"params" : {
"pool" : "pool1"
"source" : "dom1",
"target" : "dom2"
}
}
]
}
Update requests 67
Domain remove pool requests
Domain remove pool requests include the following components:
• An action parameter with a value of remove_pool.
• A params parameter, containing the following parameters:
– name: The domain name.
– pool: The name of the pool to be removed from the domain.
Example:
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "remove_pool",
"params" : {
"name" : "dom1"
"pool" : "pool1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "associate_host",
"params" : {
"name" : "dom1"
"host" : "host1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "associate_cluster",
"params" : {
"name" : "dom1"
"cluster" : "cluster1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "unassociate_cluster",
"params" : {
"name" : "dom1"
"cluster" : "cluster1"
}
}
]
}
Update requests 69
– name: The domain name.
– user: The name of the user to be associated with the domain.
– exclusively (optional): Restricts the user to domain's objects (yes or no).
Example:
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "associate_user",
"params" : {
"name" : "dom1"
"user" : "user1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "unassociate_user",
"params" : {
"name" : "dom1"
"user" : "user1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "associate_user_group",
"params" : {
"name" : "dom1"
"user_group" : "user_group1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "unassociate_user_group",
"params" : {
"name" : "dom1"
"user_group" : "user_group1"
}
}
]
}
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "associate_target",
"params" : {
"name" : "dom1"
"target" : "gen4c-24-upperd"
}
}
]
}
Update requests 71
POST /hsm/v5/:system1/domains
{
"request": [
{
"action" : "unassociate_target",
"params" : {
"name" : "dom1"
"target" : "gen4c-24-upperd"
}
}
]
}
POST /hsm/v5/:system1/ethernet_ports/change_mtu
{
"request" : [
{
"action" : "change_mtu",
"params" :
{
"name" : "eth_port_14_6",
"mtu" : "5000"
}
}
]
}
POST /hsm/v5/:system1/ip_interface
{
"request" : [
{
"action" : "create",
"params" :
{
"name": "11.1",
"address" : "[Link]",
"netmask" : "[Link]",
"gateway" : "[Link]",
"port" : "2",
"module" : "1:module:1"
}
}
]
}
The output for IBM FlashSystem A9000 and A9000R storage systems is similar to the following:
POST /hsm/v5/:system1/ip_interface
{
"request" : [
{
"action" : "create",
"params" :
{
"name": "11.1",
"address" : "[Link]",
"netmask" : "[Link]",
"gateway" : "[Link]",
"ethernet_port_name" : "port_name"
}
}
]
}
Update requests 73
– ip6_gateway (optional): IPv6 address of the default gateway for this interface.
– module (optional): Component identifier (rack and module) of the module containing Ethernet ports.
– port (optional): Port number.
– access_group (optional): The name of the IP access group used for IP filtering.
Example:
POST /hsm/v5/:system1/ip_interface
{
"request" : [
{
"action" : "update",
"params" :
{
"name": "11.1",
"ip4_address" : "[Link]",
"netmask" : "[Link]",
"ip4_gateway" : "[Link]"
}
}
]
}
POST /hsm/v5/:system1/ip_interface
{
"request" : [
{
"action" : "delete",
"params" :
{
"name" : "11.1"
}
}
]
}
POST /hsm/v5/:system1/ip_interface
{
"request" : [
{
"action" : "traceroute_ip6",
"params" :
{
"local_ip_address" : "[Link]",
"remote_host_ip_address" : "2"
}
}
]
}
POST /hsm/v5/:system1/ip_interface
{
"request" : [
{
"action" : "update_vlan",
"params" :
{
"vlan_pcp" : "111"
}
}
]
}
Update requests 75
• “User password change requests” on page 76
• “User rename requests” on page 77
• “User deletion requests” on page 77
POST /hsm/v5/:system1/users/create
{
"request" : [
{
"action" : "create",
"params" :
{
"name" : "user1",
"password" : "pwd1*",
"category" : "applicationadmin",
"area_code" : "03",
"phone" : "5229",
"email" : "a@b.c",
"user_group" : "user1_ug",
"exclusive" : "yes",
"domains" : "domain1"
}
}
]
}
POST /hsm/v5/:system1/users
{
"request" : [
{
"action" : "rename",
"params" :
{
"name" : "user1",
"new_name" : "new_username",
}
}
]
}
POST /hsm/v5/:system1/users
{
"request" : [
{
"action" : "delete",
"params" :
{
"name" : "user1",
}
}
]
}
Update requests 77
78 IBM Hyper-Scale Manager: REST API Specifications
Chapter 5. Request URL definitions
The following groups of request URLs are defined:
• “System request URLs” on page 79
• “System FC port request URLs” on page 79
• “System iSCSI port request URLs” on page 79
• “Pool request URLs” on page 79
• “Volume request URLs” on page 80
• “Volume snapshot request URLs” on page 80
• “Volume mapping request URLs” on page 80
• Host request URLs
• “Host port request URLs” on page 81
• “Cluster request URLs” on page 81
• Performance class request URLs
• “Event request URLs” on page 82
{
"system": {
"allocation_limit": "82564000000000"
"ip_addresses":
{
"ip": "gen3p1-25b"
}
"safe_mode": "false"
"compression_savings": "0"
"system_state": "on"
"version": "11.6.2.c"
"compression_state": "compression_state_enabled"
"reclaimable_capacity": "258000000000"
"written_by_host": "412000000000"
"ref": "/hsm/v5/systems/:gen3p1-25b"
"allocated_volumes_and_snapshots": "2340000000000"
"free_to_allocate": "80224000000000"
"stored": "412000000000"
"target_state": "on"
"potential_compression_savings": "0"
"physical_free": "82151000000000"
"projected_system_capacity": "82564000000000"
"name": "gen3p1-25b"
"redundancy_status": "Full Redundancy"
"total_reduction_savings": "0"
"id": "XIV Gen3P1-25b:1310025:2810:114"
"physical_size": "82564000000000"
}
}
The system resource formats that are returned by the REST API for FlashSystem A9000 and A9000R are
as follows:
{
"ip": "gen4d-27c"
}
"safe_mode": "false"
"compression_savings": "8000000000"
"system_state": "on"
"compression_state": "compression_state_enabled"
"reclaimable_capacity": "1982000000000"
"deduplication_savings": "22000000000"
"written_by_host": "34000000000"
"ref": "/hsm/v5/systems/:gen4d-27c"
"allocated_volumes_and_snapshots": "10137000000000"
"free_to_allocate": "1389933000000000"
"stored": "3000000000"
"target_state": "on"
"physical_free": "11056000000000"
"projected_system_capacity": "55336000000000"
"name": "gen4d-27c"
"redundancy_status": "Fully Protected"
"total_reduction_savings": "30000000000"
"id": "XIV Gen4D-27c:6013766:9835:415"
"physical_size": "11059000000000"
}
}
{
"fc_port": {
"ref": "/hsm/v5/:mn44/ fc_ports/:1234567890123001",
"id": "101280",
"wwpn": "1234567890123001",
"module": "6",
"port_number": "1",
"status": "OK",
"role": "Target",
"state": "Online",
"user_enabled": "true",
"configured_rate": "Auto",
"current_rate": "4",
"error_count": "0",
"system": "mn44"
}
}
{
"iscsi_port": {
"ref": "/hsm/v5/:mn44/iscsi_ports/:myport",
"id": "101280",
"name": "myport",
"address": "[Link]",
"netmask": "[Link]",
"gateway": "[Link]",
"mtu": "4500",
"module": "7",
"port_number": "1",
"system": "mn44"
}
}
{
"pool":
{
"lock_behavior": "read_only"
"reduction_savings": "0"
"volumes_space": "2804000000000"
"perf_class": " "
"soft_size": "3011000000000"
"hard_size": "2512000000000"
"reclaimable_capacity": "0"
"free_to_allocate_volumes": "2202000000000"
"volumes_physical_space": "2305000000000"
"ref": "/hsm/v5/:gen3p1-25b/pools/:ErezPool"
"system": "gen3p1-25b"
"allocated_volumes": "602000000000"
"snapshots_reserved": "206000000000"
"snapshots_used": "0"
"domain": "ErezDomain"
"potential_compression_savings": "0"
"volumes_written_by_host": "129000000000"
"name": "ErezPool"
"volumes_stored": "223000000000"
"id": "62c14800001"
"locked": "false"
"pool_type": "thin"
}
}
The pool resource formats that are returned by the REST API for FlashSystem A9000 and A9000R are as
follows:
{
"pool":
{
"reduction_savings": "N/A"
"volumes_space": "620000000000"
"perf_class": " "
"free_to_allocate_volumes": "31000000000"
"reclaimable_capacity": "567000000000"
"volumes_physical_space": "N/A"
"ref": "/hsm/v5/:gen4d-27c/pools/:alex_test"
"system": "gen4d-27c"
"size": "723000000000"
"snapshots_reserved": "103000000000"
"allocated_volumes": "588000000000"
"snapshots_used": "0"
"domain": "/Global Space/"
"name": "alex_test"
"volumes_written_by_host": "0"
"id": "4e418c00002"
"volumes_stored": "N/A"
"locked": "false"
}
}
Resource definitions 85
Volume resource definitions
The volume resource formats that are returned by the REST API for XIV Gen3 and Spectrum Accelerate
are as follows:
{
"volume": {
"reduction_savings": "0"
"size_on_disk": "120000000000"
"cg": " "
"perf_class": "N/A"
"written_by_host_capacity": "26000000000"
"pool": "ExamplePool"
"snapshots_used_capacity": "0"
"mirrored": "true"
"wwn": "0017380027290003"
"pool_ref": "/hsm/v5/:gen3p1-25b/pools/:ExamplePool"
"ref": "/hsm/v5/:gen3p1-25b/volumes/:example_vol_001"
"system": "gen3p1-25b"
"unique_stored_data": "26000000000"
"size": "120000000000"
"stored_capacity": "26000000000"
"reduction_status": "Uncompressed"
"domain": "ExampleDomain"
"potential_compression_savings": "0"
"name": "example_vol_001"
"id": "62d14d00003"
"locked": "false"
"free_size": "93000000000"
}
}
The volume resource formats that are returned by the REST API for FlashSystem A9000 and A9000R are
as follows:
{
"volume": {
"reduction_ratio":"2.16",
"reduction_savings":"9307674781",
"stored_attributed_size":"8003455770",
"perf_class":"",
"written_by_host_capacity":"17310941184",
"compression_savings":"9307674781",
"data_reduction_iq_valid_on":"2018-12-20T13:14:10Z",
"snapshots_used_capacity":"N/A",
"mirrored":"false",
"wwn":"6001738CFC9035D30000000000EC3090",
"pool_ref":"/hsm/v5/:gen4d-60b/pools/:example_pool",
"deduplication_savings":"0",
"ref":"/hsm/v5/:gen4d-60b/volumes/:example_volume",
"stored_reclaimable_margin_of_error_size":"3841244265",
"reduction_savings_margin_of_error_size":"3841244265",
"stored_attributed_margin_of_error_size":"3841244265",
"id":"59b1aa00054",
"stored_reclaimable_size":"5337810207",
"locked":"false",
"free_size":"32689058816",
"size_on_disk":"50147098624",
"cg":"",
"pool":"example_pool",
"system":"gen4d-60b",
"unique_stored_data":"5000000000",
"size":"50000000000",
"domain":"/Global Space/",
"name":"example_volume",
"domain_ref":"/hsm/v5/:gen4d-60b/domains/:/Global Space/"
}
{
"snapshot": {
"creator": " "
"size_on_disk": "154000000000"
"delete_priority": "1"
"cg": " "
"pool": "testt"
"source_ref": "/hsm/v5/:gen3p1-25b/volumes/:vol_om"
"source": "vol_om"
"wwn": "0017380027290036"
"pool_ref": "/hsm/v5/:gen3p1-25b/pools/:testt"
"ref": "/hsm/v5/:gen3p1-25b/snapshots/:last-replicated-vol_om"
"system": "gen3p1-25b"
"size": "150000000000"
"sg": " "
"domain": "/Global Space/"
"name": "last-replicated-vol_om"
"id": "71c14d00036"
"locked": "true",
}
}
The volume snapshot resource formats that are returned by the REST API for FlashSystem A9000 and
A9000R are as follows:
{
"snapshot": {
"creator": "xiv_msms"
"size_on_disk": "10000000000"
"delete_priority": "1"
"cg": " "
"pool": "alex_test"
"source_ref": "/hsm/v5/:gen4d-27c/volumes/:vol_alex_03"
"source": "vol_alex_03"
"wwn": "6001738CFC9035C600000000007971E1"
"pool_ref": "/hsm/v5/:gen4d-27c/pools/:alex_test"
"ref": "/hsm/v5/:gen4d-27c/
snapshots/:vol_alex_03.automated_snapshot_1_20170822_0000"
"system": "gen4d-27c"
"size": "10000000000"
"sg": " "
"domain": "/Global Space/"
"name": "vol_alex_03.automated_snapshot_1_20170822_0000"
"id": "3e02819202340"
"locked": "true"
}
)
{
"vol_map": {
"ref": "/hsm/v5/:mn44/vol_maps/:host:host_rest-host-sa-def:rest-vol-rpnoio_001",
"lun": "2",
"host": "rest-host-sa-def",
"cluster": "",
"volume": "rest-vol-rpnoio_001",
"id": "101215",
"system": "mn44"
}
}
Resource definitions 87
Consistency group resource definitions
The consistency group resource formats that are returned by the REST API are as follows:
{
"cg": {
"ref": "/hsm/:mn44/cgs/:test-sg ",
"id": "111111", "name": "test-cg",
"pool": "pool1",
"pool_ref": "/hsm/:mn44/pools/:pool1 ",
"mirrored": "false" ,
"used_capacity": "0",
"volumes": [
{
"name": "rest-vol-cd-def-1",
"ref": "/hsm/v4/:mn44/volumes/:rest-vol-cd-def-1"
},
{
"name": "rest-vol-cd-def-2",
"ref": "/hsm/v4/:mn44/volumes/:rest-vol-cd-def-2"
}
],
"system": "mn44"
}
}
{
"sg": {
"id": "0",
"ref": "/hsm/v4/:6010625a/snap_groups/:cg1.snap_group_00001",
"system": "6010625a",
"name": "cg1.snap_group_00001",
"cg": "cg1",
"cg_ref": "/hsm/v4/:6010625a/cgs/:cg1",
"locked": "yes",
"delete_priority": "1",
"snapshots": [
{
"name": "cg1.snap_group_00001.vol2",
"ref": "/hsm/v4/:6010625a/snapshots/:cg1.snap_group_00001.vol2"
},
{
"name": "cg1.snap_group_00001.vol4",
"ref": "/hsm/v4/:6010625a/snapshots/:cg1.snap_group_00001.vol4"
},
{
"name": "cg1.snap_group_00001.vol3",
"ref": "/hsm/v4/:6010625a/snapshots/:cg1.snap_group_00001.vol3"
},
{
"name": "cg1.snap_group_00001.vol1",
"ref": "/hsm/v4/:6010625a/snapshots/:cg1.snap_group_00001.vol1"
}
]
}
}
{
"mirror": {
"destination_ref": "/hsm/v4/:6010625a/cgs/:cg1-625",
"sync_type": "sync_best_effort",
"mirrored_object": "CG",
"destination_system_ref": "/hsm/v4/systems/:6010625a",
"connected": "yes",
"source_ref": "/hsm/v4/:6010625b/cgs/:cg1-625b",
"source_system_ref": "/hsm/v4/systems/:6010625b",
"sync_state": "Consistent",
"specified_rpo": "",
"remote_rpo": "",
"destination": "cg1-625",
"id": "56a14e00000",
"system": "6010625a",
"source": " cg1-625b",
"active": "yes",
"destination_system": "6010625a",
"source_system": "6010625b"
}
}
"host": {
{
"cluster": " "
"ref": "/hsm/v5/:gen3p1-25b/hosts/:host184"
"system": "gen3p1-25b"
"perf_class": " "
"name": "host184"
"domains":
{
"domain": "ErezDomain"
}
{
"domain": "/Global Space/"
}
"id": "63714500002"
"type": "default"
"ports":
{
"type": "iscsi"
"name": "[Link]:7979112c186"
"ref": "/hsm/v5/:gen3p1-25b/host_ports
/:iscsi:host184:[Link]:7979112c186"
}
}
The host resource formats that are returned by the REST API for FlashSystem A9000 and A9000R are as
follows:
Resource definitions 89
"host":
{
"cluster": " "
"ref": "/hsm/v5/:gen4d-27c/hosts/:123"
"system": "gen4d-27c"
"perf_class": " "
"name": "123"
"domains":
{
"domain": "/Global Space/"
}
"id": "3dd6e18900015"
"type": "default"
"ports":
{
"type": "iscsi"
"name": "[Link]"
"ref": "/hsm/v5/:gen4d-27c/host_ports
/:iscsi:123:[Link]"
}
{
"type": "iscsi"
"name": "[Link]"
"ref": "/hsm/v5/:gen4d-27c/host_ports
/:iscsi:123:[Link]"
}
}
{
"host_port": {
"ref": "/hsm/v5/:mn44/host_ports/:rest-host-sa-def:1234567890123001",
"host": "rest-host-sa-def",
"type": "fc",
"id": "101280",
"name": "1234567890123001",
"system": "mn44"
}
}
{
"cluster": {
"ref": "/hsm/v5/:mn44/clusters/:rest-cluster-def",
"type": "standard",
"id": "101239",
"name": "rest-cluster-def",
"hosts": [
{
"name": "rest-host-cd-def-1",
"ref": "/hsm/v5/:mn44/hosts/:rest-host-cd-def-1"
},
{
"name": "rest-host-cd-def-2",
"ref": "/hsm/v5/:mn44/hosts/:rest-host-cd-def-2"
}
],
"system": "mn44",
"domains": [
{
"domain": "domain1"
},
{
"domain": "domain2"
}
]
}
}
{
"performanceClass": {
"ref":"/hsm/v4/:Gen4D64a/perf_classes/:ClassQoS",
"system": "gen4d-54c",
"name": "AnotherQoS",
"interface_iops_limit": 0,
"interface_bw_limit": 500,
"id": "10d61720000b",
"type": SHARED
}
}
{
"event": {
"ref": "/hsm/:mn44/events/:111111 ",
"id": "111111", "code": "USER_LOGIN_HAS_SUCCEEDED",
"severity": "Informational",
"timestamp": "1234567890",
"description": "User ‘admin’ from IP ‘X.X.X.X’ successfully logged into the system.",
"system": "mn44"
}
}
Resource definitions 91
92 IBM Hyper-Scale Manager: REST API Specifications
Chapter 7. Error handling
Each request to the REST API receives a response with two types of status codes:
• HTTP (transport) status code: A quick indication of whether or not the request succeeded. Some
automation scripts may not parse the full response in case of error, so it is helpful to have a quick
indication at the HTTP level.
• server status code: Provides a more detailed application level status to allow troubleshooting in case of
errors.
The following topics are covered in this chapter:
• “HTTP status codes” on page 93
• “Server status codes” on page 93
• “Failed system status codes” on page 95
If there is a multi-system request when all of the systems are inaccessible, the following rules apply:
• If all systems are in an Unauthorized state, the response is HTTP 401 , server status 2.
• If all systems are in a Robot user authentication failed state, the response is HTTP 500,
server status 1.
• For all other cases, the response is HTTP 500, server status 3.
Error handling 95
96 IBM Hyper-Scale Manager: REST API Specifications
Chapter 8. Security
The REST API protocol does not have any built-in security features, so it strongly relies on the transport
protocol (HTTP) to provide security. Specifically, the following HTTP features are used:
• HTTP/S: Provides an encrypted HTTP channel between client and server.
• HTTP basic authentication: Used for carrying client provided credentials to the server / supported
storage systems.
For license inquiries regarding double-byte character set (DBCS) information, contact the IBM Intellectual
Property Department in your country or send inquiries, in writing, to:
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of
the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM Corporation
Almaden Research
650 Harry Road
Bldg 80, D3-304, Department 277
Such information may be available, subject to appropriate terms and conditions, including in some cases,
payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by
IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement or any
equivalent agreement between us.
Any performance data contained herein was determined in a controlled environment. Therefore, the
results obtained in other operating environments may vary significantly. Some measurements may have
been made on development-level systems and there is no guarantee that these measurements will be the
same on generally available systems. Furthermore, some measurements may have been estimated
through extrapolation. Actual results may vary. Users of this document should verify the applicable data
for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
All statements regarding IBM's future direction or intent are subject to change or withdrawal without
notice, and represent goals and objectives only.
This information is for planning purposes only. The information herein is subject to change before the
products described become available.
This information contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental.
If you are viewing this information softcopy, the photographs and color illustrations may not appear.
Trademarks
IBM, the IBM logo, and [Link] are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Copyright and
trademark information website ([Link]/legal/us/en/[Link]).
Other product and service names might be trademarks of IBM or other companies.
Printed in USA
SC27-6440-07