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

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

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

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

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

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

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

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

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

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.