Backup and Recovery Reporting API operations
The modern capabilities of IBM Cloud Backup and Recovery are conveniently available via a RESTful API. Operations and methods for listing report components, fetching component details, previewing components, listing resources, and managing reports are documented here.
It uses IBM Cloud® Identity and Access Management for authentication and authorization. For more information about endpoints and authentication, see Endpoints and storage locations and Reporting Service API documentation.
Authentication
All API requests require an API key for authentication. To create an API key, see: Creating your IBM Cloud API key.
The API key does not expire until explicitly deleted.
List Report Components
A GET request to /heliosreporting/api/v1/public/components returns a list of all report components accessible by the logged-in user.
Syntax
GET /heliosreporting/api/v1/public/components
Optional query parameters
| Name | Type | Description |
|---|---|---|
ids |
Array | Specifies the ids of the report components to fetch. |
Example request
GET /heliosreporting/api/v1/public/components?ids=component1,component2 HTTP/1.1
Authorization: Bearer {apiKey}
Host: <HELIOS_URL>
Example response
{
"components": [
{
"aggs": {
"aggregatedAttributes": [
{
"aggregationType": "sum",
"attribute": "string",
"label": "string"
}
],
"groupedAttributes": [
"string"
]
},
"config": {
"xlsxParams": {
"attributeConfig": [
{
"attributeName": "string",
"customLabel": "string",
"format": "Timestamp"
}
]
}
},
"data": [
{}
],
"description": "string",
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"id": "string",
"limit": {
"from": 0,
"size": 1
},
"name": "string",
"reportType": "Failures",
"sort": [
{
"attribute": "string",
"desc": true
}
]
}
]
}
Fetch a Report Component
A GET request to /heliosreporting/api/v1/public/components/{id} fetches information about a specific report component.
Syntax
GET /heliosreporting/api/v1/public/components/{id}
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
String | Yes | The id of the report component. |
Example request
GET /heliosreporting/api/v1/public/components/component1 HTTP/1.1
Authorization: Bearer {apiKey}
Host: <HELIOS_URL>
Example response
{
"aggs": {
"aggregatedAttributes": [
{
"aggregationType": "sum",
"attribute": "string",
"label": "string"
}
],
"groupedAttributes": [
"string"
]
},
"config": {
"xlsxParams": {
"attributeConfig": [
{
"attributeName": "string",
"customLabel": "string",
"format": "Timestamp"
}
]
}
},
"data": [
{}
],
"description": "string",
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"id": "string",
"limit": {
"from": 0,
"size": 1
},
"name": "string",
"reportType": "Failures",
"sort": [
{
"attribute": "string",
"desc": true
}
]
}
Preview a Report Component
A POST request to /heliosreporting/api/v1/public/components/{id}/preview fetches a preview for a component that is specified by id.
Syntax
POST /heliosreporting/api/v1/public/components/{id}/preview
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
String | Yes | The id of the component. |
Request body
{
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"limit": {
"from": 0,
"size": 1
},
"sort": [
{
"attribute": "string",
"desc": true
}
],
"timezone": "string"
}
Example request
POST /heliosreporting/api/v1/public/components/component1/preview HTTP/1.1
Authorization: Bearer {apiKey}
Content-Type: application/json
Host: <HELIOS_URL>
{
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"limit": {
"from": 0,
"size": 1
},
"sort": [
{
"attribute": "string",
"desc": true
}
],
"timezone": "string"
}
Example response
{
"component": {
"aggs": {
"aggregatedAttributes": [
{
"aggregationType": "sum",
"attribute": "string",
"label": "string"
}
],
"groupedAttributes": [
"string"
]
},
"config": {
"xlsxParams": {
"attributeConfig": [
{
"attributeName": "string",
"customLabel": "string",
"format": "Timestamp"
}
]
}
},
"data": [
{}
],
"description": "string",
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"id": "string",
"limit": {
"from": 0,
"size": 1
},
"name": "string",
"reportType": "Failures",
"sort": [
{
"attribute": "string",
"desc": true
}
]
},
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"generatedTimestampUsecs": 0,
"lastRefreshTimestampUsecs": 0,
"timezone": "string"
}
List Resources
A POST request to /heliosreporting/api/v1/public/resources returns different kinds of resources available on IBM Cloud Backup and Recovery, such as policies, protection groups, registered sources, and message code mappings.
These values can be used for filtering options.
Syntax
POST /heliosreporting/api/v1/public/resources
Request body
{
"resourceType": "Policies"
}
Example response
{
"externalTargets": [
{
"id": "string",
"name": "string",
"systemId": "string",
"systemName": "string",
"targetType": "string"
}
],
"messageCodeMappings": [
{
"messageCode": "string",
"messageGuid": "string"
}
],
"policies": [
{
"id": "string",
"isGlobalPolicy": true,
"name": "string",
"systemId": "string",
"systemName": "string"
}
],
"protectionGroups": [
{
"id": "string",
"name": "string",
"systemId": "string",
"systemName": "string"
}
],
"resourceType": "Policies",
"sources": [
{
"environments": [
"string"
],
"name": "string",
"uuid": "string"
}
],
"tenants": [
{
"id": "string",
"name": "string"
}
]
}
List properties of a report type
A GET request to /heliosreporting/api/v1/public/reports/report-types/{reportType} fetches the list of properties for a report type.
Syntax
GET /heliosreporting/api/v1/public/reports/report-types/{reportType}
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
reportType |
String | Yes | The type of report to query. |
Example request
GET /heliosreporting/api/v1/public/reports/report-types/ProtectionGroupSummary HTTP/1.1
Authorization: Bearer {apiKey}
Host: <HELIOS_URL>
Example response
{
"attributes": [
{
"dataType": "Bool",
"name": "string"
}
]
}
List Reports
A GET request to /heliosreporting/api/v1/public/reports returns a list of all reports accessible by the logged-in user.
Syntax
GET /heliosreporting/api/v1/public/reports
Optional query parameters
| Name | Type | Description |
|---|---|---|
ids |
Array | Specifies the ids of reports to fetch. |
userContext |
String | Specifies the user context to filter reports. |
Example request
GET /heliosreporting/api/v1/public/reports HTTP/1.1
Authorization: Bearer {apiKey}
Host: <HELIOS_URL>
Example response
{
"reports": [
{
"category": "Protection",
"componentIds": [
"string"
],
"description": "string",
"id": "string",
"supportedUserContexts": [
"IBMBaaS"
],
"title": "string"
}
]
}
Fetch a Report
A GET request to /heliosreporting/api/v1/public/reports/{id} fetches a report for a specific id.
Syntax
GET /heliosreporting/api/v1/public/reports/{id}
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
String | Yes | The id of the report. |
Example request
GET /heliosreporting/api/v1/public/reports/report1 HTTP/1.1
Authorization: Bearer {apiKey}
Host: <HELIOS_URL>
Example response
{
"category": "Protection",
"componentIds": [
"string"
],
"description": "string",
"id": "string",
"supportedUserContexts": [
"IBMBaaS"
],
"title": "string"
}
Preview a Report
A POST request to /heliosreporting/api/v1/public/reports/{id}/preview fetches a preview of a configured report.
Syntax
POST /heliosreporting/api/v1/public/reports/{id}/preview
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
String | Yes | The id of the report. |
Request body
{
"componentIds": [
"string"
],
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"timezone": "string"
}
Example request
POST /heliosreporting/api/v1/public/reports/report1/preview HTTP/1.1
Authorization: Bearer {apiKey}
Content-Type: application/json
Host: <HELIOS_URL>
{
"componentIds": [
"string"
],
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"timezone": "string"
}
Example response
{
"components": [
{
"aggs": {
"aggregatedAttributes": [
{
"aggregationType": "sum",
"attribute": "string",
"label": "string"
}
],
"groupedAttributes": [
"string"
]
},
"config": {
"xlsxParams": {
"attributeConfig": [
{
"attributeName": "string",
"customLabel": "string",
"format": "Timestamp"
}
]
}
},
"data": [
{}
],
"description": "string",
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"id": "string",
"limit": {
"from": 0,
"size": 1
},
"name": "string",
"reportType": "Failures",
"sort": [
{
"attribute": "string",
"desc": true
}
]
}
],
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"generatedTimestampUsecs": 0,
"id": "string",
"lastRefreshTimestampUsecs": 0,
"timezone": "string",
"title": "string"
}
Export a Report
A POST request to /heliosreporting/api/v1/public/reports/{id}/export exports a configured report in PDF, XLS, or CSV format.
Syntax
POST /heliosreporting/api/v1/public/reports/{id}/export
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
String | Yes | The id of the report. |
Request body
{
"async": true,
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"layout": "string",
"reportFormat": "XLS",
"timezone": "string"
}
Example request
POST /heliosreporting/api/v1/public/reports/report1/export HTTP/1.1
Authorization: Bearer {apiKey}
Content-Type: application/json
Host: <HELIOS_URL>
{
"async": true,
"filters": [
{
"attribute": "string",
"filterType": "In",
"inFilterParams": {
"attributeDataType": "Bool",
"attributeLabels": [
"string"
],
"boolFilterValues": [
true
],
"int32FilterValues": [
0
],
"int64FilterValues": [
0
],
"stringFilterValues": [
"string"
]
},
"rangeFilterParams": {
"lowerBound": 0,
"upperBound": 0
},
"systemsFilterParams": {
"systemIds": [
"string"
],
"systemNames": [
"string"
]
},
"timeRangeFilterParams": {
"dateRange": "Last1Hour",
"durationHours": 0,
"lowerBound": 0,
"upperBound": 0
}
}
],
"layout": "string",
"reportFormat": "XLS",
"timezone": "string"
}
Example response
The response is a binary file (PDF, XLS, or CSV) containing the exported report.
List Provider Instances
A GET request to /mcm/provider-instances lists all provider instances with details. The providers are responsible for managing the lifecycle of instances and this API intends to provide metadata information about the
instances.
Syntax
GET /mcm/provider-instances
Query parameters
| Name | Type | Description |
|---|---|---|
instanceIds |
Array | List of Provider Instance IDs to filter on. |
regions |
Array | List of regions to filter Provider Instances on. |
includeServiceInstanceStatus |
Boolean | Indicates whether to include cluster details and software version status. |
Example request
GET /mcm/provider-instances?regions=us-south&includeServiceInstanceStatus=true HTTP/1.1
Authorization: Bearer {apiKey}
Host: <HELIOS_URL>
Example response
{
"ibmServiceInstances": [
{
"clusterId": 0,
"clusterIncarnationId": 0,
"instanceId": "string",
"lat": 0,
"lon": 0,
"name": "string",
"region": "string",
"softwareVersion": "string",
"status": "Active"
}
]
}
For more information about IBM Cloud Backup and Recovery Reporting operations, see the IBM Cloud Backup and Recovery Reporting documentation.