JSON-RPC API guide for Cove Data Protection (Cove)

JSON-RPC is a light-weight remote procedure call protocol encoded in JSON. It allows for multiple calls to be sent to the Cove Data Protection (Cove) server which may be answered asynchronously.

We recommend the use of JSON-RPC API only if you are familiar with it and are confident in your ability to construct functional calls.

For information on how to read and use the Cove schema, see the How to use the Backup Manager JSON-RPC API schema page.

There are 2 types of web services in Cove:

  1. Management Service – provides management functions and statistics for all devices belonging to a certain customer. The key entity in the Management Service protocol is the customer
  2. Reporting Service – provides detailed backup and restore statistics for selected devices. It runs on every storage node

For some methods you may be asked for column vectors or column codes or be provided with these in the call response. Please view the Management Console column codes for API page to see the full list of column vectors and their definitions.

Be aware that methods and parameters are case sensitive so ensure you use the correct capitalization as documented in the Schema.

Please note, the old legacy notations (found here) will still work for many calls, however, we would strongly recommend you change to use the new notations as soon as possible.

Data format

The services are exposed via a custom JSON-RPC protocol. It lists available methods and supported parameters, but it cannot be used to generate a client for the service automatically.

JSON-RPC schema for Cove Data Protection (Cove)

Making changes

All changes made using API's can only be made for one at a time. If you require changes to be made on several devices, customers, storages, etc. at the same time you would need to follow the below process:

  1. Enumerate the list of devices, customers, storages, users, etc. using the appropriate method (EnumerateAccounts, EnumeratePartners, etc.)
  2. Write a script to make the necessary changes in whichever tool you prefer
  3. Parse the list output into the script you have written
  4. Run your script to make the changes

For any changes made with the API, we would recommend you re-run the appropriate method to confirm your changes have been successful.

Date and time format

All of the Backup Manager API methods will display date and time as Unix format.

This means that the time is shown as the number of seconds that have passed since 00:00:00 UTC, 1st January 1970. For example:

  • Unix timestamp: 1554986978
  • Coordinated universal time (UTC): 2019-04-11 12:49:38

You can calculate the time to more readable format by using this conversion table:

Human Readable Time Seconds
1 minute 60 seconds
1 hour 3600 seconds
1 day 86400 seconds
1 month (30.44 days) 2629743 seconds
1 year (365.24 days) 31556926 seconds

Some API tools may convert this time for you automatically. Alternately, you can find Unix to Human Readable Time conversion tools by searching online.

Size format

All of the Backup Manager API methods will display sizes in Bytes. You can calculate the sizes to a more readable format by using this conversion table (where n=number of bytes given in the output):

Bytes Calculation Size format
1,024 bytes n/2^10 1 kilobyte (K / Kb)
1,048,576 bytes n/2^20 1 megabyte (M / Mb)
1,073,741,824 bytes n/2^30 1 gigabyte (G / Gb)
1,099,511,627,776 bytes n/2^40 1 terabyte (T / TB)

Some API tools may convert this size for you automatically. Alternately, you can find Bytes size conversion tools by searching online.

Requirements for HTTP requests

You can run test requests using any command-line tools that support HTTP: curl, SoapUI, Advanced REST Client Chrome plug-in or any other:

  • HTTP method - POST
  • HTTP header- Content-Type: application/json
  • Endpoint - https://api.backup.management/jsonapi

What's Inside